Cicada
Última actualización
¿Te fue útil?
Última actualización
¿Te fue útil?
Cicada
es una máquina Windows de nivel fácil-difícil que se centra en la enumeración y explotación de Active Directory para principiantes. En esta máquina, los jugadores enumerarán el dominio, identificarán usuarios, navegarán por recursos compartidos, descubrirán contraseñas de texto simple almacenadas en archivos, ejecutarán un spray de contraseñas y usarán el SeBackupPrivilege
para lograr un compromiso total del sistema.
Comenzaremos a realizar un escaneo de todos los puertos abiertos de la máquina víctima. Entre los puertos que hemos encontrado interesantes se encuentran:
88 --> Kerberos
389 --> ldap
445 --> SMB
5985 --> Wsman (WinRM)
Procederemos a editar nuestro archivo /etc/hosts para hacer referencia al dominio a través de la dirección IP de la máquina.
Procederemos a enumrar usuarios ya que hemos comprobado que el puerto de Kerberos está abierto a través de la herramienta Kerbrute, pasándole un diccionario para enumerar usuarios. Entre ellos nos encuentra el usuario "guest" y el usuario "Administrator".
Probaremos con netexec a acceder al SMB con el usuario enumerado "guest" sin indicarle contraseña, comprobamos que podemos acceder sin contraseña.
Probaremos de listar los recursos que se encuentran en el SMB.
Accederemos al recurso compartido "HR" que hemos encontrado con el usuario guest. Comprobaremos si el recurso dispone de algún archivo. Procederemos a descargar el archivo que hemos encontrado.
Comprobaremos el contenido del archivo y descubriremos que RRHH envió una noticia a los usuarios indicando la contraseña por defecto que dispondrían los usuarios.
Probaremos de realizar un ataque de "RID Brute" para enumera usuarios a través del RID en SMB. Entre ellos encontramos usuarios con un RID + de 1000, lo que indica que se trata de usuarios creados manualmente.
En un archivo .txt nos guardaremos los usuarios que nos sirvan, que tengan un RID mayor a 1000 y los 2 que hemos enumerado con Kerbrute.
Procederemos a utilizar netexec para intentar comprobar a través del archivo users.txt que hemos generado indicándole la contraseña que hemos encontrado, para comprobar si dicha contraseña es válida para un usuario. Nos encontramos que la contraseña es válida para el usuario michael.wrightson
Con ldapdomaindump dumpearemos toda la información del LDAP a través del usuario y contraseña que hemos encontrado. Nos generará los resultados en distintos formatos.
Si accedemos al archivo de "domain_users.html" comprobaremos que hemos encontrado los usuarios que hay en LDAP y en el apartado de "Description" del usuario "daniel.orelious" se encuentra un texto indicando su respectiva contraseña.
Con crackmapexec probaremos de comprobar si el usuario que hemos encontrado "david.orelious" dispone de acceso algún recurso compartido de SMB. En este caso, comprobamos que disponemos de acceso al recurso "DEV" que parece ser algún recurso de desarrollador o algo parecido.
Probaremos de acceder con smbclient con las credenciales encontradas, comprobaremos que en el recurso hay un script .ps1 el cual procederemos a descargar en nuestro equipo local.
Procederemos a comprobar el contenido del script .ps1 encontrado, y nos damos cuenta que para el usuario "emily.oscars" se encuentra su contraseña en texto plano.
Procederemos a comprobar con estas nuevas credenciales el SMB y nos damos cuenta que tenemos permisos para acceder a "ADMIN$" y "C$", lo cual parece indicar que tenemos privilegios de Administración.
En este punto, probaremos de intentar acceder con este nuevo usuario al WinRM que hemos encontrado expuesto (Puerto 5985) a través de la herramienta de evil-winrm. Comprobaremos que hemos podido acceder correctamente y comprobaremos la flag del usuario.
Por lo tanto, podemos hacernos una copia del archivo SAM y SYSTEM y así luego poder extaer los hashes de los usuarios del sistema.
Procederemos a descargarnos los 2 ficheros a nuestro equipo local y comprobar que los disponemos.
Con la herramienta de pypykatz procederemos a extraer los hashes NTLM de la SAM.
Procederemos de conectarnos al WinRM que encontramos expuesto con evil-winrm intentando acceder con el usuario "Administrator" y con su respectivo hash NTLM. Comprobaremos que accedemos sin problemas y encontraremos la flag del root.
Una vez con acceso a la máquina, deberemos de encontrar algún vector para poder escalar privilegios. Para ello lo primero será comprobar que privilegios dispone el usuario con el que estamos. Nos damos cuenta que tenemos el privilegio de "", lo cual nos permite crear copias de seguridad en el equipo.