Verständnis und Ausführung eines Nmap SYN-Scans
Nachdem wir nun einen Ziel-Service gestartet und lauffähig haben, ist es an der Zeit, uns mit SYN-Scans zu befassen. SYN-Scans sind ein wesentlicher Bestandteil des Netzwerksicherheitstests und ermöglichen es uns, offene Ports auf einem Zielsystem zu entdecken. In diesem Abschnitt lernen wir, wie SYN-Scans funktionieren, und verwenden dann Nmap, ein leistungsstarkes Netzwerk-Scanning-Tool, um einen SYN-Scan gegen unseren HTTP-Server durchzuführen.
Was ist ein SYN-Scan?
Bevor wir mit dem eigentlichen Scan beginnen, ist es wichtig, den zugrunde liegenden Mechanismus eines SYN-Scans zu verstehen. Dazu schauen wir uns zunächst an, wie eine normale TCP-Verbindung hergestellt wird.
Normale TCP-Verbindung
Bei einer normalen TCP-Verbindung findet eine Drei-Wege-Handshake-Prozedur statt. Dies ist ein grundlegender Prozess zur Herstellung einer zuverlässigen Verbindung zwischen einem Client und einem Server:
- Schritt 1: SYN-Paket vom Client
Der Client initiiert die Verbindung, indem er ein SYN (Synchronisieren)-Paket an den Server sendet. Dieses Paket ist wie eine Anfrage, um ein Gespräch zu beginnen und fragt den Server, ob er bereit ist, zu kommunizieren.
- Schritt 2: SYN-ACK-Paket vom Server
Wenn der Server verfügbar und bereit zur Kommunikation ist, antwortet er nach Empfang des SYN-Pakets mit einem SYN-ACK (Synchronisieren-Bestätigen)-Paket. Dieses Paket bestätigt die Anfrage des Clients und zeigt auch an, dass der Server bereit ist, die Verbindung zu starten.
- Schritt 3: ACK-Paket vom Client
Schließlich sendet der Client ein ACK (Bestätigen)-Paket, um die Drei-Wege-Handshake-Prozedur abzuschließen. Nach diesem Schritt ist die TCP-Verbindung vollständig hergestellt, und Daten können zwischen Client und Server ausgetauscht werden.
SYN-Scan-Prozess
Ein SYN-Scan hingegen folgt einem anderen Ansatz:
- Schritt 1: SYN-Paket von Nmap
Nmap, unser Scanning-Tool, sendet das initiale SYN-Paket an den Zielport. Dies entspricht dem ersten Schritt bei einer normalen TCP-Verbindung.
- Schritt 2: SYN-ACK-Antwort vom Ziel
Wenn der Zielport geöffnet ist, antwortet er mit einem SYN-ACK-Paket, genau wie bei einer normalen TCP-Verbindung.
- Schritt 3: Verbindungstermination durch Nmap
Anstatt das abschließende ACK-Paket zu senden, um die Handshake-Prozedur abzuschließen, beendet Nmap die Verbindung. Dies macht den Scan weniger erkennbar, da die volle Verbindung nie hergestellt wird. Darüber hinaus ist er schneller als ein vollständiger Connect-Scan, der für jeden gescannten Port die gesamte Drei-Wege-Handshake-Prozedur abschließt.
Ausführung des SYN-Scans
Schritt 1: Navigieren in das Projektverzeichnis
Zunächst müssen wir sicherstellen, dass wir uns im richtigen Projektverzeichnis befinden. Dies ist wichtig, da wir die Scanergebnisse in einer Datei innerhalb dieses Verzeichnisses speichern werden. Um in das Projektverzeichnis zu navigieren, führen Sie den folgenden Befehl in Ihrem Terminal aus:
cd /home/labex/project
Schritt 2: Ausführen des SYN-Scans
Jetzt sind wir bereit, den SYN-Scan mit Nmap auszuführen. Führen Sie den folgenden Befehl in Ihrem Terminal aus:
sudo nmap -sS localhost -p 8080 > /home/labex/project/nmap-syn-scan-results.txt
Lassen Sie uns diesen Befehl zerlegen, um zu verstehen, was jeder Teil tut:
sudo
: Dieser Befehl wird verwendet, um den nachfolgenden Befehl mit erhöhten Rechten auszuführen. SYN-Scans erfordern Root-Rechte, da sie das Senden von rohen Netzwerkpaketen beinhalten. Daher müssen wir sudo
verwenden, um den nmap
-Befehl auszuführen.
nmap
: Dies ist das Netzwerk-Scanning-Tool, das wir verwenden. Nmap wird häufig für Netzwerkexploration und Sicherheitsüberprüfungen eingesetzt.
-sS
: Diese Option gibt an, dass wir einen SYN-Scan ausführen möchten.
localhost
: Dies ist das Ziel unseres Scans. In diesem Fall scannen wir unseren eigenen Rechner.
-p 8080
: Diese Option teilt Nmap mit, nur Port 8080 zu scannen. Wir interessieren uns dafür, zu überprüfen, ob dieser spezifische Port auf unserem lokalen Rechner geöffnet ist.
> /home/labex/project/nmap-syn-scan-results.txt
: Dieser Teil des Befehls leitet die Ausgabe des nmap
-Scans in eine Datei namens nmap - syn - scan - results.txt
im Projektverzeichnis um. So können wir die Ergebnisse später überprüfen.
Schritt 3: Anzeigen der Scanergebnisse
Nachdem der Scan abgeschlossen ist, können wir die Ergebnisse anzeigen. Führen Sie den folgenden Befehl in Ihrem Terminal aus:
cat /home/labex/project/nmap-syn-scan-results.txt
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-18 12:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
PORT STATE SERVICE
8080/tcp open http-proxy
Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds
Diese Ausgabe liefert wertvolle Informationen. Sie bestätigt, dass Port 8080 auf Ihrem lokalen Rechner geöffnet ist und dass dort ein HTTP-Service läuft. Diese Informationen können für weitere Sicherheitsanalysen oder Netzwerkfehlersuche verwendet werden.