Architektur und Datenbank-Einrichtung

CybersicherheitBeginner
Jetzt üben

Einführung

Das Metasploit Framework ist ein leistungsstarkes Werkzeug, das von Sicherheitsexperten für Penetration Testing und die Entwicklung von Exploits verwendet wird. Eine Kernkomponente seiner Architektur ist die Backend-Datenbank, in der Regel PostgreSQL.

Dies ist besonders hervorzuheben, da Metasploit weit mehr als nur eine Sammlung von Exploits ist; es ist eine Workflow-Plattform. Die Datenbank, Module, Sitzungen und Arbeitsbereiche existieren, um Sie bei der Verwaltung komplexer Projekte zu unterstützen.

Durch die Integration einer Datenbank mit Metasploit können Sie die während Ihrer Assessments gesammelten Daten effizient speichern, durchsuchen und verwalten. Dazu gehören entdeckte Hosts, offene Ports, laufende Dienste und extrahierte Anmeldedaten. Mithilfe von Arbeitsbereichen (Workspaces) können Sie diese Daten logisch für verschiedene Projekte oder Zielnetzwerke trennen und so sicherstellen, dass Ihr Penetration-Testing-Workflow sauber und organisiert bleibt.

Ohne diese Struktur wird es bei größeren Assessments schnell schwierig, den Überblick zu behalten. Die Datenbank verwandelt einmalige Befehle in dauerhaftes Wissen, auf das Sie jederzeit zurückgreifen und das Sie korrelieren können.

In diesem Lab lernen Sie, wie Sie die PostgreSQL-Datenbank initialisieren, mit der primären Metasploit-Schnittstelle (msfconsole) interagieren, Projekt-Arbeitsbereiche verwalten und Ihre Datenbank mithilfe integrierter Scan-Tools befüllen.

Initialisierung der PostgreSQL-Datenbank

In diesem Schritt initialisieren Sie die PostgreSQL-Datenbank für Metasploit. Die Datenbank ist ein entscheidender Bestandteil der Architektur des Metasploit Frameworks. Sie speichert Ihre Konfiguration, Arbeitsbereiche, entdeckten Hosts, Dienste und Anmeldedaten und ermöglicht so eine effiziente Datenverwaltung während des Penetration Testings.

Stellen Sie zunächst sicher, dass der PostgreSQL-Dienst ausgeführt wird. Verwenden Sie den folgenden Befehl, um den Dienst zu starten:

sudo systemctl start postgresql

Initialisieren Sie anschließend die Metasploit-Datenbank. Dieser Befehl erstellt eine neue Datenbank, richtet einen dedizierten Datenbankbenutzer für Metasploit ein und generiert die erforderlichen Konfigurationsdateien in Ihrem Home-Verzeichnis:

msfdb init

Sie sollten eine Ausgabe sehen, die bestätigt, dass die Datenbank erfolgreich erstellt und konfiguriert wurde. Die Konfiguration wird in einem versteckten Verzeichnis unter ~/.msf4/database.yml gespeichert.

Starten der msfconsole und Überprüfung des Datenbankstatus

In diesem Schritt starten Sie die Metasploit Framework Console (msfconsole) und überprüfen, ob die Verbindung zur PostgreSQL-Datenbank erfolgreich hergestellt wurde.

Die msfconsole kann am besten als die Kommandozentrale des Frameworks betrachtet werden. Sobald die Datenbank verbunden ist, können Aktionen in der Konsole ein gemeinsames internes Modell des Assessments anreichern.

Die msfconsole ist die primäre Befehlszeilenschnittstelle für die Interaktion mit dem Metasploit Framework. Sie bietet eine zentralisierte Konsole für den Zugriff auf alle Module, Payloads und Datenbankfunktionen.

Starten Sie die Konsole im Quiet-Modus (um das große ASCII-Art-Startbanner zu überspringen), indem Sie den folgenden Befehl in Ihrem Terminal ausführen:

msfconsole -q

Sobald die Konsole geladen ist, ändert sich Ihr Prompt zu msf6 >, was anzeigt, dass Sie sich nun innerhalb der Metasploit-Umgebung befinden.

Überprüfen Sie den Status der Datenbankverbindung, indem Sie den folgenden Befehl in der Konsole eingeben:

db_status

Sie sollten eine Ausgabe ähnlich der folgenden sehen, die die Verbindung bestätigt:

[*] Connected to msf. Connection type: postgresql.

Sie können die msfconsole für die nächsten Schritte geöffnet lassen.

Erstellen und Verwalten von Arbeitsbereichen

In diesem Schritt lernen Sie, wie Sie Arbeitsbereiche (Workspaces) erstellen und verwalten. Arbeitsbereiche ermöglichen es Ihnen, Ihre Penetration-Testing-Daten logisch zu trennen. Sie können beispielsweise verschiedene Arbeitsbereiche für unterschiedliche Kunden oder Zielnetzwerke anlegen, um sicherzustellen, dass sich Hosts und Anmeldedaten nicht vermischen.

Stellen Sie sicher, dass Sie sich noch im msfconsole-Prompt (msf6 >) befinden. Falls Sie die Konsole verlassen haben, geben Sie einfach msfconsole -q ein, um sie erneut zu öffnen.

Um die aktuellen Arbeitsbereiche anzuzeigen, geben Sie ein:

workspace

Sie sehen einen default-Arbeitsbereich, der mit einem Sternchen (*) markiert ist, was anzeigt, dass er aktuell aktiv ist.

Erstellen Sie nun einen neuen Arbeitsbereich namens project_alpha mit dem -a (add) Flag:

workspace -a project_alpha

Die Konsole wechselt automatisch in den neu erstellten Arbeitsbereich. Sie können dies überprüfen, indem Sie den Befehl workspace erneut ausführen:

workspace

Sie sollten nun * project_alpha in der Ausgabe sehen, was bestätigt, dass Ihr neuer Arbeitsbereich aktiv ist und bereitsteht, um Daten zu speichern.

Importieren von Nmap-Scans in den Arbeitsbereich

In diesem Schritt befüllen Sie Ihre Arbeitsbereich-Datenbank, indem Sie einen Nmap-Scan direkt aus Metasploit heraus ausführen.

Metasploit bietet den Befehl db_nmap, der das Standard-Nmap-Tool ausführt, die Scan-Ergebnisse (Hosts, Ports und Dienste) jedoch automatisch in die aktive Arbeitsbereich-Datenbank importiert.

Führen Sie innerhalb Ihrer msfconsole (stellen Sie sicher, dass Sie sich noch im Arbeitsbereich project_alpha befinden) einen schnellen Scan Ihres lokalen Rechners (127.0.0.1) durch. In diesem Lab-Setup wissen wir, dass PostgreSQL läuft, daher scannen wir dessen Standard-Port 5432.

db_nmap -sV -p 5432 127.0.0.1

Warten Sie einen Moment, bis der Scan abgeschlossen ist. Sobald er fertig ist, können Sie die entdeckten Hosts anzeigen, die automatisch in der Datenbank gespeichert wurden:

hosts

Um die spezifischen Dienste und offenen Ports zu sehen, die während des Scans entdeckt wurden, verwenden Sie den Befehl services:

services

Sie sehen eine strukturierte Tabelle mit Host-IP, Port, Protokoll, Status und Dienstname. Da wir Port 5432 gescannt haben, sollten Sie einen PostgreSQL-bezogenen Diensteintrag sehen und keinen HTTP- oder SSH-Dienst.

Sie haben die Datenbank erfolgreich initialisiert, Arbeitsbereiche verwaltet und Scan-Daten importiert. Um die Metasploit-Konsole zu verlassen und zu Ihrem Standard-Linux-Terminal zurückzukehren, geben Sie ein:

exit

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab zur Architektur und Datenbank-Einrichtung erfolgreich abgeschlossen.

Sie haben gelernt, wie man die PostgreSQL-Datenbank für das Metasploit Framework initialisiert, die msfconsole startet und die Datenbankverbindung überprüft. Darüber hinaus haben Sie die Erstellung und Verwaltung von Arbeitsbereichen gemeistert, um Ihre Projektdaten isoliert zu halten, und db_nmap genutzt, um Ziele nahtlos zu scannen und die Ergebnisse direkt in Ihre Datenbank zu importieren. Diese grundlegenden Fähigkeiten sind essenziell, um organisierte und effiziente Penetration-Testing-Workflows aufrechtzuerhalten.