Penetrationstest - Fabian Gold - 3. Juni 2022

Was ist Metasploit?

Screenshot_from_2022_06_03_10_59_05_5de48b09b3

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.

Inhaltsverzeichnis

Es gibt zahlreiche Pentesting Tools, welche 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 es möglich ist komplexe Angriffe in kurzer Zeit zu erstellen, um somit erfolgreich Systeme zu hacken.

Was ist Metasploit, und wie funktioniert es?

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. Metasploit ist zwar ein fester Bestandteil des Toolkits eines jeden Pentesters, wird aber auch von Hackern mit böswilligen Absichten genutzt. So können auch Cyberkriminelle die Tools von Metasploit verwenden, um Schwachstellen zu identifizieren und diese auszunutzen.

Durch die verschiedenen Tools, Bibliotheken und Module von Metasploit wird es einem Benutzer einfach ermöglicht, ein Exploit-Modul zu konfigurieren, dieses mit einem Payload zu versehen und anschließend damit, einen Angriff auf ein Zielsystem zu starten. Die umfangreiche Datenbank von Metasploit enthält Hunderte von Exploits mit verschiedenen Payload.

Im Rahmen eines Penetrationstest kommt Metasploit bereits in der Phase der Informationsbeschaffung zum Zug. In Kombination mit verschiedenen Enumerationtools, wie Nmap, wird versucht, Schwachstellen im System zu finden. Sobald eine Schwachstelle identifiziert wurde, wählt man den passenden Exploit sowie den Payload aus, um die Schwachstelle anzugreifen. Ist der Exploit erfolgreich, wird der Payload am Zielsystem ausgeführt, und der Angreifer erhält z.B. eine Shell, um mit dem Payload zu interagieren. Einer der beliebtesten Payload für Angriffe auf Windows Systeme ist Meterpreter – eine interaktive Shell. Sobald Metasploit auf dem Zielcomputer ist, werden viele verschiedene Tools für die Ausnutzung von Privilegien, Keylogger, Screen Capture und Pivoting Tools angeboten, um weiter in das System vorzudringen oder einen persistenten Zugriff zu ermöglichen.

Die umfangreichen Funktionen von Metasploit sind erweiterbar, sodass es sich leicht an die jeweiligen Anforderungen eines Angriffs respektive 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 sind die verschiedenen Möglichkeiten, wie ein Benutzer auf das Metasploit Framework zugreifen kann. Hierzu gibt es vier verschiedene Schnittstellen.

  • MSFConsole (Metasploit Framework-Konsole): Die am weitesten verbreitete Metasploit-Schnittstelle, die Metasploit-Konsole, ermöglicht den Benutzern den Zugriff auf das Metasploit-Framework über eine interaktive Kommandozeilenschnittstelle.
  • MSFWeb: Eine browserbasierte Schnittstelle, über die Benutzer auf das Metasploit-Framework zugreifen können.
  • Armitage: Armitage wurde 2013 von Raphael Mudge entwickelt und ist eine Java-basierte GUI-Schnittstelle, die es Sicherheitsteams ermöglicht, zusammenzuarbeiten, indem sie ihren Zugang zu kompromittierten Hosts teilen.
  • RPC (Remote Procedure Call): Ermöglicht Benutzern die programmatische Steuerung des Metasploit-Frameworks über HTTP-basierte Remote Procedure Call (RPC)-Dienste. Neben der Metasploit-eigenen Sprache Ruby können RPC-Dienste auch in anderen Sprachen wie Java, Python und C ausgeführt werden.

Libraries

Bibliotheken enthalten die verschiedenen Funktionen des Metasploit-Frameworks, mit denen Benutzer 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 Durchführung der eigentlichen Aufgaben wie Scans oder Exploits werden sogenannte Module verwendet. Es gibt fünf Haupttypen von Metasploit Modulen, die je nach Aufgabe kategorisiert werden:

Payload Payloads sind Shellcodes, die die vom Angreifer beabsichtigten Aktionen ausführen, sobald ein Exploit ein Zielsystem kompromittiert hat. Sie können verwendet werden, um Meterpreter oder Kommandozeilenshells zu öffnen. Meterpreter Shells sind hoch entwickelte Payloads, die während eines Cyberangriffs verwendet werden, um Code auszuführen und weitere Erkundungsaufgaben durchzuführen.

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 den Benutzern, tiefergehende Informationen zu sammeln und ein Zielsystem nach der Ausnutzung 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 verwendet, um nicht wiederkehrende Muster zu erstellen, um zu testen, bei welchem Zeichen der Speicher überläuft und das Programm abstürzt. Das Plugin pentest hilft unter anderem bei der Durchführung gängiger Aufgaben bei Penetrationstests.

Vorteile von/durch Metasploit respektive Metasploit Tools

Die Verwendung von Metasploit bietet Sicherheitsteams viele Vorteile, darunter folgende:

Open Source Ein Vorteil bei der Verwendung von Metasploit ist, dass es ein Open-Source-Projekt ist und somit man die Möglichkeit hat auf den Quellcode zuzugreifen und diesen auch aktiv weiterzuentwickeln, dies z.B. durch das Hinzufügen benutzerdefinierter Module.

Automatisierung von Aufgaben Metasploit ermöglicht es Pentestern, einige der Aufgaben, die während eines Pentests anfallen, zu automatisieren, und können sich somit auf andere wichtige Parts während des Tests konzentrieren.

Einfache Payloadgenerierung Der Wechsel zwischen verschiedenen Payloads funktioniert durch den Befehl „set payload“ sehr schnell. Daher ist es einfach, den Interpreter oder den Shell-basierten Pfad in eine spezifischere Operation zu ändern, wie das Hinzufügen eines Benutzers und den Zugriff auf einen Remote-Desktop. Des Weiteren kann Shellcode zur Verwendung in Standard-Exploits mithilfe von „msfvenom“ über die Befehlszeile sehr einfach generiert werden.

Sauberes Beenden des Exploitcodes Das Beenden eines Exploits kann durch Metasploit sehr sauber abgewickelt werden. Dies ist besonders in Produktivumgebungen oder bei Diensten, die lange brauchen, um zu starten, ein wichtiger Faktor.

Einen Angriff mit Metasploit durchführen

Wer von WannaCry oder NotPetya gehört hat, hat wahrscheinlich auch schon von EternalBlue gehört. EternalBlue nutzt Schwachstellen im SMBv1 Protokoll aus. Mithilfe von Metasploit kann ein Angriff gegen ein System mit dieser Schwachstelle durchgeführt werden.

Nachdem man festgestellt hat, dass ein System diese Schwachstelle aufweist, muss man in Metasploit nur noch das richtige Modul und einen Payload auswählen, anschließend noch die Informationen für das Zielsystem setzen und schon kann man den Angriff starten.

Mithilfe von nmap kann man feststellen, ob das System die Eternalblue Schwachstelle aufweist.

nmap -p 445 -script vuln 10.10.10.40

metasploit-1.png

Ist das der Fall, muss man nur noch Metasploit starten und das richtige Modul auswählen.

metasploit-2.png

Für diesen Payload wird standardmäßig ein Meterpreter Payload verwendet. Um den Payload richtig zu konfigurieren ist es notwendig die IP-Adresse und Ports des Zielsystems, sowie des angreifenden Systems anzugeben.

metasploit-3.png

Lässt man den Exploit anschließend laufen, erhält man im erfolgreichen Fall eine Shell am Zielsystem.

metasploit-4.png

Installation von Metasploit

Bei der Verwendung der spezialisierten Linux-Distributionen für Sicherheitsexperten, wie Kali Linux oder Parrot OS, ist Metasploit bereits auf dem System vorinstalliert.

Bei der Verwendung anderer Betriebssysteme ist eine manuelle Installation notwendig. Hierzu ist es notwendig für Linux / macOS die zugehörige ERB Datei und für Windows den MSI Installer runterzuladen und zu installieren. Eine genaue Anleitung zum Download und für die Installation findet sich in der Metasploit Dokumentation.

Um auf den vollen Funktionsumfang von Metasploit zugreifen zu können, ist es notwendig, die lizenzierte Version von Metasploit zu kaufen.

Fazit

Dieser Beitrag zeigt letztlich nur einen sehr kleinen Überblick in die Funktionalität von Metasploit. Ein gesamtheitlicher Einblick ist aufgrund der großen Anzahl an Modulen auch nur sehr schwer möglich, vor allem da auch ständig neue hinzukommen. Durch diese große Anzahl an Module und Einsatzmöglichkeiten ist Metasploit ein sehr mächtiges Tool, um die Arbeiten während eines Pentests zu unterstützen und um manche Aufgaben zu automatisieren. Es sollte jedoch beachtet werden, dass die alleinige Verwendung von Metasploit nicht für eine umfangreiche Sicherheitsüberprüfung ausreichend ist.

Kontakt

Neugierig? Überzeugt? Interessiert?

Vereinbaren Sie ein unverbindliches Erstgespräch mit einem unserer Vertriebsmitarbeiter. Nutzen Sie den folgenden Link, um einen Termin auszuwählen:

Lädt...