Page cover

🟠Voleur

En esta ocasión vamos a hacer el writeup de la máquina Voleur de Hack the Box, una máquina Windows AD de dificultad Medium.

Información General

  • Nombre de la máquina: Voleur

  • IP: 10.10.11.76

  • Sistema operativo: Windows

  • Dificultad: 🟡 Media

  • Fecha: 15-09-2025


Configuración del host

La plataforma nos proporciona las credenciales iniciales para esta máquina:

/etc/passwd

Añadimos la IP 10.10.11.70 a nuestro /etc/hosts

Escaneo de puertos

Encontramos multitud de puertos abiertos, lo normal en máquinas Windows. Ademas nos encontramos con que la máquina objetivo es un Domain Controller, por la presencia de los puertos 3268 o 389, reservados para DCs.

Destacan los puertos:

  • 445 (SMB) - Recursos compartidos y enumeración

  • 5985 (WinRM) - Acceso con EvilWinRM con contraseña

  • 88 (Kerberos) - Posible Kerberoasting o AS-REP Roasting

  • 2222 - Puerto SSH no standard (22)

Añadimos la IP dc.voleur.htb a nuestro /etc/hosts


Enumeración de Subdominios (VHosts)

Comprobación de Content-Length

Fuzzing con FFUF

Encontramos el subdominio: grafana.planning.htb

Lo añadimos a /etc/hosts y accedemos a un panel de Grafana v11.0.0.


Enumeración inicial


Enumeración de Active Directory (si es AD)

Extracción de información LDAP

Enumeración de usuarios/grupos

FIltrando el ldapsearch obtenemos los usuarios del sistema:

Añadimos los usuarios encontramos a un archivo valid-users.txt. Probar a volcar tickets Kerberos mediante ASREP-Roasting falla, por lo que probaremos otras técnicas:


Enumeración con Bloodhound (Si es AD)

Editar resolv.conf

Bloodhound Python

No se puede utilizar la autenticación de contraseña directamente, por lo que generaremos un Ticket TGT para el usuario:

Comprobamos que funciona con:

Y recopilamos los datos de Bloodhound con:

Análisis con Bloodhound

En Domain Users encontramos todos los usuarios del sistema (que vimos anteriormente)

Descubrimos que el usuario ryan.nailor pertenece al grupo FIRST-LINE TECHNICIANS

No tenemos ningún poder directo (Outbound Object Control) con este usuario, por lo que probaremos a seguir enumerando.

Enumeración de Shares - Recursos compartidos

Para enumerar SMB en esta máquina debemos sincronizar la hora de nuestro Kali con el DC:

No podemos enumerar SMB con nuestro usuario:

Tenemos permisos de lectura en el Share IT que nos llama la atención.

Nos descargamos el archivo interesante Access_Review.xlsx y vamos a echarle un ojo:

Nos pide una contraseña, por lo que la crackearemos con John:

La contraseña es football1, vamos a ver que hay en el documento:

Obtenemos lo siguiente:

Credenciales Expuestas de Service Accounts

  • SVC_Ldap: M1VyC9pW7qT5Vn

  • SVC_Iis: N5pyGW1VqM7CZ8

Siempre que encontramos credenciales de un sistema AD, debemos enumerar más en detalle esos usuarios.

Bloodhound

Nos encontramos que svc_ladp tiene permisos GenericWrite sobre lacey.miller, y además tiene permisos WriteSPN sobre svc_winrm:

Obtener ticket para svc_ladp

Kerberoasting dirigido

Bingo! Tenemos los hashes de lacey.miller y de svc_winrm. Al crackearlo con john conseguimos la contraseña en texto plano de la cuenta svc_winrm:


User Flag

Vamos a generar un nuevo ticket para svc_winrm y nos conectamos por evil-winrm:


Escalada de Privilegios

Restore Users

Nuestro usuario actual no tiene grandes permisos ni nada curioso en especial pero observamos que el usuario svc_ldap es miembro del grupo restore_users, que tiene permisos GenericWrite sobre Second Line Support Technicians, donde se encontraba el usuario Todd que encontramos anteriormente, pero que fue eliminado:

Restaurar al usuario Todd

Usaremos RunasCs para cambiar de usuario (porque svc_ldap no está en el grupo remoto y no puede iniciar sesión directamente)

Abrimos una segunda terminal con un listener de netcat y ejecutamos RunasCS como lvs_ldap:

Y recibimos la shell cómo svc_ldap:

Consultar usuarios eliminados de AD

Restaurar usuario Todd

Lo podemos comprobar con:

Bloodhound con credenciales

Volveremos a enumerar el sistema AD con Bloodhound pero usando esta vez un usuario con más privilegios cómo svc_ldap:

Observamos que el usuario Todd es miembro del grupo Second Line Technicians, al igual que lacey.miller:

Generar TGT para Todd

Generamos el ticket de Todd y accedemos por SMB. Recordemos que sigue teniendo la misma contraseña que ya encontramos antes:

Accedemos por SMB

Intentamos obtener datos y claves cifradas con dpapi en la ruta:

Descifrando la clave DPAPI

Descifrar credenciales de usuario

Obtenemos las credenciales del usuario jeremy.combs, por lo que volveremos a enumerar el entorno con Bloodhound y este usuario.

Observamos que es miembro de Third Line Technicians, por lo que igual conseguimos más información al acceder por SMB:

Repetimos el proceso, conseguimos un ticket para jeremy.combs y nos conectamos por SMB:

Al conectarnos por SMB encontramos una clave id_rsa que nos permitiría conectarnos por SSH sin contraseña, y una nota. Nos descargaremos ambos:

En la nota encontramos lo siguiente:

Recordemos que en el escaneo de puertos descubrimos que el puerto SSH corría por el puerto 2222:

Le damos los permisos correctos al id_rsa y nos conectamos por SSH. Concretamente el id_rsa pertenece al usuario svc_backup, por lo que nos conectaremos cómo este usuario:

Pero al conectarnos vemos que no somos root, ni podemos acceder a /root, por lo que habrá que escalar privilegios:


👑 Root Flag

Volcado de secretos

En la carpeta Active Directory nos encontramos el ntds.dit:

Y en Registry el SECURITY y SYSTEM necesarios para extraer el ntds.dit:

Envío a la máquina atacante

Tenemos conectividad limitada, pero tenemos netcat, así que lo usaremos para enviarnos los archivos:

Lo mismo con SYSTEM:

Y con el ntds.dit:

Extraer ntds.dit

Bingo! Tenemos un volcado completo de los hashes de todos los usuarios del sistema, incluído el de Administrator:

Solicitar ticket como administrator

Podemos solicitar un ticket Kerbero solamente con el hash del usuario:

Acceso final como root

Última actualización

¿Te fue útil?