WriteUp CTF Sizzle

Introducción

Sizzle es una máquina de dificultad Insane de Hack The Box creada por mrb3n y lkys37en, de los cuales son los autores de 2 de los 3 Hack The Box Pro Labs que están disponibles actualmente.

Sizzle es una máquina bastante antigua, ya que se lanzó en enero de 2019.

Enumeración

NMAP

Los puertos más interesantes son FTP (21), HTTP (80), LDAP (389) y SMB (445). También tenemos WinRM en 5985/5986 como puerto útil si encontramos credenciales.

FTP

A partir del resultado de nmap, parece que el script de nmap ftp-anon identificó que se permite el inicio de sesión FTP anónimo.

FTP permite inicios de sesión anónimos, pero el directorio está vacío.

HTTP

Revisamos el servidor HTTP pero solo contenia un gif.

Vamos a enumerar directorios utilizando la herramienta dirsearch:

Los directorios interesantes son /certsrv y /certenroll. El /certsrv es más interesante ya que el código de estado es 401 (lo que significa que no estamos autorizados, lo que indica que debe haber una autenticación HTTP, por lo general).

SMB

Lo primero que debemos saber son los recursos compartidos, para lo que utilizaremos smbclient.

Los recursos interesantes son CertEnroll, Department Shares y Operations. Los recursos compartidos ADMIN$, C$, NETLOGIN y SYSVOL son recursos compartidos integrados en Windows, por lo que es común tenerlos en los resultados.

noté que había un recurso compartido para los Servicios de certificados de Active Directory. Lo más probable /certsrv es que esté en el servidor web: http://sizzle.htb/certsrv

Tenemos la URL, pero necesitamos credenciales.

Vamos a listar el contenido de los recursos compartidos usando smbclient. Revisando el recurso compartido Operations usando smbclient, traté de enumerar lo que hay dentro usando el comando dir pero obtuve el acceso denegado:

Luego me conecto al recurso compartido Department Shares y enumero lo que hay dentro:

Tenemos múltiples directorios, pero podemos cargar archivos en dos de ellos:

Estamos buscando credenciales. Dado que podemos escribir en uno de los directorios, posiblemente podamos aplicar un ataque a través de un archivo scf. Vamos a colocar un archivo scf en Users/Public. La estructura del archivo es la siguiente:

Entonces correremos responder. Cada vez que un usuario navega por ese directorio, automáticamente intentará conectarse a mi equipo a través de smb, ahí es cuando responder atrapará los hashes.

Ya tenemos el hash de una contraseña y un usuario.

Guardamos el hash en un archivo y lo desciframos con John utilizando el diccionario rockyou.txt.

Obtenemos la contraseña para el usuario amanda en texto plano.

Seguimos enumerando. Vamos a continuar enumerando los recursos compartidos como usuario amanda.

Comprobamos si las credenciales tienen privilegios en WinRM.

Pero parece que no funciona.

/certsrv

Iniciamos sesión en la URL que encontramos al principio del writeup y que requería de usuario y contraseña.

Es un servicio de certificados de AD de Windows.

¿Qué son los Servicios de Certificados de Active Directory (AD CS)? Según Microsoft, AD CS es el “rol de servidor que le permite crear una infraestructura de clave pública (PKI) y proporcionar criptografía de clave pública, certificados digitales y capacidades de firma digital para su organización”.

Al hacer clic en el enlace “Solicitar un certificado” en la página, me da dos opciones. Al marcar “Solicitud de certificado avanzada”, podemos agregar firmar nuestra propia clave.

Tenemos una opción en Evil-WinRM para usar claves públicas y claves privadas para iniciar sesión.

Creamos una clave para el usuario amanda y generamos una solicitud de firma de certificado (CSR) con los siguientes comandos.

Y generamos el archivo CSR.

Luego, en la página web de registro del certificado, podemos copiar/pegar el contenido del CSR.

Esto genera un certificado firmado que vamos a descargar.

Explotación

Shell como usuario amanda

Usando la clave pública y privada, inicié sesión como Amanda.

Buscamos la flag user.txt en todas las carpetas del usuario amanda pero no la encontramos, quizás este usuario sea el punto de pivote hacia otro usuario de dominio.

Vamos a utilizar bloodhound para extraer información interesante del dominio.

Comenzamos por el ingestor, en esta ocasión vamos a utilizar la versión Python, que no es necesario cargarla en la máquina víctima.

Y creamos el .zip para poder cargarlo en bloodhound.

Iniciamos neo4j y bloodhound, y cargamos el zip generado.

Lo primero que hacemos es, ya que tenemos a Amanda, es “Agregar usuario como propio” y mientras verifico las consultas, enumeramos todas las cuentas Kerberoastable.

Kerberoasting permite a un usuario solicitar un ticket de servicio para cualquier servicio con un SPN registrado y luego usar ese ticket para descifrar la contraseña del servicio. Si el servicio tiene un SPN registrado, puede ser Kerberoastable; sin embargo, el éxito del ataque depende de qué tan segura sea la contraseña y si es rastreable, así como también de los privilegios de la cuenta de servicio descifrada.

Para hacer Kerberoasting hay varias herramientas, pero podemos probar este Rubeus.

Al ejecutar eso, asegúrese de usar la opción kerberoast y también mencione el usuario y su contraseña.

Kerberoasting

Primero descargamos el ejecutable de rubeus, y lo subimos a la vícitma.

Creamos un servidor Python.

Y posteriormente, enviamos el ejecutable al objetivo.

Hay algún tipo de AppLocker que nos impide ejecutarlo, pero podemos usar esta ubicación para omitirlo.

Y volvemos a ejecutar rubeus.exe

Conexión como usuario mrlky

Obtenemos el hash de la contraseña del usuario mrlky. Lo desciframos con hashcat.

Y ya tendríamos la contraseña en texto plano.

Con este par de usuario y contraseña, volvemos a utilizar bloodhound, para ver que nueva información podemos extraer.

Volvemos a lanzar el ingestor Python de bloodhound y generamos el zip.

Al verificar las consultas, puedo ver que mrlky está en DCSync Rights. Entonces podemos hacer ataques DCSync.

MRLKY tiene GetChanges y GetChangesAll, que es lo que queremos, para hacer un DCSync Attack. También podemos verificar eso haciendo clic derecho en la ruta y en Info revelaremos cómo abusar de ella.

Hay muchas formas de hacer DCSync Attack pero impacket-secretsdump es la forma más fácil de hacerlo. Aquí necesitamos dar al usuario mrlky y su contraseña. Volcará todo el hash.

Elevación de privilegios

Podemos usar el hash para iniciar sesión.

Y ya seriamos usuario administrador de la máquina. Y estaría acabada a falta de las flags.

Debemos buscar la flag root.txt en el directorio C:\Users\administrator\Desktop>

La flag user.txt la podemos encontrar en C:\Users\mrlky\Desktop

Y ya tendríamos finalizada la máquina.

No responses yet

Deja una respuesta

Tu dirección de correo electrónico no será publicada.