> 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/metodologias-de-evaluacion/evaluacion-de-vulnerabilidad/analisis-de-vulnerabilidades/shellshock.md).

# ShellShock

## 📌 ¿Qué es Shellshock?

**Shellshock** (CVE-2014-6271) es una familia de vulnerabilidades descubiertas en el **intérprete de comandos Bash**, presente desde la versión 1.3, que permite a un atacante ejecutar **comandos arbitrarios de forma remota**, abriendo la posibilidad de obtener acceso no autorizado a sistemas Linux vulnerables mediante técnicas como **reverse shell**.

🔍 **Descubierta por:** Stéphane Chazelas\
📅 **Fecha de descubrimiento:** 12 de septiembre de 2014\
📅 **Hecha pública:** 24 de septiembre de 2014

***

## 🧠 ¿Qué es Bash?

**Bash** (Bourne Again Shell) es un intérprete de comandos ampliamente utilizado en sistemas **Unix y Linux**, siendo el shell predeterminado en la mayoría de las distribuciones. Es parte del proyecto GNU y se utiliza tanto de forma interactiva como en scripts automatizados.

***

## 💥 ¿Por qué es crítica esta vulnerabilidad?

La vulnerabilidad reside en **cómo Bash analiza funciones exportadas en variables de entorno**. Si la variable incluye una función con una estructura como `() { :; };`, Bash ejecutará cualquier comando que le siga, lo que abre la puerta a la **ejecución remota de comandos (RCE)**.

Ejemplo vulnerable:

```bash
() { :; }; echo vulnerable
```

***

## 🎯 Sistemas y vectores afectados

* **Afecta:** Sistemas Linux / Unix que utilicen Bash como shell.
* **No afecta:** Windows (no usa Bash por defecto).
* **Vectores comunes de explotación:**
  * Servidores **Apache** configurados para ejecutar **CGI scripts** (.sh).
  * Scripts CGI escritos en Bash.
  * Interfaces que acepten variables de entorno manipuladas por usuarios externos (por ejemplo, cabeceras HTTP).

***

## &#x20;🧪Laboratorio Práctico

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

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

**Paso 2:** Ejecute el escaneo Nmap en el destino para encontrar puertos abiertos.

**Dominio:**

```
nmap demo.ine.local
```

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

El puerto 80 está abierto

**Paso 3:** Inicie Firefox y navegue hasta el dominio de destino.

**URL:**

```
http://demo.ine.local
```

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

Un sitio web se está ejecutando en el puerto 80 del destino.

**Paso 4:** Haga clic derecho y seleccione "Ver código fuente de la página".

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

Se está ejecutando un script CGI en el servidor de destino.

**Paso 5:** Utilice el script Nmap NSE para comprobar si el servidor es vulnerable al ataque shellshock.

**Dominio:**

```
nmap --script http-shellshock --script-args "http-shellshock.uri=/gettime.cgi" demo.ine.local
```

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

El servidor es vulnerable al ataque Shellshock.

**Paso 6:** Busque el exploit disponible para la vulnerabilidad Shellshock.

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

**Paso 7:** El enlace de GitHub contiene los pasos para explotar la vulnerabilidad.

**URL:** <https://github.com/opsxcq/exploit-CVE-2014-6271>

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

El atacante tiene que crear un agente de usuario malicioso para explotar la vulnerabilidad.

**Paso 8:** Configura Firefox para usar Burp Suite. Haz clic en el icono del complemento FoxyProxy en la esquina superior derecha del navegador y selecciona "Burp Suite".

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

**Paso 9:** Inicie Burp Suite, navegue hasta el proxy y active la intercepción.

Recargue la página e intercepte la solicitud con Burp Suite.

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

**Paso 10:** Haga clic derecho y seleccione la opción “Enviar a repetidor” y navegue a la pestaña Repetidor.

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

**Paso 11:** Modifique el agente de usuario e inyecte la carga maliciosa.

**Carga útil:**

```
() { :; }; echo; echo; /bin/bash -c 'cat /etc/passwd'
```

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

Haga clic en el botón Enviar.

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

El comando se ejecutó exitosamente.

**Paso 12:** Modifique la carga útil para ejecutar el comando 'id'.

**Carga útil:**

```
() { :; }; echo; echo; /bin/bash -c 'id'
```

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

**Paso 13:** Modifique la carga útil para ejecutar el comando 'ps -ef'.

**Carga útil:**

```
() { :; }; echo; echo; /bin/bash -c 'ps -ef'
```

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

#### Conclusión

En este laboratorio, aprendimos sobre la explotación de la vulnerabilidad "Shellshock" (CVE-2014-6271) y realizamos un ataque contra un servidor web.
