Enumeración
Para comenzar voy a realizar un escaneo de puertos con nmap para encontrar los puertos asbiertos:
Una vez detectados los puertos abiertos voy a analizar uno por uno para obtener mas información:
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:
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.
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:
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:
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:
Dentro del recurso get se encuentra un archivo Backup_script.ps1 el cuál voy a descargar para poder abrirlo desde mi maquina:
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:
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$:
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.
Ahora voy a ejecutar el comando "whoami /priv" para ver los privilegios del usuario:
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.
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.
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.
Ahora solo resta navegar hasta encontrar las banderas de usuario y root.
Espero que este tutorial te haya sido de ayuda.