Máquina THM Vulnversity



Vulnversity Walkthrough






Empezando con mi primer Walkthrough de THM, Donde veremos una intrusión mediante inyección de código phtml y una elevación de privilegios con permisos SUID, explotando systemctl.


En primer lugar nos conectamos mediante vpn de THM a la maquina en particular.

        Sudo openvpn (archivo).ovpn


Reconocimiento

Utilizaremos la herramienta nmap, al ser un laboratorio controlado, y sin miedo a ruido, podemos elevar la velocidad con un --min-rate 5000 o un -T5

        nmap -p- -sS -n -Pn -O -vvv --min-rate 5000 (IP_objetivo)

Obtendremos la siguiente salida:

Ahora realizaremos un escaneo en mayor profundidad:

        nmap -p21,22,139,445,3128,3333 -sCV (IP_objetivo)

de esta manera tendremos información un poco mas detallada, gracias a los Scrips de reconocimiento y las versiones de los servicios de los puertos.


Observamos que en el puerto 3333 se esta corriendo el siguiente servidor web con Apache.

Damos un pequeño vistazo a la web especificando la IP y el puerto:

http://10.10.40.240:3333/

Y usamos Wappalyzer, para ver que librerías usa y obtener más información.


Ahora realizaremos con GoBuster mediante diccionario una enumeración de directorios y archivos que pudieran haber en la página.


gobuster dir -u http://10.10.40.240:3333/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt



Podemos ver un directorio interesante llamado /internal/ donde podemos observar que se pueden subir archivos, así que usaremos BurpSuite para saber con que extensión deja subir archivos y sabiéndolo intentaremos ejecutar una reverse-shell en la maquina victima.

Creamos un .txt con las extensiones posibles, lo subinos y antes de dar a enviar, activamos la escucha con Burp.


Una vez capturado el trafico, lo pasamos al Intruder con el Ctrl+I, limpiamos las selecciones pulsando Clear y donde vemos phpext.txt, seleccionamos .txt y le damos a Add$.


Acudimos a la sección de Payloads, y en payloads Options [Simple List] cargamos el txt con las extensiones, y hacemos clic en Start attack, así veremos que tipo de extensión esta permitida por la aplicación.

Acudimos a la sección de Payloads, y en payloads Options [Simple List] cargamos el txt con las extensiones, y hacemos clic en Start attack, así veremos que tipo de extensión esta permitida por la aplicación.

Vemos que la extensión permitida es phtml:



Ahora nos descargaremos el siguiente Script del siguiente repositorio para obtener una reverse-shell:

https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php

y cambiamos los parámetros de IP y port, y después de guardar cambiamos la extensión a .phtml



En una segunda terminal nos ponemos a la escucha con nc:

nc -nvlp 1234

subimos el archivo a la web, mientras esperamos la reverse-shell en la segunda terminal.

Una vez subido, vamos a (http://10.10.25.202:3333/internal/uploads/ ), ejecutamos el Scrip, y ya estaremos dentro!!!



de momento estamos como www-data, nos situaremos en el directorio /home para ver que usuarios hay.

Observamos que hay un usuario llamado bill, vamos a su directorio y podremos ver la primera flag.



Ahora usaremos el siguiente comando para buscar si tenemos algún permiso SUID:

find \-perm -4000 2>/dev/null



Vemos que tenemos el pkexec, pero como esa vulnerabilidad ya la vimos en el blog, usaremos el binario /bin/systemctl.

Y después de navegar por la web damos con este enlace que te explica como explotar systemctl.

https://gist.github.com/A1vinSmith/78786df7899a840ec43c5ddecb6a4740

Navegamos al directorio /tmp para tener permisos de escritura, y ponemos el comando en la consola.

Podemos Tratar antes la TTY:

script /dev/null -c bash

Ctrl +Z

stty raw -echo; fg

reset

xterm

export TERM=xterm

export SHELL=bash

y ya podremos pegar el script en nano y modificarlo donde pone KaliIP.

Ahora lo que nos queda es activar el servicio mientras escuchamos para obtener la shell inversa con permisos de root.

systemctl enable root.service

systemctl start root.service


¡¡¡¡¡¡¡¡¡Ya somos ROOOOOT !!!!!!!!!!!

Navegamos al directorio root, y con un cat vemos el contenido para ver la flag de root.






Comentarios

Entradas populares de este blog

¡Nos mudamos a YouTube! 🎥✨

VULNERABILIDAD DÍA CERO SAMSUNG GALAXY S21

Estrenando mi Github