# Metasploit

Das Metasploit-Projekt ist ein Projekt zur Computersicherheit, das Informationen über Sicherheitslücken bietet und bei Penetrationstests sowie der Entwicklung von IDS-Signaturen eingesetzt werden kann. Das bekannteste Teilprojekt ist das freie Metasploit Framework, ein Werkzeug zur Entwicklung und Ausführung von Exploits gegen verteilte Zielrechner. Andere wichtige Teilprojekte sind das Shellcode-Archiv und Forschung im Bereich der IT-Sicherheit.
Wie vergleichbare Lösungen, z. B. Canvas (von Immunity) oder Core Impact (von Core Security Technology), kann Metasploit unter anderem von Red Teams eingesetzt werden, um in Auftrag die Schwachstellen von Computersystemen zu prüfen und diese Schwachstellen bei Bedarf schließen zu lassen. Andererseits kann es wie jedes Werkzeug auch missbraucht werden, um fremde Systeme zu kompromittieren.

## Metasploit-Framework

Die Arbeit mit dem Framework gliedert sich in folgende grundlegende Schritte:
* Exploit auswählen und konfigurieren: Ein Exploit dient dem Eindringen in ein Zielsystem, indem ein Programmfehler ausgenutzt wird. Version 4.0.0 enthielt zum Zeitpunkt der Freigabe 716 verschiedene Exploits für Windows, Mac OS X, Unix, Linux, und andere Systeme; 103 mehr als in Version 3.5.0.
* Optionale Verwundbarkeitsprüfung: Hierbei wird geprüft, ob das Zielsystem durch den gewählten Exploit überhaupt verwundbar ist.
* Nutzlast oder auch Payload wählen und konfigurieren: Payload bezeichnet den Code, der auf dem Zielrechner bei einem erfolgreichen Einbruch ausgeführt werden soll, also z. B.:
** Client-Programm Meterpreter (ermöglicht über eine SSL-Verbindung Kontrolle über den Zielrechner, ermöglicht unter anderem Datei-Suche, verschiedene Methoden der Rechteausweitung, Portscans, Umleitung von Netzwerkverkehr und Datei-Download und -Upload).
** VNC-Server
** Shell
* Ausführung des Exploits.
* Weiteres Vordringen auf dem Zielsystem: Nach einem erfolgreichen Angriff lassen sich mittels Payload weitere Aktionen auf dem Zielrechner ausführen.
Diese Modularität, die es erlaubt, jeden Exploit mit jeder kompatiblen Nutzlast zu kombinieren, ist einer der großen Vorteile des Frameworks, da es eine Trennung der Aufgaben von Entwicklern (von Nutzlasten und Exploits) und Angreifern ermöglicht.
Ab der Hauptversion 3 wurde das Metasploit-Framework in der Programmiersprache Ruby implementiert. Es ist unter Linux und macOS sowie unter Microsoft Windows lauffähig, in spezialisierten Linux-Distributionen wie Kali Linux fixer Bestandteil, und kann per Kommandozeile oder über eine in Java geschriebene grafische Benutzeroberfläche bedient werden. Das Metasploit-Framework lässt sich durch externe Add-Ons in verschiedenen Sprachen erweitern.
Um einen Exploit und eine Nutzlast zu wählen, benötigt man einige Informationen über das Zielsystem und die darauf installierten Netzwerkdienste. Diese Informationen können durch den Einsatz eines Portscanners wie Nmap erlangt werden, der auch die Erkennung des Betriebssystems durch OS-Fingerprinting ermöglicht. Vulnerability Scanner wie OpenVAS, Nessus oder NeXpose können zusätzlich eingesetzt werden, um Sicherheitslücken auf dem Zielsystem zu entdecken.

## Die Shellcode-Datenbank

Die Shellcode-Datenbank enthält in Assemblersprache geschriebene Nutzlasten (Payloads) mit Quelltext, die vom Metasploit Framework eingesetzt werden.

## Metasploitable

Um praktische Erfahrung mit Metasploit sammeln zu können, wurde eine Testumgebung unter der Bezeichnung Metasploitable mit bewusst eingebauten Schwachstellen zusammengestellt. Metasploitable stellt eine fertig konfigurierte virtuelle Maschine (VM) dar, welche unter anderem unter VMware oder VirtualBox in einer Testumgebung betrieben werden kann. Der Betrieb als virtuelle Maschine hat den Vorteil, dass durch die Verwendung von snap shots, das sind Systemzustände die zu einem bestimmten Zeitpunkt angefertigt werden und leicht restauriert werden können, auch verschiedene destruktive Angriffsverfahren effizient und wiederholend in verschiedenen Variationen durchprobiert werden können.
Die erste Version von Metasploitable wurde am 21. Mai 2012 durch Metasploitable 2 abgelöst, welche als direkter Nachfolger angesehen wird. Es wurden einige Neuerungen und praktische Beispiele eingearbeitet, um nun auch aktuellere Szenarien zu demonstrieren und zu trainieren. Gleichzeitig wurde ein offizieller Benutzungsleitfaden veröffentlicht, um die Bedienung zu erleichtern und Beispiele zu erläutern.
Mit der Version Metasploitable 3 wurde ein neues Konzept eingeführt: Frühere Versionen von Metasploitable wurden als VM-Snapshot verteilt, bei dem alles in diesem Zustand eingerichtet und gespeichert wurde. Metasploitable 3 führt einen neuen Ansatz ein: die dynamische Erstellung des VM-Images. Es nutzt Packer, Vagrant und eine Vielzahl von Skripten, um innerhalb von Minuten aus dem Nichts eine voll funktionsfähige, ausnutzbare VM zu erstellen.