Metasploit: Exploits für alle

Seite 2: Dunkle Künste

Inhaltsverzeichnis

Ein Programm, das ein Sicherheitsproblem tatsächlich ausnutzt, also beispielsweise über einen Pufferüberlauf eigenen Code einschleust und ausführt, wird üblicherweise als Exploit bezeichnet. Die Entwicklung solcher Exploits erachten selbst altgediente Programmierer oft als "schwarze Magie". Ein erfolgreicher Angriff über einen Buffer-Overflow beispielweise erfordert außerdem eine Menge mühsamer Fleißarbeit. Der Entwickler muss mit Sprungadressen experimentieren, Platz für die sogenannte Payload finden, die den einzuschleusenden Code enthält, und diesen dann noch unverändert in den Speicher des angegriffenen Systems schaffen.

Doch schon bei kleinen Änderungen am Zielsystem -- also beispielsweise einer anderen Bibliotheksversion -- funktioniert der mühsam erarbeitete Code nicht mehr. So ist es beispielsweise selten, dass ein Entwickler eine "universelle" Speicheradresse in verschiedenen Versionen von Windows findet, an der er seinen Shellcode platzieren und per Buffer-Overflow zur Ausführung bringen kann. Die Folge: Für jede Plattform, auf der eine bestimmte Sicherheitslücke auftritt, fängt er von vorne an. Das Metasploit Framework vereinfacht diese Aufgabe durch seinen modularen Aufbau und flexiblen, wiederverwendbaren Code.

Das Framework ist zunächst einmal eine Sammlung von Exploits. Dabei unterscheidet Metasploit zwischen dem eigentlichen Angriffsmechanismus, der speziell auf eine Sicherheitslücke angepasst sein muss, und dem Shellcode, der dabei zur Ausführung kommt. Letzterer wird von generischen Perl-Modulen bereitgestelllt und der Metsploit-Nutzer kann sich so auf die Entwicklung des Angriffscodes konzentrieren. Aber selbstverständlich kann er auch für bereits existierende Angriffsmodule neue Shellcodes entwerfen, die sich dann auch in anderen Modulen wieder nutzen lassen.

Der einfachste Shellcode bindet eine Command-Shell wie sie cmd.exe oder die Bash bereitstellen an einen Netzwerk-Port, sodass deren Funktionen jedermann zur Verfügung stehen, der zu diesem Port eine Verbindung aufbaut. Etwas raffinierter arbeitet die so genannte Reverse-Shell, die auch hinter einer Firmen-Firewall funktioniert. Sie baut selbständig eine Netzwerkverbindung zu einem Server auf und stellt auf dieser den Shell-Prompt bereit. (Reverse, weil der Verbindungsaufbau genau anders herum läuft wie bei einer Telnet- oder SSH-Sitzung).

Der "Meterpreter" ist eine spezielle Payload. Sie wird direkt in einen laufenden Prozess auf dem Zielsystem injiziert und ist somit schwer zu erkennen. Einmal gestartet führt der Meterpreter nicht nur Kommandos aus; er lässt sich auch durch nachladbare Plugins erweitern. So liefert beispielsweise der "Sam Juicer" die Passwort-Hashes des angegriffenen Systems. Damit entfällt die Notwendigkeit, erst eigene Tools mühsam aufs Zielsystem zu transferieren.

Die Reverse-VNC-Palyoad gibt dem Angreifer volle Kontrolle über den Desktop.

Die VNC-Payload ist besonders spektakulär: Das Framework startet auf dem angegriffenen System einen neuen Prozess, in welchem es einen modifizierten VNC-Server ausführt -- ohne auch nur einmal auf die Platte zu schreiben. Fortan kann der Angreifer mit einem VNC-Client auf dem übernommenen System arbeiten, als säße er direkt davor. Insgesamte stellt das Framework rund 70 verschiedene Payloads bereit.

Mit seinen circa hundert Exploits kann Metsploit zwar nicht mit Tools wie Nessus mit seinen nahezu 10.000 Plugins konkurrieren, aber das ist auch nicht das Ziel. Die mitgelieferten Exploits des MSF sind eine wahre Fundgrube für Entwickler und lassen sich mit minimalem Aufwand für Angriffe neue Schwachstellen recyceln.

Trotzdem ist fast alles vorhanden, was Administratoren in den letzten Jahren schlaflose Nächte bereitet hat. Exploits für Sicherheitslücken in Samba, Apache und Microsofts Internet Information Server (IIS) liefert das Framework ebenso wie Module, mit dem sich Schwachstellen auf Client-Seite ausnutzen lassen, beispielsweise die Sicherheitslücke im LSASS, über die sich auch der Sasser-Wurm verbreitet. Des Weiteren greift das Framework FTP-Server, Backupprogramme, PHP- und MySQL-Applikationen und einiges mehr an. Dabei beschränkt sich MSF keineswegs nur auf Windows-Systeme; auch für Linux oder Suns Solaris sind Exploits im Angebot.