Jeeves

Publicado: 11 de Junio de 2025 Autor: Josรฉ Miguel Romero aKa x3m1Sec Dificultad: โญ Medium
๐ Descripciรณn
Jeeves es una mรกquina Windows de dificultad media que presenta mรบltiples vectores de ataque interesantes. La mรกquina ejecuta un servidor web IIS en el puerto 80 con una aplicaciรณn de bรบsqueda vulnerable, y un servidor Jetty en el puerto 50000 que expone una consola de Jenkins. El vector principal de acceso inicial se obtiene a travรฉs de la explotaciรณn de la consola de scripts de Jenkins, que permite la ejecuciรณn remota de cรณdigo. Para la escalada de privilegios, se requiere el anรกlisis de un archivo KeePass encontrado en el sistema, cuya contraseรฑa se puede crackear offline, revelando credenciales que incluyen un hash NTLM del administrador. La escalada final se logra mediante un ataque de Pass-the-Hash, y la flag final estรก oculta en un flujo de datos alternativo (ADS) del sistema de archivos NTFS.
๐ญ Reconocimiento
Ping para verificaciรณn en base a TTL
Enumeraciรณn de servicios
๐ Servicios Encontrados
๐๏ธ 445 TCP - SMB
Verificamos si podemos enumerar algo de informaciรณn mediante una NULL Session pero no parece posible:


๐ Enumeraciรณn Web
๐ Puerto 80 - HTTP (IIS)
Al acceder al servicio expuesto en el puerto 80 en http://10.10.10.63/ encontramos una aplicaciรณn llamada Jeeves que parece ser un Buscador:

Probamos la funcionalidad de bรบsqueda y recibimos un mensaje de error de base de datos que nos revela informaciรณn valiosa:
Base de datos: Microsoft SQL Server 2005 9.00.4053
Directorio revelado en el mensaje de error

En el mensaje vemos un directorio:
Realizamos fuzzing de directorios pero no encontramos nada de utilidad que podamos usar como vector de ataque.
๐ Puerto 50000 - HTTP (Jetty)
Al acceder a este servicio en http://10.10.10.63:50000/ encontramos:
Error 404 Not Found
Banner: Jetty 9.4.z-SNAPSHOT (versiรณn en desarrollo)

๐ Fuzzing de directorios
Al realizar fuzzing de directorios usando gobuster encontramos un recurso crรญtico:
Recurso encontrado: /askjeeves
Recurso encontrado: /askjeeves
๐ฅ Explotaciรณn - Acceso Inicial
๐ฏ Jenkins Script Console
Accedemos al recurso http://10.10.10.63:50000/askjeeves y descubrimos que tenemos acceso al Script Console de Jenkins sin autenticaciรณn:

๐งช Prueba de Concepto (PoC)
Relizamos una PoC ejecutando el siguiente cรณdigo para ver si logramos enumerar el usuario de la mรกquina:
Resultado: Usuario kohsuke confirmado

Ahora iniciamos un listener en nuestro host de ataque:
๐ Reverse Shell
A continuaciรณn, tratamos de explotar una RCE y ganar acceso a la maquina usando el siguiente payload:
Y obtenemos la reverse shell en la mรกquina windows:

Enumeramos la mรกquina y obtenemos la primera flag en el directorio Desktop del usuario kohsuke:

## ๐ Escalada de Privilegios
๐ Descubrimiento de KeePass
Continuamos enumerando y descubrimos un archivo de keepass en el directorio Documents del usuario kohsuke:

Podemos transferir este archivo a nuestro host de ataque usando por ejemplo smbserver de impacket para montar un recurso en red de la siguiente forma:

๐ Anรกlisis del Archivo KeePass
Una vez transferido el archivo a nuestro host de ataque, verificamos con el comando file el tipo de archivo:
Vemos que se trta de un archivo de keepass de versiรณn 2.x
Intentamos usar kepass2john para extraer el hash del archivo y ver si podemos crackearlo offline mediante un ataque de diccionario

Copiamos el hash con el formato correcto y sin saltos de lรญnea:
A continuaciรณn, usamos hashcat y el diccionario rockyou para crackearlo y obtener la contraseรฑa:

๐๏ธ Acceso a KeePass
Ahora usamos la herramienta keepass2 para cargar el archivo CEH.kdbx y usar la contraseรฑa maestra que hemos obtenido anteriormente con hashcat:


Recopilamos todas las contraseรฑas y el hash que hemos encontrado para ver si alguna se estรก reutilizando por el usuario Administrator:
๐ Credenciales Encontradas
Contraseรฑas recopiladas:
Hash NTLM encontrado:
No hay suerte tratando de autenticarnos con ellas y el usuario administrator contra el servicio SMB:

๐ฏ Pass-the-Hash Attack
Sin embargo, usamos impacket-psexec para hacer pass the hash usando la cuenta del usuario Administrator y el hash encontrado y logramos ganar acceso como administrador:

๐ Flag Root - Flujos de Datos Alternativos (ADS)
๐ Bรบsqueda Inicial
Al acceder al directorio Desktop del Administrator, encontramos una pista en lugar de la flag: Accedemos al directorio Desktop del usuario Administrator para obtener la flag, sin embargo, encontramos un fichero de texto que nos indica que tenemos que buscar de forma mรกs profunda:

Tras buscar el archivo root.txt en toda la raรญz de windows usando
No encontramos nada. Cambiamos el enfoque, hay una caracterรญstica del sistema de archivos NTFS que son los flujos de datos alternativos (ADS)
๐ Detecciรณn de ADS
Usamos dir /R para mostrar los flujos de datos alternativos:
Con el comando dir /R en Windows muestra informaciรณn detallada sobre los archivos de un directorio, incluyendo sus flujos de datos alternativos (ADS):

Podemos usar el comando more para leer el contenido de la siguiente forma:

Last updated