Was ist Metasploit?
Metasploit ist ein leistungsfähiges Tool, das von ethischen Hackern verwendet werden kann, um systematisch Schwachstellen zu erkennen und diese proaktiv zu beheben, bevor sie von Hackern ausgenutzt werden.

Es gibt zahlreiche Pentesting-Tools, die die Arbeit eines Ethical Hackers während eines Pentests unterstützen. Das bekannteste unter ihnen ist das Metasploit Framework. Das auf Ruby basierende Open-Source-Framework bietet eine große Anzahl an Tools und Modulen, mit denen sich komplexe Angriffe in kurzer Zeit erstellen lassen, um Systeme erfolgreich zu kompromittieren.
Was ist Metasploit, und wie funktioniert es?
Metasploit ist ein leistungsfähiges Tool, das ethische Hacker einsetzen, um systematisch Schwachstellen zu erkennen und diese proaktiv zu beheben, bevor sie von Angreifern ausgenutzt werden. Obwohl Metasploit ein fester Bestandteil des Toolkits eines jeden Pentesters ist, wird es auch von Hackern mit böswilligen Absichten genutzt. So können Cyberkriminelle dieselben Werkzeuge verwenden, um Schwachstellen zu identifizieren und auszunutzen.
Die verschiedenen Tools, Bibliotheken und Module von Metasploit ermöglichen es, ein Exploit-Modul zu konfigurieren, es mit einem Payload zu versehen und anschließend einen Angriff auf ein Zielsystem zu starten. Die umfangreiche Datenbank von Metasploit enthält Hunderte von Exploits mit verschiedenen Payloads.
Im Rahmen eines Penetrationstests kommt Metasploit bereits in der Phase der Informationsbeschaffung zum Einsatz. In Kombination mit verschiedenen Enumerationtools wie Nmap wird versucht, Schwachstellen im System zu finden. Sobald eine Schwachstelle identifiziert wurde, wählt der Pentester den passenden Exploit sowie den Payload aus, um die Schwachstelle anzugreifen. Bei einem erfolgreichen Exploit wird der Payload auf dem Zielsystem ausgeführt, und der Angreifer erhält beispielsweise eine Shell, um mit dem kompromittierten System zu interagieren. Einer der beliebtesten Payloads für Angriffe auf Windows-Systeme ist Meterpreter -- eine interaktive Shell. Sobald Metasploit auf dem Zielcomputer läuft, stehen zahlreiche Tools für Privilege Escalation, Keylogging, Screen Capture und Pivoting zur Verfügung, um weiter in das System vorzudringen oder einen persistenten Zugriff einzurichten.
Die umfangreichen Funktionen von Metasploit sind erweiterbar, sodass sich das Framework leicht an die jeweiligen Anforderungen eines Angriffs und an das Zielsystem anpassen lässt.
Metasploit Framework Architektur
Die Architektur des Metasploit Frameworks besteht aus den folgenden Teilen:
- Interfaces
- Libraries
- Modules
- Tools
- Plugins
Interfaces
Interfaces bezeichnen die verschiedenen Möglichkeiten, über die Sie auf das Metasploit Framework zugreifen können. Es stehen vier Schnittstellen zur Verfügung:
- MSFConsole (Metasploit Framework Console): Die am weitesten verbreitete Schnittstelle ermöglicht den Zugriff auf das Metasploit Framework über eine interaktive Kommandozeile.
- MSFWeb: Eine browserbasierte Schnittstelle für den Zugriff auf das Metasploit Framework.
- Armitage: Die 2013 von Raphael Mudge entwickelte Java-basierte GUI-Schnittstelle ermöglicht es Sicherheitsteams, zusammenzuarbeiten, indem sie ihren Zugang zu kompromittierten Hosts teilen.
- RPC (Remote Procedure Call): Ermöglicht die programmatische Steuerung des Metasploit Frameworks über HTTP-basierte RPC-Dienste. Neben Ruby lassen sich RPC-Dienste auch in anderen Sprachen wie Java, Python und C nutzen.
Libraries
Bibliotheken enthalten die verschiedenen Funktionen des Metasploit Frameworks, mit denen Sie Exploits ausführen können, ohne zusätzlichen Code schreiben zu müssen.
Es gibt drei Metasploit-Bibliotheken:
- REX: Ermöglicht die meisten grundlegenden Aufgaben; enthält Base64, HTTP, SMB, SSL und Unicode.
- MSF Core: Bietet eine gemeinsame API und definiert das Metasploit Framework.
- MSF Base: Bietet eine benutzerfreundliche API.
Modules
Für die eigentlichen Aufgaben wie Scans oder Exploits kommen sogenannte Module zum Einsatz. Es gibt fünf Haupttypen von Metasploit-Modulen, die je nach Aufgabe kategorisiert sind:
Payload
Payloads sind Shellcodes, die die beabsichtigten Aktionen des Angreifers ausführen, sobald ein Exploit ein Zielsystem kompromittiert hat. Sie dienen beispielsweise dazu, Meterpreter- oder Kommandozeilenshells zu öffnen. Meterpreter Shells sind hochentwickelte Payloads, die während eines Cyberangriffs Code ausführen und weitere Erkundungsaufgaben ermöglichen.
Exploits
Ausführen von Befehlssequenzen, um Schwachstellen in Systemen oder Anwendungen auszunutzen und Zugang zu Zielsystemen zu erhalten.
Post-Exploitation-Module
Post-Exploitation-Module ermöglichen es, nach einem erfolgreichen Angriff tiefergehende Informationen zu sammeln und das Zielsystem weiter zu infiltrieren.
Encoder
Encoder verschleiern Nutzdaten während der Übertragung, um sicherzustellen, dass sie erfolgreich an das Zielsystem übermittelt werden und die Erkennung durch Antiviren-Software, Intrusion Detection Systems (IDS) und Intrusion Prevention Systems (IPS) umgehen.
NOPs (No Operation)
NOP-Generatoren erstellen zufällige Bytefolgen, um Systeme zur Erkennung und Verhinderung von Eindringlingen zu umgehen.
Hilfsmodule
Zu den Hilfsmodulen gehören Schwachstellen-Scanner, Port-Scanner, Fuzzer, Sniffer und andere Exploitation-Tools.
Tools and Plugins
Tools und Plugins erweitern die Funktionalität des Metasploit Frameworks. So wird etwa das Plugin pattern_create häufig bei der Entwicklung von Buffer-Overflow-Exploits eingesetzt, um nicht wiederkehrende Muster zu erstellen und zu testen, bei welchem Zeichen der Speicher überläuft und das Programm abstürzt. Das Plugin pentest unterstützt unter anderem bei der Durchführung gängiger Aufgaben im Rahmen von Penetrationstests.
Vorteile von Metasploit
Der Einsatz von Metasploit bietet Sicherheitsteams zahlreiche Vorteile:
Open Source
Da Metasploit ein Open-Source-Projekt ist, haben Sie die Möglichkeit, auf den Quellcode zuzugreifen und diesen aktiv weiterzuentwickeln -- beispielsweise durch das Hinzufügen benutzerdefinierter Module.
Automatisierung von Aufgaben
Metasploit ermöglicht es Pentestern, wiederkehrende Aufgaben während eines Pentests zu automatisieren und sich so auf andere wichtige Aspekte des Tests zu konzentrieren.
Einfache Payloadgenerierung
Der Wechsel zwischen verschiedenen Payloads erfolgt über den Befehl „set payload” sehr schnell. So lässt sich der Interpreter oder Shell-basierte Pfad einfach in eine spezifischere Operation ändern, etwa das Hinzufügen eines Benutzers oder den Zugriff auf einen Remote-Desktop. Darüber hinaus kann Shellcode für Standard-Exploits mithilfe von „msfvenom” über die Befehlszeile unkompliziert generiert werden.
Sauberes Beenden des Exploitcodes
Metasploit ermöglicht ein sauberes Beenden von Exploits. Dies ist besonders in Produktivumgebungen oder bei Diensten mit langen Startzeiten ein wichtiger Faktor.
Einen Angriff mit Metasploit durchführen
Wer von WannaCry oder NotPetya gehört hat, kennt wahrscheinlich auch EternalBlue. Dieser Exploit nutzt Schwachstellen im SMBv1-Protokoll aus. Mithilfe von Metasploit lässt sich ein Angriff gegen ein System mit dieser Schwachstelle durchführen.
Sobald feststeht, dass ein System diese Schwachstelle aufweist, müssen Sie in Metasploit lediglich das richtige Modul und einen Payload auswählen, die Informationen für das Zielsystem konfigurieren und den Angriff starten.
Mithilfe von Nmap können Sie feststellen, ob das System die EternalBlue-Schwachstelle aufweist:
nmap -p 445 -script vuln 10.10.10.40

Ist dies der Fall, starten Sie Metasploit und wählen das passende Modul aus:

Für diesen Exploit wird standardmäßig ein Meterpreter-Payload verwendet. Um den Payload korrekt zu konfigurieren, geben Sie die IP-Adresse und Ports des Zielsystems sowie des angreifenden Systems an:

Wenn Sie den Exploit anschließend ausführen, erhalten Sie im Erfolgsfall eine Shell auf dem Zielsystem:

Installation von Metasploit
Bei spezialisierten Linux-Distributionen für Sicherheitsexperten wie Kali Linux oder Parrot OS ist Metasploit bereits vorinstalliert.
Bei anderen Betriebssystemen ist eine manuelle Installation erforderlich. Dazu laden Sie für Linux/macOS die entsprechende Installationsdatei und für Windows den MSI-Installer herunter. Eine detaillierte Anleitung finden Sie in der Metasploit Dokumentation.
Um den vollen Funktionsumfang von Metasploit nutzen zu können, ist der Erwerb der lizenzierten Version erforderlich.
Fazit
Dieser Beitrag bietet lediglich einen kompakten Überblick über die Funktionalität von Metasploit. Ein umfassender Einblick ist angesichts der großen und stetig wachsenden Anzahl an Modulen kaum möglich. Gerade diese Vielfalt an Modulen und Einsatzmöglichkeiten macht Metasploit zu einem äußerst leistungsfähigen Tool, das die Arbeit während eines Pentests unterstützt und zahlreiche Aufgaben automatisiert. Beachten Sie jedoch, dass Metasploit allein nicht für eine umfassende Sicherheitsüberprüfung ausreicht.