Notas de Luis

Lo primero es hacer el reconocimiento de puertos con nmap:

Y ahora como siempre con nmap vamos a inspeccionar estos puertos abiertos:

Y aquí tenemos los detalles de estos puertos:

Ahora vamos a analizar la tecnología implicada en el puerto 80 ya que sabemos que habrá una web, utilizaremos la herramienta whatweb:

Pero vemos cómo la dirección da un error porque no la encuentra, y esto se arregla añadiendo este dominio al fichero /etc/host para que la IP apunte a este dominio:

Y ahora si ejecutamos un whatweb ya no habrá ese error y el dominio ya estará disponible:

Tras inspeccionar esta web vemos que no hay nada interesante, por lo que debemos mirar a ver si existen subdominios donde podamos acceder; para ello usaremos un ataque de fuerza bruta por diccionario con wfuzz de esta manera:

De esta manera se hace un ataque por fuerza bruta para descubrir los subdominios; y nos encuentra uno:

Ahora esta dirección debemos añadirla al /etc/host para que nos funcione si intentamos acceder a ella:

Y ahora con esta dirección y habiéndose añadido al fichero de host ya podremos entrar:

Ahora vamos a comprobar si al escribir un correo estamos ante un server side template injection, y efectivamente lo es, por lo que podremos ejecutar comandos:

Ahora para explotar esta vulnerabilidad, debemos conocer el lenguaje que está hecha la web, el cual es Nose.js:

Ahora buscaremos por internet una inyección de código para insertarlo en webs que tengan esta vulnerabilidad y sean Node.js, donde encontramos esta web que explica el SSTI en webs de node.js:

https://disse.cting.org/2016/08/02/2016-08-02-sandbox-break-out-nunjucks-template-engine

Copiaremos esa línea y vamos a ejecutarla en la web, pero a través de burpsuite, por tanto escribimos un correo aleatorio para que burpsuite lo intercepte (debemos configurar el certificado SSL para que burpsuite intercepte la petición):

Y esta petición será interceptada por burpsuite:

Y pegaremos todo esto:

Aunque tenemos que escapar las comillas para que no haya problemas con ellas, quedando de la siguiente manera:

Y si enviamos todo esto, vemos cómo recibimos una respuesta donde se ejecuta el código del /etc/passwd:

Llegados a este punto yo puedo ejecutar cualquier código, por ejemplo un whoami en lugar de un /etc/passwd; y vemos como nos da un email:

Ahora que podemos ejecutar comandos, vamos a comprobar si hay conexión entre esta máquina remota y mi equipo; para ello vamos a montar un servidor web desde donde vemos las peticiones que se reciben, para después ejecutar una petición a este servidor desde la máquina víctima con curl:

Y ahora lanzamos un curl a la IP de la interfaz de nuestro PC que está conectada a hackthebox (que es la tun0, podemos verla con ifconfig), para ver si desde la máquina víctima llega la petición al servidor web:

Y vemos cómo llegó la petición a nuestro servidor web, por lo que hay conexión:

Ahora desde este servidor podemos subir un index.html con cierto código que se ejecutará en la máquina víctima:

Ahora montamos el servidor con este fichero html que tiene un código que se encargará de enviarnos una reverse shell:

Ahora nos pondremos en espera con netcat por el puerto 443:

Y por último lanzamos la petición con curl desde la máquina víctima al servidor web para que obtenga ese código que nos enviará una reverse shell a netcat:

Lo ejecutamos y ya tenemos acceso:

Ahora que ya hemos ganado acceso a esta máquina, vamos a ir al directorio home para buscar la flag:

Ahora vamos a escalar privilegios, para ello vamos a ejecutar el comando getcap -r /2>/dev/null, donde debemos fijarnos en la segunda fila porque dice que perl puede ejecutar cosas con plenos poderes:

También podemos comprobar que podemos ejecutar código como root desde perl con el comando ls -la:

Ahora debemos crear un script en perl que nos sirve para elevar los privilegios, el cual será este:

Para ejecutarlo lo hacemos con echo -ne:

Y ahora ya somos root:

VÍDEO DE YOUTUBE: https://www.youtube.com/watch?v=Rvr4eBTecY8&t=17s

computing/hacking/ctf/hackthebox/maquina_nunchucks.txt · Última modificación: por 127.0.0.1