Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!
CVE-2014-6271_pwnable — Praktisches Labor zur Demonstration der Shellshock (CVE-2014-6271) Bash-Sicherheitslücke mit Privilegieneskalation durch Umgebungsvariablen-Injektion, basierend auf der pwnable.kr-Challenge. | Kitploit
Praktisches Labor zur Demonstration der Shellshock (CVE-2014-6271) Bash-Sicherheitslücke mit Privilegieneskalation durch Umgebungsvariablen-Injektion, basierend auf der pwnable.kr-Challenge.
CVE-2014-6271 ist eine schwere Schwachstelle, bekannt als "Shellshock", die 2014 entdeckt und veröffentlicht wurde. Diese Schwachstelle wurde in der Bash-Shell gefunden und betrifft fast alle Unix- und Linux-Systeme und ist eine der am weitesten verbreiteten Schwachstellen im Internet.
Sicherheitsbedrohung
Die Shellshock-Schwachstelle erlaubt die Ausführung beliebigen Codes in der Bash-Shell über Umgebungsvariablen. Angreifer konnten bösartigen Code in das System einschleusen, indem sie bestimmte Werte von Umgebungsvariablen manipulierten. Dies ermöglichte Missbrauch wie die Übernahme des Systems oder den Diebstahl von Benutzerinformationen.
Laborumgebung
Wir werden die shellshock-Aufgabe von pwnable.kr für die Übung nutzen.
Die Shellshock-Schwachstelle nutzt aus, dass die Bash-Shell eine Umgebungsvariable, die mit einer funktionsähnlichen Syntax gesetzt wird, beim Aufrufen als Funktion erkennt.
Wenn man einen Umgebungsvariablenwert böswillig mit einer funktionsähnlichen Syntax setzt, dann ein ';' und einen Befehl anhängt, wird beim Ausführen von Bash der nachfolgende Befehl ausgeführt.
Umgebungsvariable setzen (Beispiel)
Funktion setzen (Beispiel) (export -f: Option, um die Funktion auch in anderen Sitzungen (Subprozessen) nutzbar zu machen)
Angriff durch Setzen einer Umgebungsvariable (Beispiel)
Es wurde versucht, den Wert der Umgebungsvariable mit funktionsähnlicher Syntax zu setzen, sodass Bash sie als Funktion erkennt, und dann einen Befehl anzuhängen, um die Flagge zu lesen. Dies schlug jedoch aufgrund fehlender Berechtigungen fehl.
Der Code in shellshock.c zeigt, dass nach der Erhöhung auf eine gültige Gruppen-ID Bash ausgeführt wird.
Wenn Bash als Subprozess ausgeführt wird, wird die exportierte Angriffs-Umgebungsvariable initialisiert. Dabei wird sie als Funktion erkannt und der angehängte Befehl ausgeführt.
Wenn man shellshock ausführt, wird die Gruppen-ID erhöht, sodass die Berechtigung zum Lesen der Flagge besteht. Da das Programm Bash ausführt, wird in diesem Prozess der eingefügte Befehl '/bin/cat flag' ausgeführt.