> 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/ejpt-notes/pruebas-de-penetracion-de-host-y-red/ataques-basados-en-sistema-host/linux/escalada-de-privilegios-de-linux/explotacion-de-binarios-suid.md).

# Explotación de Binarios SUID

## 🛡️ ¿Qué es el permiso SUID?

Además de los tres permisos clásicos de archivos en Linux (lectura, escritura y ejecución), existe un **permiso especial** llamado **SUID** (*Set User ID*), que:

* Permite que un usuario **ejecute un script o binario** con los **permisos del propietario del archivo**, **no** con los permisos del usuario que lo ejecuta.

***

## ⚙️ ¿Para qué se usa?

El permiso SUID se utiliza normalmente para permitir que usuarios sin privilegios puedan ejecutar **scripts o binarios específicos** con **permisos elevados**, por ejemplo, como `root`.

> ⚠️ Aunque esto no otorga privilegios permanentes, **una mala configuración** puede ser **explotada** para escalar privilegios en el sistema.

***

## 🔓 Explotación de Binarios SUID

La explotación de esta funcionalidad tiene como objetivo **elevar privilegios** mediante el uso indebido de binarios SUID mal configurados.

#### 🧪 Para que el ataque tenga éxito, deben cumplirse estos factores:

* 👑 **El propietario del binario SUID debe ser `root`** u otro usuario con privilegios elevados.
* 🧑‍💻 **Debemos tener permisos de ejecución** sobre el binario.

> 💡 Si el binario tiene una vulnerabilidad o permite interacción con comandos externos, es posible aprovecharlo para obtener una **shell con privilegios elevados**.

***

## 🧪 Laboratorio Práctico

**Paso 1:** Abra el enlace del laboratorio para acceder a la máquina Kali.

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

**Paso 2:** Verifique si la máquina de destino es accesible:

**Dominio:**

```
ping -c 4 target.ine.local
```

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

El objetivo es alcanzable.

**Paso 3:** Abra Firefox y acceda a la terminal de la máquina de destino en **<http://target.ine.local:8000>** .

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

**Paso 4:** Verifique el contenido del directorio del estudiante.

**Dominio:**

```
ls -l
```

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

**Paso 5:** Observe que el binario de bienvenida tenga el bit suid activado. Esto significa que este binario y sus procesos secundarios se ejecutarán con privilegios de root. Compruebe el tipo de archivo.

**Dominio:**

```
file welcome
```

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

Es un binario ELF. Al ejecutarse, muestra un mensaje de bienvenida.

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

**Paso 6:** Investigue el binario. La forma más sencilla o preliminar de hacerlo es usar el comando strings.

**Dominio:**

```
strings welcome
```

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

**Paso 7:** Observe las cadenas de saludos en la salida del comando strings. Es posible que el binario de bienvenida esté llamando al binario de saludos. Por lo tanto, reemplace el binario de saludos con otro binario (por ejemplo, /bin/bash), que también debería ejecutarse como root.

Elimine el binario de saludos y luego copie /bin/bash a su ubicación y cámbiele el nombre a saludos.

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

**Paso 8:** Luego, ejecute nuevamente el binario de bienvenida.

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

El usuario estudiante fue escalado a usuario root. Se recuperó la alerta guardada en el directorio /root.

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

**Bandera:** b92bcdc876d52108778e2d81f3b01494

## Conclusión

En este laboratorio, vimos cómo podemos explotar programas setuid vulnerables para escalar privilegios.
