Firewalls mit Nmap umgehen

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 fortgeschrittene Nmap-Techniken lernen, um in realen Cybersicherheitsszenarien Firewall-Schutzmaßnahmen zu umgehen. Sie werden Ausweichmethoden wie fragmentierte Scans und Täusch-IP-Spoofing üben, während Sie mit iptables-konfigurierten Firewalls arbeiten.

Die praktischen Übungen werden Sie durch die Installation von Nmap, die Konfiguration von Firewall-Regeln und die Analyse der Ergebnisse führen. Sie werden praktische Erfahrungen in der Bewertung und Umgehung von Netzwerksicherheitsmaßnahmen durch kontrollierte Scanning-Experimente sammeln.


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/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/timing_performance("Timing and Performance") nmap/NmapGroup -.-> nmap/syn_scan("SYN Scan") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") nmap/NmapGroup -.-> nmap/firewall_evasion("Firewall Evasion Techniques") nmap/NmapGroup -.-> nmap/stealth_scanning("Stealth and Covert Scanning") subgraph Lab Skills nmap/installation -.-> lab-549937{{"Firewalls mit Nmap umgehen"}} nmap/port_scanning -.-> lab-549937{{"Firewalls mit Nmap umgehen"}} nmap/target_specification -.-> lab-549937{{"Firewalls mit Nmap umgehen"}} nmap/timing_performance -.-> lab-549937{{"Firewalls mit Nmap umgehen"}} nmap/syn_scan -.-> lab-549937{{"Firewalls mit Nmap umgehen"}} nmap/service_detection -.-> lab-549937{{"Firewalls mit Nmap umgehen"}} nmap/firewall_evasion -.-> lab-549937{{"Firewalls mit Nmap umgehen"}} nmap/stealth_scanning -.-> lab-549937{{"Firewalls mit Nmap umgehen"}} end

Installieren von Nmap

In diesem Schritt werden Sie Nmap installieren, ein leistungsstarkes Netzwerk-Scanning-Tool, das für Sicherheitsaudits und Netzwerkexploration verwendet wird. Nmap hilft, Hosts und Dienste in einem Netzwerk zu identifizieren, indem es Pakete sendet und die Antworten analysiert. Stellen Sie sich vor, es sei ein digitaler Kartograph, der herausfindet, welche Geräte mit einem Netzwerk verbunden sind und welche Dienste sie ausführen.

Die LabEx-VM-Umgebung hat bereits alle erforderlichen Abhängigkeiten installiert, was den Installationsprozess unkompliziert macht. Befolgen Sie diese Schritte, um Nmap zu installieren:

  1. Öffnen Sie das Terminal in Ihrer LabEx-VM (Sie können das Xfce-Terminal verwenden oder mit der rechten Maustaste auf den Desktop klicken und "Terminal öffnen" auswählen). Im Terminal geben Sie alle Befehle für dieses Lab ein.

  2. Aktualisieren Sie zunächst die Paketliste, um sicherzustellen, dass Sie die neueste Version erhalten. Dies ist wie das Aktualisieren eines App-Stores, bevor Sie neue Software herunterladen:

    sudo apt update
  3. Installieren Sie Nmap mit dem folgenden Befehl. Das -y-Flag bestätigt automatisch alle Abfragen während der Installation:

    sudo apt install -y nmap
  4. Nachdem die Installation abgeschlossen ist, überprüfen Sie, ob Nmap korrekt installiert wurde, indem Sie seine Version prüfen. Dies bestätigt, dass die Installation erfolgreich war:

    nmap --version

    Sie sollten eine Ausgabe ähnlich der folgenden sehen:

    Nmap version 7.92 ( https://nmap.org )
  5. Für eine zusätzliche Überprüfung führen Sie einen einfachen Scan gegen den localhost (Ihre eigene Maschine) aus. Dies hilft Ihnen, zu verstehen, wie Nmap funktioniert, bevor Sie andere Ziele scannen:

    nmap -sV 127.0.0.1

    Dieser Befehl scannt Ihre lokale Maschine (127.0.0.1) und zeigt die offenen Ports an (das -sV-Flag erkennt die Dienstversionen). Sie werden eine Liste der auf Ihrer Maschine laufenden Dienste sehen, was hilfreich ist, um das Ausgabeformat von Nmap zu verstehen.

Vorbereitung eines gefirewallten Ziels

In diesem Schritt werden Sie eine einfache Firewall mit iptables konfigurieren, um eine geschützte Zielumgebung für Ihre Nmap-Scanning-Tests zu erstellen. Firewalls fungieren als Sicherheitsbarrieren, die den Netzwerkverkehr kontrollieren. Das Verständnis, wie man durch sie hindurch scannt, ist für Netzwerksicherheitsexperten unerlässlich. Diese Einrichtung wird ein reales Szenario simulieren, in dem Netzwerkscans die Firewall-Schutzmaßnahmen umgehen müssen.

  1. Zunächst überprüfen wir, ob iptables auf Ihrem System verfügbar ist. iptables ist ein Benutzerraum-Programm, das Administratoren ermöglicht, Firewall-Regeln in Linux zu konfigurieren. Es sollte in der LabEx-VM bereits vorinstalliert sein:

    sudo iptables --version
  2. Bevor Sie neue Regeln erstellen, ist es eine gute Praxis, alle vorhandenen Firewall-Regeln zu löschen. Dies stellt sicher, dass wir mit einem sauberen Zustand beginnen und Konflikte mit früheren Konfigurationen vermeiden:

    sudo iptables -F
    sudo iptables -X
  3. Jetzt legen wir die Standardrichtlinien fest. Die Standardrichtlinie bestimmt, was mit Paketen passiert, die keiner spezifischen Regel entsprechen. Wir werden gesamten eingehenden und weitergeleiteten Verkehr ablehnen (DROP), während ausgehende Verbindungen zugelassen werden:

    sudo iptables -P INPUT DROP
    sudo iptables -P FORWARD DROP
    sudo iptables -P OUTPUT ACCEPT
  4. Selbst mit strengen Firewall-Regeln müssen wir die Kommunikation über den localhost (lo) zulassen. Viele Systemdienste verlassen sich auf interne Kommunikation, daher ist diese Ausnahme notwendig:

    sudo iptables -A INPUT -i lo -j ACCEPT
  5. Erstellen wir nun spezifische Regeln, um einen geschützten Webserver zu simulieren. Diese Regeln werden eingehenden Verkehr nur auf den Standardports für SSH (22), HTTP (80) und HTTPS (443) zulassen, was einer typischen Produktionsserver-Konfiguration entspricht:

    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT  ## SSH
    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT  ## HTTP
    sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT ## HTTPS
  6. Nach der Konfiguration der Regeln ist es wichtig, sie zu überprüfen. Das -L-Flag listet alle Regeln auf, -n zeigt numerische Ausgabe an (schneller und vermeidet DNS-Suchen), und -v liefert ausführliche Informationen:

    sudo iptables -L -n -v

    Sie sollten eine Ausgabe sehen, die Ihre konfigurierten Regeln mit der Standard-DROP-Richtlinie für nicht übereinstimmenden Verkehr anzeigt.

  7. Abschließend speichern wir die Regeln, um sie persistent zu machen. Dieser Schritt ist besonders wichtig in unserer LabEx-Umgebung, da wir in Docker nicht systemctl verwenden können, um die Regeln über Neustarts hinweg beizubehalten:

    sudo sh -c "iptables-save > /etc/iptables.rules"

Ausführen eines fragmentierten Scans

In diesem Schritt werden Sie lernen, wie Sie einen fragmentierten Scan mit Nmap durchführen, um einfache Firewall-Schutzmaßnahmen zu umgehen. Firewalls untersuchen oft vollständige Netzwerkpakete. Die Fragmentierung teilt jedoch Pakete in kleinere Teile auf, was es einfachen Firewall-Regeln, die keine Fragmentreassemblierung vornehmen, schwerer macht, sie zu erkennen.

  1. Überprüfen Sie zunächst, ob die Firewall-Regeln aus dem vorherigen Schritt noch aktiv sind. Dies hilft, eine Basislinie vor dem Testen von Umgehungstechniken zu erstellen:

    sudo iptables -L -n -v
  2. Führen Sie einen Standard-Nmap-SYN-Scan gegen den localhost aus, um zu sehen, wie die Firewall ohne Umgehungstechniken reagiert. Dies zeigt uns, welche Ports aktiv blockiert werden:

    nmap -sS 127.0.0.1

    Notieren Sie sich, welche Ports als gefiltert oder geschlossen angezeigt werden - dies sind die Ports, die die Firewall schützt.

  3. Führen Sie nun einen fragmentierten Scan mit der Option -f aus. Dies teilt Nmap an, die TCP-Header in mehrere kleinere Pakete (8-Byte-Fragmente) aufzuteilen:

    nmap -f -sS 127.0.0.1

    Einige Firewalls können diese Fragmente möglicherweise nicht richtig reassemblieren, wodurch der Scan durchgelassen wird.

  4. Verwenden Sie für eine aggressivere Fragmentierung die Option --mtu, um kleinere Paketgrößen zu verwenden. Dies setzt die maximale Übertragungseinheit (Maximum Transmission Unit, MTU) auf 16 Bytes und erzeugt noch kleinere Fragmente:

    nmap --mtu 16 -sS 127.0.0.1

    Kleinere Fragmente können einfachere Firewall-Implementierungen möglicherweise umgehen.

  5. Kombinieren Sie die Fragmentierung mit einer Timing-Kontrolle für zusätzliche Diskretion. Die Option -T2 macht den Scan langsamer und löst somit weniger wahrscheinlich Intrusion-Detection-Systeme aus:

    nmap -f -T2 -sS 127.0.0.1

    Dieser Ansatz imitiert eher normale Netzwerkverkehrsmuster.

  6. Vergleichen Sie die Ergebnisse verschiedener Scan-Typen, um die Wirksamkeit der Fragmentierung zu bewerten:

    nmap -sS 127.0.0.1 | grep filtered
    nmap -f -sS 127.0.0.1 | grep filtered

    Beachten Sie die Unterschiede in der Anzahl der gefilterten Ports - weniger gefilterte Ports deuten auf eine erfolgreiche Umgehung der Firewall hin.

Hinzufügen von Täusch-IPs

In diesem Schritt werden Sie lernen, wie Sie Nmaps Täusch-Scantechnik nutzen können, um Ihre echte IP-Adresse unter mehreren gefälschten Quelladressen zu verstecken. Dies hilft bei der Umgehung von Detektion, da es schwieriger wird, die tatsächliche Scangeraet zu identifizieren. Wenn Sicherheitssysteme Verkehr von mehreren IPs sehen, können sie nicht leicht feststellen, welche die echte Scangeraet ist.

  1. Zunächst überprüfen Sie Ihre aktuelle IP-Adresse, um zu verstehen, was wir verstecken. Dies legt eine Basislinie fest, damit Sie sehen können, wie Täusch-IPs Ihre echte Adresse verschleiern:

    ip a

    Notieren Sie Ihre tatsächliche IP-Adresse (typischerweise beginnt sie mit 172 oder 192). Dies ist die Adresse, die wir unter den Täusch-IPs verstecken werden.

  2. Führen Sie einen grundlegenden Scan mit Täusch-IPs mit der Option -D aus. Hier geben wir drei gefälschte IPs an und fügen unsere echte IP mit dem Platzhalter ME hinzu:

    sudo nmap -D 192.168.1.1,192.168.1.2,192.168.1.3,ME 127.0.0.1

    Der Platzhalter ME repräsentiert Ihre echte IP-Adresse, die mit den Täusch-IPs vermischt wird.

  3. Verwenden Sie für realistischere Täusch-IPs zufällige IP-Adressen. Dies ist oft besser als die Verwendung vorhersagbarer IP-Muster:

    sudo nmap -D RND:5 127.0.0.1

    Dies erzeugt 5 zufällige Täusch-IP-Adressen, die für Überwachungssysteme natürlicher erscheinen.

  4. Kombinieren Sie Täusch-IPs mit früheren Umgehungstechniken wie Fragmentierung (-f) und Timing-Kontrolle (-T2):

    sudo nmap -D 10.0.0.1,10.0.0.2,10.0.0.3 -f -T2 127.0.0.1

    Das Schichten mehrerer Umgehungsmethoden macht die Detektion noch schwieriger.

  5. Überprüfen Sie die Täuschwirkung, indem Sie die Firewall-Logs (simuliert) prüfen. Dies zeigt, wie die Firewall mehrere Quell-IPs sehen würde:

    sudo iptables -L -n -v | grep -E "192.168|10.0"

    Sie sollten Einträge für alle Täusch-IPs sehen, die wir in unseren Scans verwendet haben.

  6. Verwenden Sie für fortgeschrittene Anwendungen Täusch-Netzwerke. Dies erzeugt einen Bereich von Täusch-Adressen aus demselben Netzwerk:

    sudo nmap -D 192.168.1.1-10 127.0.0.1

    Dies erzeugt 10 aufeinanderfolgende Täusch-IPs aus dem Netzwerk 192.168.1.0.

Überprüfen des Erfolgs der Umgehung

In diesem letzten Schritt werden Sie die Wirksamkeit Ihrer Scanumgehungstechniken bewerten, indem Sie die Firewall-Logs analysieren und die Scanergebnisse verschiedener Methoden vergleichen. Dies hilft Ihnen zu verstehen, welche Techniken die Firewalldetektion erfolgreich umgangen haben und welche als verdächtige Aktivität markiert wurden.

  1. Zunächst überprüfen Sie die aktuellen Firewall-Logs, um erkannte Scanversuche zu sehen. Dies gibt Ihnen eine Basislinie für die normale Firewallaktivität vor dem Testen von Umgehungsmethoden:

    sudo iptables -L -n -v | grep -E "DROP|REJECT"

    Dieser Befehl zeigt, wie viele Pakete von Ihren Firewall-Regeln blockiert wurden, wobei die Zähler die Detektionsversuche anzeigen.

  2. Erstellen Sie nun zwei Scanberichte zum Vergleich - einen mit einem grundlegenden Scan und einen anderen mit Umgehungstechniken. Der Unterschied zwischen diesen wird die Wirksamkeit Ihrer Umgehung zeigen:

    nmap -sS 127.0.0.1 -oN basic_scan.txt
    nmap -f -D RND:3 127.0.0.1 -oN evasion_scan.txt

    Der erste Befehl führt einen Standard-SYN-Scan durch, während der zweite Fragmentierung (-f) und Täusch-IPs (-D RND:3) verwendet.

  3. Analysieren Sie die Unterschiede zwischen den Scanergebnissen, um zu sehen, welche Ports in jedem Fall gefiltert wurden:

    diff basic_scan.txt evasion_scan.txt

    Achten Sie besonders auf die Anzahl der "gefilterten" Ports in jedem Bericht - weniger gefilterte Ports im Umgehungsscan deuten auf einen erfolgreichen Umgehungversuch hin.

  4. Um speziell auf erfolgreiche Umgehung zu prüfen, setzen Sie die Firewallzähler zurück und führen Sie einen Umgehungsscan durch, während Sie die Detektion überwachen:

    sudo iptables -Z && sudo nmap -f -D RND:3 127.0.0.1 && sudo iptables -L -n -v

    Die Zählwerte zeigen, wie viele Pakete von der Firewall während Ihres Umgehungversuchs erkannt wurden.

  5. Für umfassende Tests kombinieren Sie mehrere Umgehungstechniken, um Ihre Chancen der Umgehung der Sicherheit zu maximieren:

    sudo nmap -f -D RND:5 -T2 --data-length 24 127.0.0.1 -oN final_scan.txt

    Dies verwendet Fragmentierung, 5 Täusch-IPs, langsamere Timing-Einstellungen (-T2) und zufällige Datenauffüllung (--data-length 24).

  6. Generieren Sie schließlich einen Zusammenfassungsbericht, der die gefilterten Ports zwischen dem grundlegenden und dem Umgehungsscan vergleicht:

    echo "Basic scan filtered ports:" && grep filtered basic_scan.txt | wc -l
    echo "Evasion scan filtered ports:" && grep filtered evasion_scan.txt | wc -l

    Eine deutliche Reduzierung der gefilterten Ports zwischen den beiden Scans zeigt einen erfolgreichen Umgehung der Firewall an.

Zusammenfassung

In diesem Lab haben Sie essentielle Nmap-Firewall-Umgehungstechniken für Cybersicherheitsbewertungen gelernt. Die Übungen haben Sie durch die Installation von Nmap, grundlegende Scans und die Erstellung einer kontrollierten Testumgebung mithilfe von iptables zur Simulation geschützter Netzwerke geführt.

Sie haben zwei primäre Umgehungsmethoden geübt: Paketfragmentierung, um Detektionssysteme zu umgehen, und Täusch-IP-Adressen, um die Herkunft von Scans zu verschleiern. Mit diesen Fähigkeiten können Sie Netzwerksicherheitsmaßnahmen bewerten, indem Sie reale Angriffsmuster nachstellen, während Sie ethische Teststandards einhalten.