Resolute
Última actualización
¿Te fue útil?
Última actualización
¿Te fue útil?
Resolute
es una máquina Windows de dificultad fácil que cuenta con Active Directory. El enlace anónimo de Active Directory se utiliza para obtener una contraseña que los administradores de sistemas establecen para las nuevas cuentas de usuario, aunque parece que la contraseña de esa cuenta ha cambiado desde entonces. Un password spraying revela que esta contraseña todavía está en uso para otra cuenta de usuario de dominio, lo que nos da acceso al sistema a través de WinRM
.
Se descubre un registro de transcripción de PowerShell, que ha capturado las credenciales pasadas en la línea de comandos. Esto se utiliza para moverse lateralmente a un usuario que es miembro del grupo DnsAdmins
. Este grupo tiene la capacidad de especificar que el servicio DNS Server cargue una DLL de complemento. Después de reiniciar el servicio DNS, logramos la ejecución del comando en el controlador de dominio en el contexto de NT_AUTHORITY\SYSTEM
.
Realizaremos un reconocimiento con nmap para ver los puertos que están expuestos en la máquina Resolute.
Lanzaremos una serie de scripts básicos para intentar buscar vulnerabilidades en los puertos que hemos encotrado expuestos.
Comprobaremos el nombre del dominio con el cual nos enfrentamos a través del siguiente comando.
Procederemos a añadir la entrada en nuestro archivo /etc/hosts
Como hemos visto que el RPC se encontraba expuesto (puerto 593), probaremos de intentar conectarnos haciendo uso de la herramienta rpcclient a través de un null session. Confirmamos que podemos acceder sin problemas.
Procederemos a hacer uso de la herramienta de NSrpcenum para realizar una enumeración del RPC a través de una null session.
El primer paso será enumerar todos los usuarios del dominio y guardarlos en "users.txt".
Verificaremos usuariso que dispongan de descripción, nos damos cuenta que aparece que el usuario "marko" tiene una descripción indicando que la contraseña es: Welcome123!
Con las credenciales encontradas, probaremos de comprobar si son válidas para el usuario "marko". Verificamos que las credenciales no son correctas para dicho usuario.
Probaremos de comprobar si esta contraseña es válida para uno de los usuarios que tenemos en nuestro archivo "users.txt".
Verificamos que la contraseña es válida para la usuaria "melanie".
Guardaremos las credenciales en nuestro archivo "credentials.txt".
Debido que disponemos de una buena cantidad de usuarios válidos, probaremos de realizar un AS-REP Roasting Attack de usuarios que dispongan del (DONT_REQ_PREAUTH) de Kerberos.
En este caso, ninguno disponía de dicha configuración.
Teniendo un usuario válido con sus credenciales, procederemos a intentar realizar un Kerberoast Attack, comprobamos que no obtenemos ningún Ticket Granting Service (TGS).
Verificaremos si con estas credenciales podemos conectarnos al WinRM del equipo, comprobamos que nos aparece como Pwn3d lo que nos confirma el acceso.
Procederemos a conectarnos con las credenciales de "melanie" y verificaremos la flag de user.txt.
Revisando el equipo comprobamos que habían dos directorios ocultos con un archivo oculto.
Comprobando el contenido del archivo .txt, comprobamos que aparece una línea de ejecución de comandos en la cual el usuario "ryan" estaba realizando el mapeo de una unidad de red y aparece su respectiva contraseña en texto plano.
Teniendo supuestamente unas nuevas credenciales, probaremos de comprobar si podemos pivotar entre usuarios.
Comprobamos que las credenciale son válidas, disponemos del mismo acceso de los recursos SMB y de que podemos conectarnos al WinRM.
Procederemos a conectarnos con el usuario "ryan" al servicio de WinRM a través de evil-winrm.
Revisando los permisos y grupos del usuario "ryan", nos damos cuenta que somos miembros del grupo "DnsAdmins".
El formar parte de este grupo, puede ser un vector para realizar una escalada de privilegios.
En nuestra terminal de Kali, procederemos a crear un payload con msfvenom de una Reverse Shell a nuestro equipo en formato DLL, de nombre de archivo le pondremos "pwn.dll".
Habilitaremos un servidor SMB del directorio actual de trabajo (donde tengamos el DLL malicioso) y des de otra terminal nos pondremos en escucha por el puerto configurado en la Reverse Shell.
Des de la terminal de Windows que disponemos, procederemos a realizar la explotación del PrivEsc.
Agregaremos una DLL especialmente diseñada como complemento del servicio DNS, que será nuestro payload. Una vez realizada la configuración, deberemos de parar el servicio DNS y volverlo a iniciar para así obtener la Reverse Shell en nuestra terminal.
Es posible que debamos repetir el proceso de parar e iniciar el servicio de DNS varias veces hasta obtener la Reverse Shell.
Comprobamos que nos hemos autenticado como usuario Administrator y verificamos la flag de root.txt.
Windows PrivEsc: | LOLBAS: