Scan-Timing und Performance in Nmap optimieren

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 soll die Scantiming und die Leistung von Nmap optimiert werden. Du wirst verschiedene Techniken lernen, um Nmap-Scans zu verbessern, darunter das Verwenden des schnellen Templates mit -T4 für einen schnellen Netzwerkscan, die Erhöhung der Parallelität, das Einstellen von Verzögerungen, das Verfolgen des Fortschritts, das Testen der Stealth-Eigenschaften und das Vergleichen der Timings im Xfce-Terminal. Diese Schritte werden dir helfen, zu verstehen, wie du Geschwindigkeit und Genauigkeit in Nmap-Scans im Gleichgewicht bringen kannst.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) 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/verbosity("Verbosity Levels") nmap/NmapGroup -.-> nmap/firewall_evasion("Firewall Evasion Techniques") nmap/NmapGroup -.-> nmap/stealth_scanning("Stealth and Covert Scanning") subgraph Lab Skills nmap/port_scanning -.-> lab-530183{{"Scan-Timing und Performance in Nmap optimieren"}} nmap/target_specification -.-> lab-530183{{"Scan-Timing und Performance in Nmap optimieren"}} nmap/timing_performance -.-> lab-530183{{"Scan-Timing und Performance in Nmap optimieren"}} nmap/verbosity -.-> lab-530183{{"Scan-Timing und Performance in Nmap optimieren"}} nmap/firewall_evasion -.-> lab-530183{{"Scan-Timing und Performance in Nmap optimieren"}} nmap/stealth_scanning -.-> lab-530183{{"Scan-Timing und Performance in Nmap optimieren"}} end

Verwenden des schnellen Templates mit nmap -T4 192.168.1.0/24

In diesem Schritt werden wir die Option mit dem schnellen Template in Nmap verwenden, um ein Netzwerk schnell zu scannen. Die Option -T4 wird verwendet, um ein Zeitmuster anzugeben, das Geschwindigkeit und Genauigkeit im Gleichgewicht bringt. Es ist schneller als das Standardmuster, kann jedoch in einigen Fällen weniger genau sein.

Bevor wir beginnen, verstehen wir, was ein Zeitmuster ist. Nmap verwendet Zeitmuster, um zu steuern, wie aggressiv es einen Zielhost scannen soll. Diese Muster beeinflussen Parameter wie die Verzögerung zwischen den Proben, die Anzahl der Wiederholungen und die Timeout-Werte. Die Option -T ermöglicht es Ihnen, ein vorgegebenes Muster auszuwählen, von -T0 (paranoid) bis -T5 (verrückt). Höhere Zahlen bedeuten aggressiveres Scannen.

Das Zeitmuster -T4 ist ein guter Kompromiss für die meisten Netzwerke. Es ist schneller als das Standardmuster (-T3), vermeidet jedoch, zu aggressiv zu sein, was zu verlorenen Paketen oder der Aktivierung von Intrusion Detection Systemen führen könnte.

Lassen Sie uns nun den Scan ausführen. Wir verwenden den Befehl nmap -T4 192.168.1.0/24, um das Netzwerk 192.168.1.0/24 zu scannen.

Öffnen Sie Ihr Terminal in der LabEx VM. Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project befinden.

Führen Sie folgenden Befehl aus:

sudo nmap -T4 192.168.1.0/24

Dieser Befehl veranlasst Nmap, alle IP-Adressen im Bereich 192.168.1.0/24 mit dem Zeitmuster -T4 zu scannen. Die Angabe /24 entspricht einer Subnetzmaske von 255.255.255.0, was bedeutet, dass Nmap 256 IP-Adressen (192.168.1.0 bis 192.168.1.255) scannen wird.

Die Ausgabe wird die Ergebnisse des Scans anzeigen, einschließlich der offenen Ports und der auf jedem Host laufenden Dienste. Da das Netzwerk 192.168.1.0/24 wahrscheinlich Ihr lokales Netzwerk ist, werden die Ergebnisse je nach angeschlossenen Geräten variieren.

Beispielausgabe (variiert je nach Ihrem Netzwerk):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00028s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
80/tcp  open  http

Nmap scan report for 192.168.1.100
Host is up (0.00031s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh

Nmap done: 256 IP addresses (2 hosts up) scanned in 5.23 seconds

Diese Ausgabe zeigt, dass Nmap 256 IP-Adressen gescannt hat und zwei Hosts gefunden hat, die erreichbar sind: 192.168.1.1 und 192.168.1.100. Der Host 192.168.1.1 hat Port 80 (http) geöffnet, und der Host 192.168.1.100 hat Port 22 (ssh) geöffnet. Der Scan hat ungefähr 5,23 Sekunden gedauert.

Erhöhung der Parallelität mit nmap --min-parallelism 20 127.0.0.1

In diesem Schritt werden wir die Parallelität von Nmap-Scans mithilfe der Option --min-parallelism erhöhen. Mit dieser Option können Sie die minimale Anzahl von Proben angeben, die Nmap parallel verschickt. Die Erhöhung der Parallelität kann die Scans erheblich beschleunigen, insbesondere auf Netzwerken mit vielen Hosts oder Ports.

Standardmäßig passt Nmap die Parallelitätsebene dynamisch anhand der Netzwerkbedingungen an. Sie können jedoch --min-parallelism verwenden, um sicherzustellen, dass Nmap immer mindestens eine bestimmte Anzahl von Proben gleichzeitig verschickt.

Lassen Sie uns verstehen, was Parallelität in Bezug auf Nmap bedeutet. Wenn Nmap einen Zielhost scannen soll, sendet es Proben an verschiedene Ports oder Hosts. Mit Parallelität kann Nmap mehrere Proben gleichzeitig senden, anstatt auf eine Antwort von jeder Probe zu warten, bevor es die nächste sendet. Dies kann die gesamte Scandauer erheblich reduzieren.

Lassen Sie uns nun einen Scan mit erhöhter Parallelität ausführen. Wir verwenden den Befehl nmap --min-parallelism 20 127.0.0.1, um den localhost (127.0.0.1) mit einer minimalen Parallelität von 20 zu scannen.

Öffnen Sie Ihr Terminal in der LabEx VM. Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project befinden.

Führen Sie folgenden Befehl aus:

sudo nmap --min-parallelism 20 127.0.0.1

Dieser Befehl veranlasst Nmap, 127.0.0.1 zu scannen und mindestens 20 Proben parallel zu versenden. Beachten Sie, dass Nmap die Parallelität weiterhin dynamisch anhand der Netzwerkbedingungen anpassen kann, aber es wird versuchen, über der angegebenen Mindestzahl zu bleiben.

Die Ausgabe wird die Ergebnisse des Scans anzeigen, einschließlich der offenen Ports und der auf localhost laufenden Dienste.

Beispielausgabe (variiert je nach Ihrem System):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000027s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
631/tcp  open  ipp
9000/tcp open  cslistener

Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds

Diese Ausgabe zeigt, dass Nmap den localhost (127.0.0.1) gescannt hat und drei Ports geöffnet gefunden hat: 22 (ssh), 631 (ipp) und 9000 (cslistener). Der Scan ist aufgrund der erhöhten Parallelität relativ schnell abgeschlossen. Die tatsächlich eingesparte Zeit hängt von den Netzwerkbedingungen und dem zu scannenden Ziel ab.

Einstellen einer Verzögerung mit nmap --scan-delay 500ms 192.168.1.1

In diesem Schritt werden wir eine Verzögerung zwischen den Proben mithilfe der Option --scan-delay in Nmap einstellen. Mit dieser Option können Sie die Zeit angeben, die Nmap zwischen dem Senden jeder Probe warten soll. Die Erhöhung der Scannenverzögerung kann hilfreich sein, um eine Erkennung durch Intrusion Detection Systeme (IDS) zu vermeiden oder um Hosts zu scannen, die empfindlich auf Netzwerkverkehr reagieren.

Standardmäßig passt Nmap die Scannenverzögerung automatisch anhand der Netzwerkbedingungen an. Sie können jedoch --scan-delay verwenden, um eine bestimmte Verzögerung manuell festzulegen. Die Verzögerung wird in Millisekunden (ms) oder Sekunden (s) angegeben.

Lassen Sie uns verstehen, warum Sie eine Scannenverzögerung verwenden möchten. Ein sehr schneller Scan kann einen Zielhost überlasten oder Sicherheitsalarmmeldungen auslösen. Die Hinzufügung einer Verzögerung macht den Scan weniger aggressiv und verringert die Wahrscheinlichkeit, dass er bemerkt wird. Dies ist besonders wichtig, wenn Sie Produktionssysteme oder Netzwerke scannen, bei denen Sie die Auswirkungen des Scans minimieren möchten.

Lassen Sie uns nun einen Scan mit einer angegebenen Verzögerung ausführen. Wir verwenden den Befehl nmap --scan-delay 500ms 192.168.1.1, um den Host 192.168.1.1 mit einer Verzögerung von 500 Millisekunden zwischen jeder Probe zu scannen.

Öffnen Sie Ihr Terminal in der LabEx VM. Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project befinden.

Führen Sie folgenden Befehl aus:

sudo nmap --scan-delay 500ms 192.168.1.1

Dieser Befehl veranlasst Nmap, 192.168.1.1 zu scannen und 500 Millisekunden zwischen dem Senden jeder Probe zu warten. Dies wird den Scan im Vergleich zu einem Scan ohne Verzögerung erheblich verlangsamen.

Die Ausgabe wird die Ergebnisse des Scans anzeigen, einschließlich der offenen Ports und der auf 192.168.1.1 laufenden Dienste.

Beispielausgabe (variiert je nach Ihrem Netzwerk):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00031s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
80/tcp  open  http

Nmap done: 1 IP address (1 host up) scanned in 5.50 seconds

Diese Ausgabe zeigt, dass Nmap 192.168.1.1 gescannt hat und Port 80 (http) geöffnet gefunden hat. Beachten Sie, dass der Scan länger (5,50 Sekunden) gedauert hat als er ohne die Option --scan-delay hätte. Die genaue Zeit variiert je nach Ziel und Netzwerkbedingungen.

Ververfolgung des Fortschritts mit nmap -v --stats-every 5s 192.168.1.0/24

In diesem Schritt werden wir lernen, wie man den Fortschritt eines Nmap-Scans mithilfe der Optionen -v (ausführlich) und --stats-every verfolgt. Diese Optionen liefern Echtzeit-Feedback über den Fortschritt des Scans, was besonders nützlich für langlaufende Scans ist.

Die Option -v erhöht das Ausführlichkeitsniveau der Nmap-Ausgabe. Mit -v zeigt Nmap mehr Informationen über den Scan an, einschließlich der gesendeten Proben, der empfangenen Antworten und des Status jedes Hosts. Sie können -vv verwenden, um eine noch ausführlichere Ausgabe zu erhalten.

Die Option --stats-every ermöglicht es Ihnen, anzugeben, wie häufig Nmap Statistiken über den Fortschritt des Scans ausgeben soll. Der Wert wird in Sekunden (s), Minuten (m) oder Stunden (h) angegeben. Beispielsweise wird --stats-every 5s alle 5 Sekunden Statistiken ausgeben.

Lassen Sie uns verstehen, warum die Verfolgung des Fortschritts wichtig ist. Wenn Sie große Netzwerke scannen, können Nmap-Scans eine beträchtliche Zeit in Anspruch nehmen. Ohne Fortschrittsinformationen kann es schwierig sein, zu wissen, wie weit der Scan fortgeschritten ist und ob er Fortschritte macht. Die Optionen -v und --stats-every liefern wertvolle Einblicke in den Status des Scans.

Lassen Sie uns nun einen Scan mit Fortschrittsverfolgung ausführen. Wir verwenden den Befehl nmap -v --stats-every 5s 192.168.1.0/24, um das Netzwerk 192.168.1.0/24 zu scannen und alle 5 Sekunden Statistiken auszugeben.

Öffnen Sie Ihr Terminal in der LabEx VM. Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project befinden.

Führen Sie folgenden Befehl aus:

sudo nmap -v --stats-every 5s 192.168.1.0/24

Dieser Befehl veranlasst Nmap, alle IP-Adressen im Bereich 192.168.1.0/24 zu scannen, eine ausführliche Ausgabe anzuzeigen und alle 5 Sekunden Statistiken auszugeben.

Die Ausgabe wird den Fortschritt des Scans anzeigen, einschließlich der Anzahl der gescannten Hosts, der Anzahl der aktiven Hosts und der geschätzten verbleibenden Zeit.

Beispielausgabe (variiert je nach Ihrem Netzwerk):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:20 UTC
Initiating Ping Scan at 10:20
Scanning 256 hosts [2 ports/host]
Completed Ping Scan at 10:20, 0.23s elapsed (256 total hosts)
Initiating Parallel DNS resolution of 256 hosts. at 10:20
Completed Parallel DNS resolution of 256 hosts. at 10:20, 1.42s elapsed
Initiating SYN Stealth Scan at 10:20
Scanning 256 hosts [1000 ports/host]
5s elapsed; 0 hosts completed (0.00/s). 0 hosts up.
10s elapsed; 0 hosts completed (0.00/s). 0 hosts up.
15s elapsed; 0 hosts completed (0.00/s). 0 hosts up.
20s elapsed; 1 hosts completed (0.04/s). 1 hosts up.
Nmap scan report for 192.168.1.1
Host is up (0.00029s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
80/tcp  open  http

25s elapsed; 1 hosts completed (0.04/s). 1 hosts up.
Nmap scan report for 192.168.1.100
Host is up (0.00032s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh

30s elapsed; 2 hosts completed (0.07/s). 2 hosts up.
Nmap done: 266 IP addresses (2 hosts up) scanned in 32.50 seconds

Diese Ausgabe zeigt den Fortschritt des Scans alle 5 Sekunden. Sie können die Anzahl der abgeschlossenen Hosts, die Scanschrittzahl (Hosts/s) und die Anzahl der aktiven Hosts sehen. Der Scan meldet auch offene Ports, sobald sie entdeckt werden.

Teste das Stealth-Verhalten mit nmap -T1 127.0.0.1

In diesem Schritt werden wir untersuchen, wie man einen Stealth-Scan mit Nmap mit der Zeitvorlage -T1 durchführt. Ein Stealth-Scan zielt darauf ab, die Wahrscheinlichkeit, entdeckt zu werden, durch Intrusion Detection Systeme (IDS) oder Firewalls, zu minimieren.

Die Option -T1 ist als die "heimliche" Zeitvorlage bekannt. Sie ist langsamer als die Standardvorlage und ist so konzipiert, dass sie weniger auffällig ist. Dies erreicht sie, indem sie die Verzögerung zwischen den Proben erhöht, was die Belastung des Zielsystems verringert und den Scan weniger wahrscheinlich als bedrohlich ausweist.

Es ist wichtig zu verstehen, dass kein Scan wirklich unsichtbar ist. Selbst mit Stealth-Techniken besteht immer das Risiko der Entdeckung. Allerdings kann die Verwendung der Option -T1 dieses Risiko erheblich verringern.

Lassen Sie uns nun einen Stealth-Scan des localhost (127.0.0.1) mit der Zeitvorlage -T1 durchführen.

Öffnen Sie Ihr Terminal in der LabEx VM. Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project befinden.

Führen Sie folgenden Befehl aus:

sudo nmap -T1 127.0.0.1

Dieser Befehl veranlasst Nmap, den localhost (127.0.0.1) mit der Zeitvorlage -T1 zu scannen. Da wir den localhost scannen, sollte der Scan relativ schnell abgeschlossen sein, auch mit der langsameren Zeitvorlage.

Die Ausgabe wird die Ergebnisse des Scans anzeigen, einschließlich der offenen Ports und der auf dem localhost laufenden Dienste.

Beispielausgabe (kann je nach Ihrer Systemkonfiguration variieren):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:40 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000007s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
631/tcp  open  ipp
9000/tcp open  cslistener

Nmap done: 1 IP address (1 host up) scanned in 10.50 seconds

Diese Ausgabe zeigt, dass Nmap den localhost gescannt hat und drei Ports offen gefunden hat: 22 (ssh), 631 (ipp) und 9000 (cslistener). Der Scan hat ungefähr 10,50 Sekunden gedauert. Beachten Sie, dass die Scanzeit im Vergleich zu einer schnelleren Zeitvorlage wie -T4 möglicherweise länger sein kann.

Vergleiche die Zeitangaben im Xfce-Terminal

In diesem Schritt werden wir die Ausführungszeit von Nmap-Scans mit unterschiedlichen Zeitvorlagen vergleichen. Wir werden den Xfce-Terminal verwenden, um die Scans auszuführen und die Zeit zu beobachten, die für jeden Scan erforderlich ist, um abzuschließen. Dies wird Ihnen helfen, den Einfluss der Zeitvorlagen auf die Scangeschwindigkeit zu verstehen.

Wir werden die Zeitvorlagen -T1 (heimlich) und -T4 (schnell) vergleichen. Wir werden den localhost (127.0.0.1) für diesen Vergleich scannen.

Öffnen Sie Ihr Terminal in der LabEx VM. Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project befinden.

Zunächst führen wir einen Scan mit der Zeitvorlage -T1 aus. Wir werden den Befehl time verwenden, um die Ausführungszeit zu messen.

Führen Sie folgenden Befehl aus:

time sudo nmap -T1 127.0.0.1

Der Befehl time wird den Nmap-Scan ausführen und dann die Zeit anzeigen, die für die Ausführung erforderlich war. Achten Sie auf die "reale" Zeit, die vom Befehl time gemeldet wird. Dies stellt die gesamte vergangene Zeit dar.

Beispielausgabe (die Zeit wird variieren):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 11:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000007s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
631/tcp  open  ipp
9000/tcp open  cslistener

Nmap done: 1 IP address (1 host up) scanned in 10.50 seconds

real    0m10.552s
user    0m0.103s
sys     0m0.032s

In diesem Beispiel ist die "reale" Zeit 0 Minuten und 10,552 Sekunden.

Lassen Sie uns nun denselben Scan mit der Zeitvorlage -T4 ausführen.

Führen Sie folgenden Befehl aus:

time sudo nmap -T4 127.0.0.1

Achten Sie erneut auf die "reale" Zeit, die vom Befehl time gemeldet wird.

Beispielausgabe (die Zeit wird variieren):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 11:01 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000007s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
631/tcp  open  ipp
9000/tcp open  cslistener

Nmap done: 1 IP address (1 host up) scanned in 1.23 seconds

real    0m1.285s
user    0m0.098s
sys     0m0.029s

In diesem Beispiel ist die "reale" Zeit 0 Minuten und 1,285 Sekunden.

Vergleichen Sie die "reellen" Zeiten aus den beiden Scans. Sie sollten beobachten, dass der Scan mit der Zeitvorlage -T4 erheblich schneller abgeschlossen ist als der Scan mit der Zeitvorlage -T1. Dies zeigt das Kompromiss zwischen Geschwindigkeit und Stealth. -T1 ist langsamer, aber verstohlenere, während -T4 schneller ist, aber möglicherweise auffälliger.

Zusammenfassung

In diesem Lab haben die Teilnehmer gelernt, die Nmap-Scangeschwindigkeit und -leistung zu optimieren. Sie haben die Option -T4 verwendet, um einen schnellen, aber ausgewogenen Scan des Netzwerks 192.168.1.0/24 durchzuführen, wobei sie verstanden haben, dass höhere -T-Werte aggressiveres Scannen bedeuten. Sie haben auch die Parallelität mit --min-parallelism 20 erhöht, eine Scandauer mit --scan-delay 500ms eingestellt, den Fortschritt mit -v --stats-every 5s verfolgt, das versteckte Scannen mit -T1 getestet und die Zeitangaben im Xfce-Terminal verglichen.