Erkundung von Nmap-Portscanning-Techniken
Nmap ist ein leistungsstarkes Tool auf dem Gebiet der Cybersicherheit, insbesondere wenn es um Portscans geht. Portscanning ist eine Methode, um zu ermitteln, welche Ports auf einem Zielsystem geöffnet sind und welche Dienste möglicherweise auf diesen Ports laufen. Es gibt verschiedene Arten von Portscanning-Techniken, jede mit ihren eigenen einzigartigen Vorteilen und spezifischen Anwendungsfällen. In diesem Schritt werden wir einige dieser Techniken durch das Scannen unseres Mock-Dienstes erkunden.
Zunächst führen wir einen grundlegenden TCP Connect-Scan durch, der speziell auf unseren Port 8888 abzielt. Ein TCP Connect-Scan ist eine einfache Möglichkeit, zu überprüfen, ob ein Port geöffnet ist. Er funktioniert, indem er versucht, eine vollständige TCP-Verbindung zum Zielport herzustellen. Wenn die Verbindung erfolgreich ist, wird der Port als geöffnet angesehen.
nmap -p 8888 localhost
In diesem Befehl wird die Option -p
verwendet, um anzugeben, welche Ports wir scannen möchten. Hier sagen wir Nmap, Port 8888 auf dem localhost
(dem aktuellen Computer) zu scannen. Nach dem Ausführen dieses Befehls sollten Sie eine Ausgabe ähnlich der folgenden sehen:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-30 15:50 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
PORT STATE SERVICE
8888/tcp open sun-answerbook
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
Diese Ausgabe bestätigt, dass unser Port 8888 geöffnet ist. Nmap hat auch den mit diesem Port verbundenen Dienstnamen gemäß seiner internen Datenbank identifiziert.
Jetzt versuchen wir einen SYN-Scan. Ein SYN-Scan ist im Vergleich zum TCP Connect-Scan eine diskretere Methode. Er vollzieht keine vollständige TCP-Verbindung, was es weniger wahrscheinlich macht, dass er von Intrusion Detection Systemen (Eindringlingserkennungssystemen) erkannt wird.
sudo nmap -sS -p 8888 localhost
Die Option -sS
gibt an, dass wir einen SYN-Scan durchführen möchten. Dieser Scan erfordert Root-Rechte, da er das Senden roher Netzwerkpakete beinhaltet, was eine niedrigere Ebene der Netzwerkoperationen ist. Deshalb verwenden wir den sudo
-Befehl. Die Ausgabe sollte ähnlich wie beim vorherigen Scan sein:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-30 15:55 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
PORT STATE SERVICE
8888/tcp open sun-answerbook
Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds
Als nächstes versuchen wir einen UDP-Scan. UDP (User Datagram Protocol) ist ein anderer Typ von Netzwerkprotokoll im Vergleich zu TCP. Während TCP einen zuverlässigen, verbindungsorientierten Dienst bietet, ist UDP ein verbindungsloses Protokoll. Wir verwenden einen UDP-Scan, um zu überprüfen, ob Port 8888 für UDP-Verkehr geöffnet ist.
sudo nmap -sU -p 8888 localhost
Die Option -sU
gibt einen UDP-Scan an. UDP-Scans können zeitaufwändiger sein als TCP-Scans, da UDP nicht über den gleichen eingebauten Bestätigungsmechanismus wie TCP verfügt. Daher muss Nmap länger warten, um zu bestimmen, ob ein Port geöffnet oder geschlossen ist. Die Ausgabe könnte so aussehen:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-30 16:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
PORT STATE SERVICE
8888/udp closed sun-answerbook
Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds
Beachten Sie, dass der UDP-Port als geschlossen angezeigt wird. Dies ist zu erwarten, da unser netcat-Dienst auf TCP-Verbindungen wartet, nicht auf UDP.
Schließlich führen wir einen Dienstversionserkennungs-Scan durch. Dieser Scan hilft uns zu identifizieren, welcher spezifische Dienst und welche Version auf einem bestimmten Port läuft.
nmap -sV -p 8888 localhost
Die Option -sV
teilt Nmap mit, eine Dienst-/Versionserkennung durchzuführen. Es versucht, spezifische Anfragen an die geöffneten Ports zu senden und die Antworten zu analysieren, um den Dienst und seine Version zu bestimmen. Die Ausgabe könnte so aussehen:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-30 16:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
PORT STATE SERVICE VERSION
8888/tcp open http Apache httpd
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Nmap done: 1 IP address (1 host up) scanned in 6.51 seconds
Die Versionserkennung kann unseren netcat-Dienst möglicherweise nicht als echtes Programm korrekt identifizieren, aber es zeigt, wie Nmap versucht, zu bestimmen, was auf geöffneten Ports läuft.
Lassen Sie uns unsere Ergebnisse in einer Datei speichern, um sie später nachschlagen zu können. Das Speichern der Scanergebnisse ermöglicht es uns, sie später zu überprüfen, mit anderen zu teilen oder für weitere Analysen zu verwenden.
nmap -p 8888 localhost > /home/labex/project/nmap_scan_results.txt
In diesem Befehl wird das >
-Symbol verwendet, um die Ausgabe des Nmap-Scans in eine Datei namens nmap_scan_results.txt
im Verzeichnis /home/labex/project
umzuleiten.
Sie können die gespeicherten Ergebnisse mit folgendem Befehl anzeigen:
cat /home/labex/project/nmap_scan_results.txt
Der cat
-Befehl wird verwendet, um den Inhalt einer Datei anzuzeigen.
Dies schließt unsere Erkundung der verschiedenen Nmap-Portscanning-Techniken ab.