Enumeración

Escaneo de puertos con Nmap

nmap -sC -sV 10.10.10.84 -o nmap.txt


Nmap nos devuelve que tiene SSH y HTTP abiertos. Vamos a acceder al servidor HTTP:

Podemos apreciar que en el index se encuentra una aplicación web temporal para probar scripts PHP. Vamos a intentar por ejemplo con phpinfo.php:

El phpinfo.php se muestra perfectamente, este nos proporciona información muy interesante como el sistema utilizado, rutas físicas, variables de entorno, los ajustes de configuración completos de PHP…
Pero lo más destacable es que en la URL vemos que los parámetros viajan por GET y además tenemos la variable $file que recuerda totalmente a una LFI. Vamos a tratar de confirmar que existe dicha LFI.

Explotación

Vulnerabilidad de inclusión local de archivos (LFI)


Al probar a cambiar el valor de la variable $file a “../../../../../etc/passwd” obtenemos el archivo passwd por completo, este nos muestra los diferentes usuarios del sistema. El último de todos, charix, llama la atención porque es UID/GID 1001.
Vamos a utilizar Burp Suite para modificar el User-Agent e inyectar código PHP en el archivo “/var/log/httpd-access.log” (encargado de registrar los accesos de Apache). El objetivo final es obtener un parámetro $c en browse.php que permita ejecutar comandos de sistema y todo esto viajando por GET:


Listo, hemos conseguido ejecutar el comando “uname -a” con éxito, ahora vamos a conseguir una shell inversa:


Ya tenemos acceso como www-data y en el directorio actual hemos encontrado el archivo pwdbackup.txt que al parecer está codificado en Base64 13 veces. Vamos a descodificarlo desde el propio Kali Linux:

root@kali:~/htb/Poison# nano pwdbackup.txt
root@kali:~/htb/Poison# cat pwdbackup.txt | base64 -d| base64 -d| base64 -d| base64 -d| base64 -d| base64 -d| base64 -d| base64 -d| base64 -d| base64 -d| base64 -d| base64 -d| base64 -d
Charix!2#4%6&8(0

Hemos obtenido como resultado: “Charix!2#4%6&8(0”, esta podría ser perfectamente la contraseña del usuario charix, vamos a probar a conectarnos vía SSH:

¡Bingo! Ya estamos conectados como charix, vamos a conseguir la flag de user.txt:

charix@Poison:~ % cat /home/charix/user.txt

Ahora vamos a por root.txt, comenzaremos indagando en /home para ver si encontramos algo interesante:

charix@Poison:~ % ls
secret.zip user.txt

En /home/charix existe un archivo llamado secret.zip protegido con contraseña. Al probar a extraerlo con unzip nos da problemas, por lo tanto, pasaremos el archivo vía SCP a nuestra máquina de Kali Linux:

Hemos conseguido descargar el archivo secret.zip de la máquina remota y descomprimirlo, la contraseña era “Charix!2#4%6&8(0”. Vamos a ver que contiene dicho archivo:

Estos procesos hacen referencia a VNC, un software que permite observar las acciones del ordenador servidor remotamente a través de un ordenador cliente. Para confirmar que VNC está corriendo en la máquina remota vamos a revisar los puertos que están a la escucha de manera local:

charix@Poison:~ % netstat -an
tcp4 0 0 127.0.0.1.5801 *.* LISTEN
tcp4 0 0 127.0.0.1.5901 *.* LISTEN

Hemos confirmado que VNC está corriendo ya que sus puertos por defecto son 5801 y 5901.

Escalación de privilegios

Escalación mediante SSH Tunneling y VNC

Como no podemos acceder al servidor VNC desde nuestro Kali Linux porque este trabaja de manera local vamos a necesitar redireccionar el servicio a un puerto de nuestra máquina:

root@kali:~/htb/Poison# ssh -L 1234:127.0.0.1:5901 charix@10.10.10.84

Para terminar, nos conectamos mediante vncviewer a la máquina local utilizando el archivo “secret” que descomprimimos anteriormente:


¡Y listo, ya tenemos nuestra flag de root.txt! Ahora es recomendable copiar la flag a “/home/charix” debido a que VNC da problemas con el portapapeles compartido:

charix@Poison:~ % cat root.txt

¿Me ayudas a compartirlo?
Última modificación: 19 abril 2019

Autor

Comentarios

Comenta o responde a los comentarios

Tu dirección de correo no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.