Kürzlich eine Familie von Schwachstellen im Zusammenhang mit einem Bash-BUG, der gebräuchlichste Interpreter unter GNU / Linux, MAC OS und einigen Unix, und wurde S . genanntHölleShock oder Bashdoor (CVE-2014-6271). Das wichtigste und alarmierendste Problem in dieser Hinsicht hat mit der Tatsache zu tun, dass besagter BUG seit 20 Jahren in Bash präsent ist, so dass die Ernsthaftigkeit der Angelegenheit geschätzt wird als Heartbleed.
Das Bash BUG oder Neurose Es ist selbst kein bösartiger Code (wie Computerviren, Spyware, Malware usw.), sodass er von Antiviren- oder ähnlichen Systemen nicht erkannt und blockiert werden kann, sondern muss in der Softwareimplementierung selbst korrigiert werden, die ihn „erträgt“.
Es wird empfohlen, dieses Tutorial in kontrollierten Umgebungen für Zwecke im Zusammenhang mit der Forschung und dem Studium der Informatik anzuwenden, wie hier beschrieben.
Was ist der Bash BUG ShellShock?
Grundsätzlich liegt das Problem in der Möglichkeit, dass die Bash die Definition von Scripting-Funktionen in Umgebungsvariablen speichern muss, genauer gesagt darin, wie diese Funktionen von der Bash geladen werden.
Der BUG manifestiert sich, wenn in einer Umgebungsvariablen nach der Funktionsdefinition zusätzlicher Code hinzugefügt wird, den die Bash nach dem Laden der Funktion weiter parst und ausführt.
Mit dem folgenden Befehl wurde eine leere Funktionsdefinition, beliebiger Code, in die Variable "x" geladen und dann die Bash aufgerufen.
Was passiert ist, dass vor dem Aufruf von Bash die Umgebungsvariable geladen und der eingefügte Code ausgeführt wurde, der einfach den String "vulnerable" auf der Konsole anzeigt (es hätte natürlich schlimmer sein können!). Dann wurde Bash ausgeführt und als Beispiel der echo-Befehl aufgerufen. Eine einfachere Variante des Befehls zum Durchführen des Tests:
$ env x = '() {:;}; echo anfällig 'bashDieser letzte Befehl zeigt die Zeichenfolge "vulnerable" auf dem Bildschirm an, wenn die Bash-Version den BUG hat, oder es wird nichts angezeigt, wenn es sich um eine gepatchte Version handelt.
Wie in der Einleitung erwähnt, ermittelt dieser BUG eine Reihe von Sicherheitslücken, die von einem Angreifer zur Fernsteuerung von Computern verwendet werden können. Innerhalb dieser Varianten gibt es einige etwas komplexer, andere sehr einfach und einige mehr oder weniger komplex. Es gibt Varianten, die sich auf Apache- und CGI-Module beziehen, andere für den DHCP-Client und einige etwas aufwendiger als andere.
Für diese Anleitung wird einer der einfachsten Fälle verwendet, ShellShock-Angriff auf GNU / Linux DHCP-Client.
Beteiligte SystemeOpfergastgeber:
GNU / Linux mit Bash 4.3
DHCP-Client isc-dhclient-4.2.4
IP 192.168.1.88 (über DHCP)
Angreifender Gastgeber:
Windows XP
DHCP-Server "tftp32" von Ph. Jounin
IP: 192.168.1.100
VERGRÖSSERN
Für den Proof of Concept gehen wir von einem LAN aus, in dem sowohl das Opfer als auch der Angreifer verbunden sind.
Da die DHCP-Client-Software mit Administratorrechten ausgeführt wird, versucht der Angreifer, schädlichen Code in einige DHCP-Optionsparameter in die dem Opfer zugewiesene DHCP-Konfiguration einzubinden.
Verfahren
1) Der Angreifer führt die DHCP-Dienstsoftware aus {(ftp32 ”von Ph. Jounin) wurde für diese Anleitung verwendet}
1.1) Wählen Sie die zu verwendende Netzwerkschnittstelle aus und drücken Sie die Schaltfläche "Einstellungen"
1.2) Konfigurieren Sie die Optionen so, dass nur der DHCP-Dienst ausgeführt wird.
1.3) Wechseln Sie in den Reiter „DHCP“ und konfigurieren Sie wie folgt:
1.4) Hinweis im Feld „Zusätzliche Option“ wurde die Option 114 (verwendet in VOIP) angegeben und die Definition der Bash-Funktion und des Schadcodes im Optionsdetailfeld eingetragen:
() {ignoriert;}; echo 'CODE INJIZIERT'; / bin / cat / etc / passwd1.5) Drücken Sie "OK", der DHCP-Dienst ist bereit.
2) Führen Sie im Systemterminal des Opfers den folgenden Befehl aus, um das Syslog des Systems für die Ausführung der DHCP-Anfrage verfügbar zu machen:
# tail -f / var / log / syslog &3) Angenommen, eth1 ist die Netzwerkschnittstelle des Opfers, führen Sie den DHCP-Client aus:
# dhclient eth14) Der Befehl macht der DHCP-Anfrage und dem Angreifer die entsprechende Zuweisung:
5) Im Terminal des Opfers wird dank des Tail-Befehls, der im Hintergrund das System-Syslog anzeigt, die Ausführung des injizierten Codes angezeigt. In diesem Fall wird die Zeichenfolge "INJECTED CODE" und dann der Inhalt der Datei angezeigt /etc/passwd des Opfers (hätte viel schlimmer sein können…):
Dieser letzte Teil ist dank des Befehls "/ bin / cat / etc / passwd”Dies ist ein Teil der als Option 114 angegebenen Zeichenfolge.
Der Angreifer hätte andere Befehle ausführen und beliebige Aktionen ausführen können, da er über „root“-Berechtigungen verfügt, da der DHCP-Client des Opfers mit diesen Rechten ausgeführt wird.
ÜberlegungenFür dieses Handbuch wurde gängige Software verwendet, ohne Variationen des Opfersystems. Diese Sicherheitsanfälligkeit liegt in anderen Anwendungen vor, die Bash verwenden, um Parameter oder Skripte auf dem System auszuführen.
Ist zwingend erforderlich Wenden Sie die entsprechenden Updates auf das System an, um diese Art von Angriffen zu verhindern.
Es sollte klargestellt werden, dass die hier vorgestellten Inhalte sowohl zum Verständnis der Mechanik des Angriffs als auch zur Sensibilisierung für diesen letzten Punkt nützlich sind. Denken Sie daran, dass dieses Urteil seit mindestens 20 Jahren besteht und daher möglicherweise lange vor seiner Veröffentlichung angewendet wurde.
Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben