Ensalá Papas
Última actualización
Última actualización
Buenas Hacker, Bienvenido a otro post!
En este artículo, vamos a estar resolviendo la máquina Ensalá Papas de la plataforma The Hackers Labs.
Iniciamos como siempre, lanzando una traza ICMP a la máquina objetivo 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.
Realizamos un escaneo con nmap
para descubrir que puertos TCP se encuentran abiertos en la máquina víctima. 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.
Parámetros utilizados:
-sS
: Realiza un TCP SYN Scan para escanear de manera sigilosa, es decir, que no completa las conexiones TCP con los puertos de la máquina víctima.
-sCV
: Es la combinación de los parámetros -sC
y -sV
. El primero determina que se utilizarán una serie de scripts básiscos de enumeración propios de nmap, para conocer el servicio que esta corriendo en dichos puertos. Por su parte, el segundo parámetro permite conocer más acerca de la versión de ese servicio.
-p-
: Indica que debe escanear todos los puertos (es igual a -p 1-65535
).
--open
: Solo considerar puertos abiertos.
--min-rate 5000
: Establece el número mínimo de paquetes que nmap enviará por segundo.
-Pn
: Desactiva el descubrimiento de host por medio de ping.
-vvv
: Activa el modo verbose para que nos muestre resultados a medida que los encuentra.
-oN
: Determina el formato del archivo en el cual se guardan los resultados obtenidos. En este caso, es el formato por defecto de nmap.
Si ingresamos a la sitio web que esta corriendo bajo el puerto 80, nos encontramos con la web por defecto de una instacia de IIS 7.
Si miramos el código fuente, no encontramos nada interesante, por lo que procedemos a realizar web fuzzing.
Realizamos Web Fuzzing con la herramienta gobuster
indicando que queremos enumerar aquellos archivos con extensiones tipicas de un servidor IIS .asp
,.aspx
, .config
.php
Encontramos un archivo zoc.aspx
.
Accedemos a la ruta indicada y nos encontramos con el siguiente formulario para poder subir archivos.
Probamos subir una web shell. Para ello podemos hacer uso de la web shell cmdaspx
la cual se encuntra en Kali bajo el directorio /usr/share/webshells/aspx/cmdasp.aspx
. Copiamos el script a nuestro directorio de trabajo.
Subimos el archivo, pero observamos que obtenemos un error indicando que el archivo no es valido.
Investingando un poco, encontramos que podemos subir archivos .config
al servidor IIS y lograr ejecutar código. Podemos leer más en detalle sobre esto aquí.
El archivo que subiremos es el siguiente código, el cual podemos encontrar en PayloadsAllTheThings.
Guardamos el código en un archivo llamado web.config
y lo subimos al servidor.
Genial, logramos subir el archivo.
Ahora necesitamos conocer en que ruta se esta guardando este.
Si miramos el código fuente del archivo zoc.aspx
, encontramos un comentario html el cual revela una posible ruta /Subiditosdetono
.
Si accedemos a la ruta, vemos que obtenemos un error 403 Acceso denegado.
Pero si indicamos el nombre del archivo config, logramos acceder a nuestra web shell.
Crear un recurso compartido con la herramienta impacket-smbserver
para compartir el binario de netcat.
El binario de netcat, lo podemos encontrar en Kali bajo el directorio: /usr/share/windows-resources/binaries/nc.exe
.
Lo copiamos a nuestro directorio de trabajo.
Creamos el recurso compartido.
Nos ponemos en escucha con netcat por el puerto 443.
Ejecutamos desde la web shell el siguiente comando:
Ganamos acceso al sistema.
Leemos la flag de user.txt
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 JuicyPotato.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 JuicyPotato.exe.
Creamos un recurso compartido con impacket-smbserver
para poder transferir estos binarios a la máquina víctima.
Descargamos el binario en la máquina víctima.
Por otra parte, creamos una reverse shell con la utilidad msfvenom
.
-p windows/shell_reverse_tcp
: Especifica el tipo de payload que se generará, en este caso, un shell de Windows con conexión de retorno TCP.
LHOST=192.168.1.18
: Indica la dirección IP del host al que se conectará el shell. Debes reemplazar 192.168.1.18
con la dirección IP de tu máquina atacante.
LPORT=4444
: Especifica el número de puerto al que se conectará el shell. En este caso, el puerto es 4444
. Puedes cambiarlo según tus necesidades.
-f exe
: Indica el formato de salida del payload. En este caso, se está utilizando el formato exe.
-o rshell.exe
: Determina el archivo donde se almacenara el payload.
Descargamos la rshell.exe en la máquina víctima:
Nos ponemos en escucha con nectacat por el puerto 4444.
Ejecutamos JuicyPotato.
Ganamos acceso al sistema al sistema como nt authority\system
.
Por ultimo, leemos la flag de root.txt
.
Protección contra Token Kidnapping
Actualizaciones y Parches: Mantener el sistema operativo y todas las aplicaciones actualizadas con los últimos parches de seguridad.
Configuraciones de Seguridad: Configurar correctamente las políticas de seguridad y los permisos de usuario para minimizar los riesgos.
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 Ensalá Papas.
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!