Cicada | Hack The Box

En este tutorial voy a mostrar como obtuve la bandera root en la máquina Cicada de Hack The Box. Esta propiedad se presenta como un desafío de nivel fácil.

Cicada

29 de noviembre de 2024

Enumeración


Para comenzar voy a realizar un escaneo de puertos con nmap para encontrar los puertos asbiertos:

nmap

Una vez detectados los puertos abiertos voy a analizar uno por uno para obtener mas información:

nmap ports

Veo que el puerto 445 se encuentra abierto, en ese puerto se ejecuta SMB, probé ingresar usando credenciales por defecto y lo logré.

Una vez dentro de los recursos de SMB noté que únicamente tenia acceso al directorio HR, el cuál contenía un archivo .txt, ese archivo tenía un mensaje de bienvenida para los nuevos empleados, el cuál mostraba una contraseña por defecto:

smbbloc de notas

Para este punto ya se que la contraseña por defecto es: Cicada$M6Corpb*@Lp#nZp!8.

Ahora voy a continuar con la enumeración y ver que otros datos puedo obtener.

Intenté obtener los usuarios mediante ldapsearch pero no resultó, ya que directamente no me permitía establecer contacto con el servidor. También intenté mediante kerbrute pero no dio resultado. Así que opte por usar la herramienta crackmapexec para obtener mas información respecto de los usuarios.

users

Y así obtuve una lista de 5 usuarios.

Ahora lo que voy a hacer es guardar estos usuarios en un archivo llamado users.txt y con crackmapexec voy a realizar una prueba y ver si alguno de estos usuarios utiliza la contraseña por defecto:

users and psw

Puedo ver que el usuario Michael.wrightson utiliza la contraseña por defecto.

Ahora voy a utilizar la herramienta enum4linux para enumerar el recurso compartido con el usuario y credenciales obtenidas y de esta manera ver si encuentro algún dato mas:

enum4enum4 users

Para el usuario David se puede ver la contraseña "aRt$Lp#7t*VQ!3".

Ahora voy a realizar una enumeración para el usuario David y veo que tiene acceso al recurso DEV:

smb david

Dentro del recurso get se encuentra un archivo Backup_script.ps1 el cuál voy a descargar para poder abrirlo desde mi maquina:

get backup

De esta manera obtengo el script que se encontraba en el recurso DEV. Al abrir el script veo que se encuentran las credenciales del usuario Emily:

script emily

Voy a realizar una nueva enumeración para el usuario emily y por lo que veo tengo permisos de lectura y escritura dentro del recurso C$:

smb emily

Escalada de Privilegios


Continué enumerando el usuario Emily pero no obtuve ningún otro dato. Luego recordé que al realizar el escaneo de puertos figuraba abierto el puerto 5985 utilizado por el servicio wsman, el cual es un servicio que permite gestionar remotamente un sistema. Así que probé usando evil-winrm para acceder remotamente con el usuario de Emily.

winrm

Ahora voy a ejecutar el comando "whoami /priv" para ver los privilegios del usuario:

priv emily

De acá lo más interesante es el privilegio "SeBackupPrivilege". Este privilegio permite leer cualquier archivo del sistema, incluso sin tener permisos explicitos para acceder a ellos. Así que lo que voy a hacer es extraer el archivo SAM y SYSTEM ya que pueden obtener hashes de contraseñas.

privileges

Ahora me dirijo a mi terminal local en kali y busco el archivo descargado para mediante la herramienta impacket-secretsdump poder extraer los hashes. Y asi obtengo las credenciales de administrador.

credentials administrator

Con estas credenciales voy a intentar iniciar sesión como administrador usando evil-winrm. Es importante destacar que el hash obtenido es un NTLM y se puede usar para la autenticación con evil-winrm sin la necesidad de conocer la contraseña en texto claro.

Privilegios escalados

Ahora solo resta navegar hasta encontrar las banderas de usuario y root.

Espero que este tutorial te haya sido de ayuda.