Erweiterte verdeckte Scan-Techniken
In diesem Schritt werden wir erweiterte Scan-Techniken untersuchen, die ein noch höheres Maß an Geheimhaltung bieten. Diese Techniken sind in der Cybersicherheit entscheidend, da sie es Ihnen ermöglichen, Informationen über ein Zielnetzwerk zu sammeln, ohne leicht entdeckt zu werden. Eine solche leistungsstarke Technik ist der Idle-Scan, auch bekannt als Zombie-Scan. Diese Methode ermöglicht es Ihnen, ein Ziel zu scannen, während Sie Ihre Identität hinter einem anderen Host maskieren.
Bevor wir beginnen, ist es wichtig sicherzustellen, dass Sie sich in Ihrem Arbeitsbereich befinden. Hier werden alle projektbezogenen Dateien und Befehle ausgeführt. Um zu Ihrem Arbeitsbereich zu navigieren, führen Sie den folgenden Befehl in Ihrem Terminal aus:
cd /home/labex/project
Verständnis des Idle-Scans
Der Idle-Scan ist eine der heimlichsten Scan-Techniken, die in Nmap verfügbar sind. Aber wie funktioniert er? Nun, er verwendet einen Host eines Drittanbieters, den wir einen "Zombie" nennen, um den Scan durchzuführen. Dadurch scheint der Scan vom Zombie-Host und nicht von Ihnen zu stammen.
Lassen Sie uns den Prozess eines Idle-Scans Schritt für Schritt aufschlüsseln:
- Zuerst sendet der Scanner eine Sonde an den Zombie-Host. Diese Sonde hilft dem Scanner, die aktuelle IP-ID-Sequenz des Zombies zu ermitteln. Die IP-ID-Sequenz ist eine eindeutige Nummer, die der Host jedem gesendeten IP-Paket zuweist.
- Als Nächstes sendet der Scanner ein SYN-Paket an das Ziel. Allerdings setzt er die Quell-IP-Adresse dieses Pakets auf die IP-Adresse des Zombies. Ein SYN-Paket wird verwendet, um eine TCP-Verbindung einzurichten.
- Wenn der Port auf dem Ziel geöffnet ist, antwortet das Ziel mit einem SYN-ACK-Paket. Dieses Paket wird an den Zombie gesendet, da dies die Quell-IP-Adresse ist, die es im SYN-Paket gesehen hat.
- Der Zombie, der dieses SYN-ACK-Paket nicht erwartet hat, sendet ein RST-Paket zurück an das Ziel. Ein RST-Paket wird verwendet, um eine TCP-Verbindung abzubrechen.
- Der Scanner sondiert dann erneut den Zombie. Er prüft, ob sich die IP-ID-Sequenz des Zombies erhöht hat.
- Wenn sich die IP-ID-Sequenz erhöht hat, deutet dies darauf hin, dass der Port auf dem Ziel geöffnet ist. Dies liegt daran, dass der Zombie als Antwort auf das SYN-ACK vom Ziel ein RST-Paket gesendet hat.
Das Besondere an dieser Technik ist ihre Geheimhaltung. Das Ziel sieht nur die Kommunikation vom Zombie, nicht vom tatsächlichen Scanner. Daher ist es für das Ziel sehr schwierig zu erkennen, dass es gescannt wird.
Ausführung eines Idle-Scans
Führen wir nun einen Idle-Scan mit Nmap aus. In einer realen Situation würden Sie einen externen Zombie-Host verwenden. Für dieses Labor simulieren wir den Prozess jedoch mit Ihrem lokalen Rechner.
Führen Sie den folgenden Befehl in Ihrem Terminal aus:
sudo nmap -sI 127.0.0.1 localhost -p 8080 > /home/labex/project/idle_scan.txt
Lassen Sie uns jeden Teil dieses Befehls verstehen:
sudo wird verwendet, da Nmap für die Durchführung des Idle-Scans Rohsocket-Zugriff benötigt. Der Rohsocket-Zugriff ermöglicht es Nmap, benutzerdefinierte IP-Pakete zu erstellen und zu senden, was für diese Art von Scan erforderlich ist.
nmap ist das bekannte Scan-Tool, das wir für diese Aufgabe verwenden.
-sI 127.0.0.1 gibt an, dass wir einen Idle-Scan durchführen und 127.0.0.1 (das der localhost ist) als Zombie-Host verwenden.
localhost ist das Ziel, das wir scannen möchten.
-p 8080 teilt Nmap mit, nur Port 8080 auf dem Ziel zu scannen.
> /home/labex/project/idle_scan.txt leitet die Ausgabe des Scans in eine Textdatei um. So können wir die Ergebnisse später leicht überprüfen.
Nach dem Scan untersuchen wir die Ergebnisse. Verwenden Sie den folgenden Befehl, um den Inhalt der Ausgabedatei anzuzeigen:
cat /home/labex/project/idle_scan.txt
Sie sehen möglicherweise eine Ausgabe ähnlich dieser:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-25 12:10 UTC
Idle scan using zombie 127.0.0.1 (127.0.0.1:80); Class: Incremental
Skipping Idle Scan against localhost (127.0.0.1) -- you can't idle scan your own machine (localhost).
Nmap scan report for localhost (127.0.0.1)
Host is up.
PORT STATE SERVICE
8080/tcp unknown http-proxy
Nmap done: 1 IP address (1 host up) scanned in 2.03 seconds
Beachten Sie, dass Nmap meldet, dass der Idle-Scan übersprungen wird. Dies liegt daran, dass Sie versuchen, Ihren eigenen Computer sowohl als Zombie als auch als Ziel zu verwenden. In einer realen Umgebung mit separaten Hosts wäre diese Technik sehr effektiv für verdeckte Scans.
Auch wenn wir diese Einschränkung in unserer Laborumgebung haben, zeigt diese Übung dennoch, wie man den Idle-Scan-Befehl verwendet. In der Praxis würden Sie einen anderen Host als Zombie auswählen, und der Scan würde ohne diese Warnmeldung ausgeführt.
Diese erweiterte Technik ist sehr wertvoll, wenn Sie maximale Geheimhaltung benötigen. Sie erschwert es dem Ziel erheblich, den Scan auf den tatsächlichen Scanner zurückzuführen.
Vergleich der Scan-Ergebnisse
Vergleichen wir die Ausgaben beider Scan-Typen, um die Unterschiede zu sehen:
echo "=== Stealth Scan Results ===" && cat /home/labex/project/stealth_scan.txt
echo "=== Idle Scan Results ===" && cat /home/labex/project/idle_scan.txt
Beide Scans haben den offenen Port 8080 erfolgreich erkannt, aber der Idle-Scan zeigt zusätzliche Informationen über die verwendete Scan-Technik.
Bereinigung
Bevor wir beenden, bereinigen wir unsere Umgebung, indem wir den Webserver stoppen:
pkill -f "nc -lvp 8080"
Dies beendet den netcat-Prozess, der unseren Webserver auf Port 8080 ausführt.