Corrosion: 2 VulnHub Walkthrough
Proxy Programmer’s Corrosion: 2 is a Vulnhub medium machine. We can download the lab from here. This lab is designed for experienced CTF players who want to put their abilities to the test in a variety of situations. So, let’s get started and see how we can split things down into smaller chunks.
Pentest Methodology
Network Scanning
- netdiscover
- nmap
Enumeration
- dirb
- fcrackzip
Exploitation
- Metasploit
- /etc/shadow
- john
Privilege Escalation
- ssh
- python library hijacking
- root flag
Level: Medium
Network Scanning
To begin, we must use the netdiscover command to scan the network for the target machine’s IP address.
netdiscover
The victim’s IP address, in this case, is 192.168.1.186.
We’re going to use Nmap to help us move this process along. To see all of the services stated, we need to know which ones are now available.
nmap -sV 192.168.1.186
According to the nmap output, we have:
- An SSH server is available on port 22.
- On port 80, there is an HTTP service (Apache Server).
- On port 8080, a Tomcat server is running on port 8080.
Enumeration
Let’s begin by looking at the http service on port 80. There’s nothing strange about that; it’s just an Apache server page.
Next, we looked at the Tomcat server, which was listening on port 8080. It’s a straightforward page with nothing suspicious on it.
We discovered nothing harmful on websites. So, to continue further in this experiment, we use the dirb directory brute force method to find some knowledge. Smash!! We discovered a directory containing a backup zip file.
dirb http://192.168.1.186:8080/ -X .php,.zip
The backup zip file is then downloaded using the wget command. Following that, we attempted to study this file, but it was password protected.
wget http://192.168.1.186:8080/backup.zip unzip backup.zip
Next, we’ll use the fcrackzip utility to crack this password. It is a lightweight, open-source zip file password cracker. The rockyou word-list is used for the brute force attack. Boom!! We cracked its password in a matter of seconds (@administrator_hi5).
fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u backup.zip
Then we use this password to unzip the backup zip file. We attempt to inspect each and every file contained in this backup zip file. We are now inspecting the tomcat users xml file.
unzip backup.zip cat tomcat-users.xml
Bam!! We discovered user admin and password melehifokivai credentials.
Exploitation
Now that we have the credentials, we can begin exploiting them using a Metasploit. In these instances, employing a Tomcat exploit is the best option. Then give us all the information we need to use it, and we’re ready to go. As you can see, we had a meterpreter session.
use exploit/multi/http/tomcat_mgr_upload set rhosts 192.168.1.186 set rport 8080 set httpusername admin set httppassword melehifokivai exploit
We just switched the directory to home. We discover that we have two users in this lab, Jaye and Randy. We switched to user jaye. It has the same password (melehifokivai) that we found out earlier.
cd /home ls su jaye ls
We discovered that this individual has a look called the .program that allows us to locate any file. As a result, we use it to locate the /etc/shadow file. Boom!! We obtained the hash values of all users in this lab.
./look '' /etc/shadow
As you are aware, we already have the password for user Jaye. We copy user randy’s hash value and save it in a file called hash.
Using John, who is a specialist in this case, we try to crack that hash. In a matter of seconds, we cracked the password 07051986randy.
john --wordlist=/usr/share/wordlists/rockyou.txt hash
Privilege Escalation
Now, we have all of the necessary information to begin privilege escalation. To login via ssh as user randy, we use the cracked password 07051986randy.
ssh randy@192.168.1.186
Then we used the (sudo -l) tool to examine this user’s limits. We discovered that it can be abused by python library hijacking.
The randombase64.py python code can be used to perform this hijacking. which imports another file called base64.
sudo -l cat /home/randy/randombase64.py
To obtain base64 file coordinates, we use the locate command. In a couple of seconds, we discover its coordinates. We investigated the file’s restrictions. Using this file, we can gain root access.
locate base64 ls -la /usr/lib/python3.8/base64.py
We made some changes to this base64 python file using the nano command. Add this code to get root access to the victim’s machine.
import os os.system ("/bin/bash")
We are now coordinating the use of both Python files. Boom!! We obtained root access. We immediately changed the directory to root and received the root flag in a matter of seconds.
sudo /usr/lib/python3.8 /home/randy/randombase64.py cd /root cat root.txt
This was a fantastic lab with a lot of information, especially in the enumeration and privilege escalation areas. It is worthwhile to attempt to gain CTF experience. Hopefully, this walk-through should have taught you something new.
Author: Shubham Sharma is a passionate Cybersecurity Researcher, contact LinkedIn and Twitter.