Nunchucks [EASY🟢]
Dificultad: Fácil
1- Reconocimiento y escaneo
1.1 Ping
1.1 PingPodemos notar que se trata de una maquina Linux, debido al TTL:
1.2 Nmap
1.2 NmapSe ven puertos como el 22(OpenSSH 8.2p1) correspondiente a un servidor SSH para control remoto vía consola de manera "segura", el puerto 80(nginx 1.18.0) correspondiente a un servidor web, y el puerto 443 correspondiente al puerto estándar para la comunicación segura entre un navegador web y un servidor web(HTTPS)
1.3 whatweb
1.3 whatwebAntes de realizar el escaneo de whatweb, vamos a hacer que la IP de la maquina de Hack The Box "10.10.11.122" apunte o haga la resolución DNS hacia "nunchucks.htb", para eso modificaremos el archivo "/etc/hosts":
De tal manera que ahora en whatweb podemos especificarle el domino "nunchucks.htb"
Tenemos tecnologías web como:
1.4 gobuster y Virtual Hosting
1.4 gobuster y Virtual HostingPara enumerar posibles subdominios que se encuentren dentro de "nunchucks.htb", vamos a utilizar gobuster con un diccionario que elegí dentro del repositorio de "SecLists"
subdomains-top1million-110000.txt
Vamos a utilizar la herramienta "wget" para bajarnoslo:
Y ahora vamos a ejecutar "gobuster" con el siguiente comando:
Nos encontró el subdominio "store.nunchucks.htb", tambien para acceder al subdominio encontrado, es necesario agregarlo al archivo de "/etc/hosts":
Y ahora si podemos acceder al subdominio:

1.5 whatweb a subdominio(store.nunchucks.htb)
1.5 whatweb a subdominio(store.nunchucks.htb)Podemos ver las siguientes tecnologias web dentro del subdominio:
Tambien podemos hacer un reconocimiento de tecnologías web con la extensión de Wappalyzer
Para descárganos la extensión vamos a irnos a las extensiones de Firefox, en el siguiente boton:
Y vamos a buscar la extensión de Wappalyzer y dar ENTER:

Concretamente nos interesa la extensión mencionada:

Add to Firefox:

Add:

Ahora vamos de vuelta donde tenemos las extensiones de Firefox:

Vamos a darle en el engranaje y "Pin to Toolbar"

De tal manera que ahora podemos realizar el reconocimiento de tecnologías web con Wappalyzer, vamos a irnos al subdominio encontrado y vamos a ver que resultados nos da:

Podemos ver las diferentes tecnologías webs encontradas, entre ellas que la pagina esta programada con el lenguaje de programación "Node.js"
2- Explotación
2.1 SSTI(Server Side Template Injection)
2.1 SSTI(Server Side Template Injection)Si nos vamos al subdomio "store.nunchucks.htb", veremos un formulario para suscribirnos a una newsletter de la pagina aparentemente, vamos a probar un correo random:

Es probable que como la entrada que ingrese dentro del formulario de correo electrónico, se ve reflejada de la misma manera en la pagina web, estemos frente a un SSTI o Server Side Template Injection
Así que vamos a probar algo simple, dentro del formulario vamos a ingresar lo siguiente:
Si la pagina nos devuelve el resultado de 2*2, entonces estaríamos ante un SSTI:

Podemos ver que verificamos que esta pagina web es vulnerable a SSTI
Si recordamos en el reconocimiento de tecnologías web de Wappalyzer, pudimos ver que el lenguaje de programación utilizado por este sitio web es "Node.js", entonces podríamos buscar un payload en GitHub que este realizado en "Node.js", en mi caso utilizare el siguiente payload:
Vamos a ponerlo en la pagina del subdominio, aunque nos va a dar un error, ya que necesitamos ingresar un correo electrónico como tal, este código contiene muchos caracteres especiales entre otros:

Entonces ahora es cuando entra en juego Burp Suite para saltarnos la restricción del correo electrónico
Vamos a abrir Burp Suite y nos vamos a ir a la pestaña de "Proxy":

Vamos a ir a la configuración del proxy de Burp, en la subpestaña de "Proxy settings":

Vemos que el proxy, esta configurado con la IP 127.0.0.1 por el puerto 8080, pero en este caso no vamos a utilizar Firefox, ya que el trafico es HTTPS en el dominio "nunchucks.htb", si no que vamos a utilizar el propio navegador de Burp, si volvemos a la pestaña de "Proxy":

Vamos a darle "Open browser"

Y vamos a ingresar al subdominio correspondiente(Quitando el modo intercepción):

Y volvemos a activar el modo intercepción de Burp:

Ahora vamos a volver a la pagina del subdominio y vamos a intentar con un correo de prueba:

Y volvemos a Burp Suite:

Vemos que podemos modificar el siguiente campo:
Vamos a poner el payload, de tal manera que quedaria de la siguiente forma:
CTRL + R para mandar la solicitud al repeater, y vamos a irnos a la pestaña de "Repeater":

Antes de darle a "Send", tenemos que escapar todo el payload, de tal manera que el payload quedaria de la siguiente manera:
De tal manera que la solicitud que enviamos quedaria de la siguiente forma:
Vamos a darle en "Send":

Podemos ver que nos muestra la información del archivo "/etc/passwd" de la maquina objetivo
Y si ahora cambiamos el comando de "tail /etc/passwd" por el comando "whoami"

Parece que somos el usuario "david"
2.2 Obtención de reverse shell mediante archivo HTML
2.2 Obtención de reverse shell mediante archivo HTMLAhora vamos a obtener una reverse shell mediante la creación de un archivo .HTML malicioso que va a contener el siguiente codigo:
En mi caso quedaria de la siguiente forma:
Vamos a crearlo y a visualizarlo:
Y ahora vamos a alojar un servidor web con Python dentro de nuestro Kali donde hayamos guardado el archivo .HTML malicioso:
Y en otra consola de Kali, vamos a ponernos en escucha con netcat por el puerto 443:
Y volvemos a Burp Suite, al repeater, y vamos a bajarnos con "curl" el archivo malicioso .HTML que alojamos en nuestro servidor web con el siguiente comando:
En mi caso quedaria de la siguiente forma:

Lo enviamos con "Send":

Se quedara cargando, pero si volvemos a la consola donde teniamos netcat en escucha por el puerto 443:
Ya tendriamos una reverse shell de la maquina objetivo
2.3 Obtención de la flag user
2.3 Obtención de la flag userLa flag de user se encuentra dentro de la ruta absoluta "/home/david/user.txt", vamos a visualizarla:
3- Escalado de privilegios
3.1 Capabilities en GNU/Linux
3.1 Capabilities en GNU/LinuxPara escalar los privilegios, primero necesitamos saber que podemos hacer con el usuario "david" que obtuvimos de la reverse shell, para eso vamos a utilizar el siguiente comando:
Ejecutamos:
3.2 LPE con Perl
3.2 LPE con PerlPodemos ejecutar el lenguaje de programación Perl "/usr/bin/perl" con permisos "SETUID" por lo que podríamos utilizar un script en Perl para realizar una escalada de privilegios local(LPE),
En mi caso utilizare el siguiente código de Perl:
Vamos crearlo y a guardarlo como si fuera un script en bash, con extensión ".sh":
Y vamos a montarnos un servidor web en Python donde tengamos el script Bash para el LPE en nuestro Kali para descárganoslo dentro de la maquina objetivo:
Y vamos a irnos a la reverse shell que obtuvimos, concretamente al directorio "/tmp"
Vamos a bajarnoslo con "wget":
En mi caso quedaria de la siguiente manera:
Ejecutamos:
Vamos a darle permisos totales con "chmod" al archivo que nos acabamos de bajar "lpe.sh":
Y vamos a ejecutarlo:
Ya somos usuarios root
Ahora vamos a obtener un prompt con el comando "script /dev/null -c bash":
3.3 Tratamiento de la TTY
3.3 Tratamiento de la TTYVamos a realizar el tratamiento de la TTY para obtener una shell como dios manda :)
Vamos a ejecutar la combinación de teclas CTRL+Z una vez obtenido el prompt con el comando "script /dev/null -c bash":
Y vamos a ejecutar el siguiente comando:
Ejecutamos:
Y ahora ejecutamos:
Ejecutamos y nos va a devolver a la reverse shell que obtuvimos con permisos root:
Ahora vamos a exportar XTERM como TERM y BASH como consola, como variable de entorno:
Para verificar que el tratamiento de la TTY se realizo correctamente, pondremos "echo $SHELL" o "echo $TERM":
El tratamiento de la TTY corresponde hacerlo cuando debemos hacer muchas cosas con una reverse shell y necesitamos realizar algunas tareas como utilizar un editor de texto en consola, entre otras
3.4 Obtención de la flag root
3.4 Obtención de la flag rootLa flag de root se encuentra dentro de la ruta absoluta "/root/root.txt", vamos a visualizarla:
Con esto, concluimos la maquina "Nunchucks" de Hack The Box
Espero te haya sido de ayuda este Write Up :)
Si tuviste alguna dificultad a la hora de resolverlo, no olvides contactarme en mis redes sociales
Última actualización
