> 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/hack-the-box/easy/lame.md).

# Lame

## Información de la máquina

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

Lame es una máquina Linux sencilla que solo requiere un exploit para obtener acceso root. Fue la primera máquina publicada en Hack The Box y solía ser la primera para los nuevos usuarios antes de su retirada.

***

## Reconocimiento

Empezaremos haciendo un ping a la máquina víctima para ver si está encendida y ante que nos enfrentamos.

<figure><img src="/files/UaYUP8D1e5HOk3UBzeiM" 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 **63**, lo que indica que es un sistema **Linux** (normalmente, los sistemas Windows tienen un TTL de 127).&#x20;

{% hint style="success" %}
Esto sucede porque Hack The Box virtualiza las máquinas, lo que a menudo reduce el TTL en un punto respecto al valor estándar.

En entornos reales tendrían los siguientes valores:

TTL Linux **→** 64

TTL Windows **→** 128
{% endhint %}

Haremos un primer reconocimiento para ver los puertos abiertos en el sistema.

<figure><img src="/files/EjouqbLk8JfsitKgxJeM" 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 65535 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 5 puertos abiertos, puerto 21(FTP), 22(SSH), 139(NetBIOS Session Service), puerto 445(Microsoft-DS SMB file sharing),y el puerto 3632(distccd v1). Ahora realizamos un escaneo más avanzado sobre estos 5 puertos

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

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

Con `-p`**`21,22,139,445,3632`**, le indicamos que **solo** escanee los puertos **21,22,139,445,3632**

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

## Scanning for vulnerable versions

Enumeramos los servicios disponibles en la máquina y encontramos que el **FTP** tiene una versión vulnerable que permite la ejecución de un **backdoor**. Buscamos exploits relacionados con esta vulnerabilidad y encontramos uno específico para esta versión.

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

En la descripción del exploit, se nos muestra cómo ejecutarlo correctamente.

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

También identificamos que el servicio **Samba** está corriendo en una versión vulnerable.

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

Consultamos la documentación y encontramos un exploit para explotar esta vulnerabilidad.

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

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

***

## Root access via exploit SAMBA - CVE-2007-2447

Instalamos las librerías necesarias para ejecutar el exploit de **FTP**.

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

Ejecutamos el exploit pero no obtenemos resultado, lo que indica que la vulnerabilidad pudo haber sido parcheada.

<figure><img src="/files/960oy25DfgPze9juMZ5X" alt=""><figcaption></figcaption></figure>

Dado que el exploit de FTP no funciona, intentamos explotar la vulnerabilidad en **Samba**.

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

Para ello, instalamos las bibliotecas necesarias, aunque la instalación varía respecto a lo descrito en la documentación original del exploit.

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

Abrimos una conexión con **Netcat** en el puerto **4444** para recibir la shell de la máquina víctima.

Ejecutamos el exploit de **Samba** y esta vez sí funciona, otorgándonos acceso como **root**.

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

Con acceso total al sistema, buscamos las flags.

La **flag del usuario** se encuentra en la ruta:\
📂 `/home/makis/user.txt`

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

La **flag de root** se encuentra en la ruta:\
📂 `/root/root.txt`

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

***

## Conclusión

Lame es una máquina que te enseña a explotar una versión vulnerable de Samba, con el que se consiguen privilegios máximos.
