Einführung
In diesem Lab lernst du, wie du Nmap, ein mächtiges Tool für Netzwerk-Scans, mit verschiedenen Ausführlichkeitsstufen (Verbosity Levels) einsetzt. Nmap ist die erste Wahl für Sicherheitsexperten, um Hosts und Dienste in Computernetzwerken zu entdecken. Die Beherrschung der Nmap-Ausführlichkeitsoptionen ermöglicht es dir, die während des Scans angezeigten Informationen zu steuern, was für eine effiziente Netzanalyse und Fehlerbehebung unerlässlich ist.
Im Laufe des Labs richtest du einen lokalen Server für deine Scan-Praxis ein. Du wirst außerdem untersuchen, wie sich verschiedene Ausführlichkeitsstufen auf die Scan-Ergebnisse und die dargestellten Informationen auswirken.
Einrichtung deiner Umgebung für Netzwerk-Scans
In diesem Schritt richten wir einen lokalen Webserver auf deinem Computer ein. Dieser Server dient als Ziel für unsere Nmap-Scans. Nmap ist ein leistungsstarkes Tool für Netzwerk-Scans, das in der Cybersicherheit verwendet wird, um Hosts und Dienste in einem Computernetzwerk zu entdecken. Mit einem lokalen Server kannst du Nmap sicher üben, ohne reale Netzwerke zu beeinträchtigen.
HTTP-Server verstehen
Bevor wir den Server erstellen, wollen wir verstehen, was ein HTTP-Server ist. HTTP steht für HyperText Transfer Protocol. Es ist das Protokoll, das dein Webbrowser für die Kommunikation mit Websites verwendet. Ein HTTP-Server ist eine Softwareanwendung, die URLs (Webadressen) und das HTTP-Protocol verstehen kann. Wenn du eine Webadresse in deinen Browser eingibst, sendet der Browser eine HTTP-Anfrage an den entsprechenden HTTP-Server, der daraufhin die angeforderte Webseite zurücksendet. Für unser Lab erstellen wir einen einfachen HTTP-Server mit Python, einer beliebten und leicht zu erlernenden Programmiersprache.
Erstellen des HTTP-Servers
Zunächst müssen wir sicherstellen, dass du dich im richtigen Arbeitsverzeichnis befindest. Das Arbeitsverzeichnis ist wie ein Ordner, in dem deine Befehle ausgeführt werden. In diesem Fall möchten wir uns im Verzeichnis /home/labex/project befinden. Verwende den folgenden Befehl, um zu diesem Verzeichnis zu navigieren:
cd /home/labex/project
Da wir uns nun am richtigen Ort befinden, verwenden wir Pythons integriertes HTTP-Server-Modul, um einen einfachen Webserver zu erstellen. Wir stellen diesen Server so ein, dass er auf Port 8080 lauscht. Ein Port ist wie eine Tür an einem Computer, durch die Netzwerkverkehr ein- oder ausgehen kann. Verschiedene Dienste nutzen unterschiedliche Ports. Gib den folgenden Befehl ein:
python -m http.server --bind 127.0.0.1 8080 &
Schauen wir uns an, was dieser Befehl bewirkt:
python -m http.server: Dieser Teil startet das integrierte HTTP-Server-Modul von Python. Es weist Python an, die HTTP-Server-Funktionalität auszuführen.--bind 127.0.0.1: Dies veranlasst den Server, auf der IPv4-Loopback-Adresse zu lauschen, nach der Nmap in dieser Umgebung fürlocalhostsucht.8080: Dies legt fest, dass der Server auf Port 8080 lauschen soll. Das bedeutet, dass alle eingehenden HTTP-Anfragen an diesem Port von unserem Server verarbeitet werden.&: Das Setzen eines Kaufmannsunds (Ampersand) am Ende des Befehls führt den Server im Hintergrund aus. Dies ist nützlich, da du das Terminal weiterhin für andere Befehle verwenden kannst, während der Server läuft.
Nach dem Ausführen des Befehls solltest du eine Ausgabe sehen, die ähnlich aussieht wie:
Serving HTTP on 127.0.0.1 port 8080 (http://127.0.0.1:8080/) ...
Diese Ausgabe zeigt an, dass dein HTTP-Server jetzt läuft und bereit ist, Verbindungen auf Port 8080 anzunehmen. Da dieser Server nun läuft, haben wir ein Ziel, das wir in den nächsten Schritten mit Nmap scannen können.
Überprüfen, ob der HTTP-Server läuft
Es ist wichtig zu bestätigen, dass dein Server tatsächlich ordnungsgemäß funktioniert. Dazu können wir den folgenden Befehl verwenden:
ss -tulwn | grep 8080
Der Befehl ss wird verwendet, um Socket-Statistiken anzuzeigen. Die Optionen -tulwn weisen ss an, TCP-, UDP-, lauschende (listening) und numerische Socket-Informationen anzuzeigen. Das | ist eine Pipe, die die Ausgabe des ss-Befehls an den grep-Befehl übergibt. Der grep-Befehl sucht daraufhin nach der Zeichenfolge 8080 in der Ausgabe. Wenn der Server läuft, sollte dieser Befehl eine Ausgabe liefern, die anzeigt, dass etwas auf Port 8080 lauscht, was bestätigt, dass dein HTTP-Server aktiv und bereit für Nmap-Scans ist.
Nmap-Grundlagen und Standard-Ausführlichkeit verstehen
In diesem Schritt, da unser Zielserver betriebsbereit ist, ist es an der Zeit, Nmap und seine Ausführlichkeitsstufen (Verbosity Levels) zu erkunden. Nmap (steht für Network Mapper) ist ein leistungsstarker Sicherheitsscanner. Sein Hauptzweck besteht darin, dir dabei zu helfen, Hosts und Dienste in einem Computernetzwerk zu entdecken. Dies ist in der Cybersicherheit von entscheidender Bedeutung, da es dir ermöglicht, das Layout des Netzwerks zu verstehen und potenzielle Sicherheitsrisiken zu identifizieren.
Was ist Nmap-Ausführlichkeit?
Bei Nmap bestimmt die Ausführlichkeit (Verbosity), wie viele Informationen während eines Scans angezeigt werden. Je nachdem, wie detailliert deine Scan-Ergebnisse sein sollen, kannst du verschiedene Ausführlichkeitsstufen wählen. Hier ist eine Übersicht über die gängigen Ausführlichkeitsstufen:
- Stufe 0: Dies ist die Standardstufe. Sie liefert dir die Standardausgabe, die grundlegende Informationen über den Scan enthält.
- Stufe 1: Durch die Verwendung der Option
-verhältst du mehr Details in der Scan-Ausgabe. - Stufe 2: Die Verwendung der Option
-vvliefert dir noch detailliertere Informationen.
Durchführen eines Scans mit Standard-Ausführlichkeit (Stufe 0)
Beginnen wir mit unserem ersten Scan unter Verwendung der Standard-Ausführlichkeitsstufe von Nmap. Dies verschafft uns ein grundlegendes Verständnis darüber, welche Art von Informationen wir ohne zusätzliche Ausführlichkeit erhalten können.
nmap -p 8080 localhost > /home/labex/project/verbosity-0.txt
Schauen wir uns diesen Befehl im Detail an:
nmap: Dies ist der Befehl zum Aufrufen des Nmap-Scan-Tools. Er weist dein System an, Nmap für den Netzwerk-Scan zu verwenden.-p 8080: Diese Option weist Nmap an, den Scan ausschließlich auf Port 8080 zu konzentrieren. Ports sind wie Türen an einem Computer, und verschiedene Dienste nutzen unterschiedliche Ports. Durch die Angabe von Port 8080 interessieren wir uns nur für den Dienst, der auf genau diesem Port läuft.localhost: Dies zeigt an, dass wir den lokalen Computer scannen. Mit anderen Worten, wir überprüfen die Dienste, die auf demselben Computer laufen, auf dem wir auch den Nmap-Befehl ausführen.> /home/labex/project/verbosity-0.txt: Dieser Teil des Befehls leitet die Ausgabe des Scans in eine Datei namensverbosity-0.txtim Verzeichnis/home/labex/projectum. Das Speichern der Ausgabe in einer Datei ermöglicht es uns, sie später zu überprüfen.
Sehen wir uns nun die Scan-Ergebnisse an:
cat /home/labex/project/verbosity-0.txt
Nach dem Ausführen dieses Befehls solltest du eine Ausgabe sehen, die der folgenden ähnelt:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-08-10 15:30 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.05 seconds
Verstehen wir, was diese Ausgabe bedeutet:
- Wann der Scan begann: Die erste Zeile nennt uns die genaue Uhrzeit, zu der der Nmap-Scan gestartet wurde. Dies ist nützlich, um nachzuvollziehen, wann die Informationen erfasst wurden.
- Das Ziel des Scans: Es zeigt, dass wir
localhostgescannt haben, welcher die IP-Adresse127.0.0.1besitzt. - Host-Status: Es zeigt an, dass der Host aktiv und erreichbar ist, mit einer sehr geringen Latenz von
0.000097Sekunden. - Port-Status: Es teilt uns mit, dass Port 8080 im Zustand
open(offen) ist, was bedeutet, dass ein Dienst auf diesem Port lauscht. - Laufender Dienst: Es legt nahe, dass der wahrscheinlich auf Port 8080 laufende Dienst ein
http-proxyist. - Statistiken zum Abschluss des Scans: Die letzte Zeile gibt Aufschluss darüber, wie lange der Scan gedauert hat, was in diesem Fall
0.05Sekunden waren.
Die Standardstufe liefert wesentliche Informationen, es fehlen jedoch detaillierte Einblicke. In den nächsten Schritten werden wir untersuchen, wie höhere Ausführlichkeitsstufen uns tiefere Informationen über den Scan liefern können.
Erhöhen der Ausführlichkeit mit der Option -v
In der Welt der Netzwerk-Scans ist es entscheidend, detaillierte Informationen zu erhalten. In diesem Schritt lernen wir, wie man durch Erhöhung der Ausführlichkeitsstufe tiefere Details von Nmap abruft. Die Ausführlichkeit (Verbosity) in Nmap bezieht sich auf die Menge an Informationen, die während eines Scans angezeigt werden. Die Option -v, die die Ausführlichkeitsstufe auf 1 setzt, liefert zusätzliche Informationen, die für die Netzanalyse äußerst nützlich sein können.
Ausführen eines Scans mit erhöhter Ausführlichkeit
Beginnen wir damit, einen Scan mit erhöhter Ausführlichkeit auszuführen. Wir verwenden dazu den folgenden Befehl:
nmap -p 8080 localhost -v > /home/labex/project/verbosity-1.txt
Schauen wir uns diesen Befehl im Detail an:
nmapist der Befehl zum Aufrufen des Nmap-Scan-Tools. Nmap ist ein leistungsstarkes und weit verbreitetes Tool zur Netzwerkerkundung und Sicherheitsprüfung.-p 8080weist Nmap an, nur Port 8080 zu scannen. Ports sind wie Türen in einem Netzwerk, und durch die Angabe eines Ports konzentrieren wir unseren Scan auf einen bestimmten Dienst, der auf diesem Port laufen könnte.localhostzeigt an, dass wir das lokale System als Ziel nehmen. Dies ist nützlich zum Testen und Verstehen, wie Nmap auf deinem eigenen System funktioniert.-verhöht die Ausführlichkeitsstufe auf 1. Das bedeutet, dass Nmap mehr Informationen über den Scan-Prozess anzeigt.> /home/labex/project/verbosity-1.txtleitet die Ausgabe des Scans in eine Datei namensverbosity-1.txtim Verzeichnis/home/labex/projectum. Das Speichern der Ausgabe in einer Datei ermöglicht es uns, sie später zu überprüfen.
Sehen wir uns nun die Ergebnisse unseres Scans an:
cat /home/labex/project/verbosity-1.txt
Wenn du diesen Befehl ausführst, solltest du eine detailliertere Ausgabe sehen, die etwa so aussieht:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-08-10 15:35 UTC
Initiating Ping Scan at 15:35
Scanning localhost (127.0.0.1) [2 ports]
Completed Ping Scan at 15:35, 0.00s elapsed (1 total hosts)
Initiating Connect Scan at 15:35
Scanning localhost (127.0.0.1) [1 port]
Discovered open port 8080/tcp on 127.0.0.1
Completed Connect Scan at 15:35, 0.00s elapsed (1 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000089s latency).
PORT STATE SERVICE
8080/tcp open http-proxy
Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds
Die zusätzlichen Informationen verstehen
Mit der Ausführlichkeitsstufe 1 liefert die Ausgabe eine Fülle zusätzlicher Details. Hier ist, was du sehen kannst:
- Der Scan-Prozess ist in Phasen unterteilt. Es gibt beispielsweise einen Ping-Scan und einen Connect-Scan. Der Ping-Scan wird verwendet, um zu prüfen, ob ein Host erreichbar ist, während der Connect-Scan versucht, eine Verbindung zu einem bestimmten Port herzustellen.
- Für jede Phase werden Zeitangaben (Timing) bereitgestellt. Dies hilft dir zu verstehen, wie lange jeder Teil des Scans gedauert hat.
- Du kannst den genauen Moment sehen, in dem der offene Port entdeckt wurde. Dies ist wichtig, da es dir einen klaren Zeitplan des Scans liefert.
- Die von Nmap während des Scans verwendeten Datendateien werden ebenfalls angezeigt. Diese Dateien enthalten Informationen über Dienste, Ports und andere netzbezogene Daten, die Nmap für seine Scans nutzt.
Diese zusätzlichen Informationen sind sehr hilfreich, da sie dir ermöglichen:
- Zu verstehen, wie Nmap seine Scans durchführt. Indem du die verschiedenen Phasen und die Reihenfolge ihres Auftretens siehst, erhältst du ein besseres Verständnis des Scan-Prozesses.
- Den genauen zeitlichen Ablauf von Ereignissen während des Scans zu kennen. Dies kann für die Fehlerbehebung oder zum Verständnis des Netzwerkverhaltens nützlich sein.
- Festzustellen, wann bestimmte Ports und Dienste entdeckt wurden. Dies ist entscheidend für Sicherheitsüberprüfungen und das Netzwerkmanagement.
Vergleich der Ausführlichkeitsstufen
Um den Unterschied zwischen einem normalen Scan und einem Scan mit erhöhter Ausführlichkeit noch deutlicher zu sehen, vergleichen wir die beiden Ausgabedateien. Verwende dazu den folgenden Befehl:
diff /home/labex/project/verbosity-0.txt /home/labex/project/verbosity-1.txt
Der Befehl diff vergleicht den Inhalt von zwei Dateien und zeigt die Unterschiede zwischen ihnen an. Die Ausgabe dieses Befehls veranschaulicht, wie die Erhöhung der Ausführlichkeitsstufe mehr Einblick in den Scan-Prozess gewährt. Diese zusätzlichen Informationen können besonders nützlich sein, wenn du Netzwerkprobleme behebst oder detaillierte Sicherheitsüberprüfungen durchführst.
Zusätzliche Ausführlichkeitsstufen
Nmap hört bei der Ausführlichkeitsstufe 1 noch lange nicht auf. Es unterstützt sogar noch höhere Ausführlichkeitsstufen:
-vvsetzt die Ausführlichkeitsstufe auf 2.-vvvsetzt die Ausführlichkeitsstufe auf 3.
Wenn du die Ausführlichkeitsstufe erhöhst, liefert Nmap immer detailliertere Informationen über den Scan-Prozess. Dies kann sehr nützlich sein, wenn du tiefer in das Netzwerk vordringen und jeden Aspekt des Scans verstehen musst.
Erkundung höherer Ausführlichkeitsstufen und praktischer Anwendungen
In diesem Schritt tauchen wir noch tiefer in die Funktionen von Nmap ein. Wir beginnen damit, eine noch höhere Ausführlichkeitsstufe zu verwenden, die uns während des Scan-Prozesses detailliertere Informationen liefert. Danach lernen wir die praktischen Anwendungsbereiche der verschiedenen Ausführlichkeitseinstellungen kennen, damit du weißt, wann du welche Stufe in realen Szenarien einsetzen solltest.
Ausführen eines Scans mit maximaler Ausführlichkeit
Führen wir einen Scan mit der Ausführlichkeitsstufe 2 aus. In Nmap können wir die Ausführlichkeitsstufe mit der Option -vv einstellen. Die Ausführlichkeitsstufe 2 liefert eine beträchtliche Menge an detaillierten Informationen über den Scan. Hier ist der Befehl zum Ausführen des Scans:
nmap -p 8080 localhost -vv > /home/labex/project/verbosity-2.txt
In diesem Befehl weist -p 8080 Nmap an, Port 8080 zu scannen. localhost ist das Ziel, das wir scannen, was sich auf den lokalen Computer bezieht. Die Option -vv erhöht die Ausführlichkeit auf Stufe 2. Das Symbol > leitet die Ausgabe des Scans in die Datei /home/labex/project/verbosity-2.txt um.
Untersuchen wir nun die Ergebnisse des Scans. Wir können den Befehl cat verwenden, um den Inhalt der Datei anzuzeigen:
cat /home/labex/project/verbosity-2.txt
Wenn du dir die Ausgabe ansiehst, wirst du feststellen, dass sie noch mehr technische Details über den Scan-Prozess enthält. Diese Details umfassen:
- Tiefere Timing-Informationen: Dies hilft dir zu verstehen, wie lange verschiedene Teile des Scans gedauert haben.
- Zusätzliche Debugging-Informationen: Diese können nützlich sein, wenn während des Scans etwas schief läuft.
- Detailliertere Protokollinformationen: Dies verschafft dir ein besseres Verständnis der am Scan beteiligten Netzwerkprotokolle.
Praktische Anwendungen verschiedener Ausführlichkeitsstufen
Unterschiedliche Ausführlichkeitsstufen sind in verschiedenen Szenarien nützlich. Werfen wir einen Blick auf die einzelnen Stufen und ihre praktischen Anwendungen:
Standardstufe (0):
- Die Standard-Ausführlichkeitsstufe eignet sich am besten für schnelle Scans. Wenn du nur grundlegende Informationen über das Ziel benötigst, wie zum Beispiel, ob ein bestimmter Port offen oder geschlossen ist, reicht diese Stufe vollkommen aus.
- Sie ist auch nützlich für Routinetests und einfache Netzwerk-Mappings. Wenn du beispielsweise schnell den Grundstatus der Ports eines Servers überprüfen möchtest, kannst du die Standardstufe verwenden.
- Ein Anwendungsbeispiel ist die Überprüfung, ob bestimmte Ports auf einem Server geöffnet sind. Du erhältst einen schnellen Überblick, ohne dich in zu vielen Details zu verlieren.
Ausführlichkeitsstufe 1 (-v):
- Diese Stufe ist nützlich für detailliertere Analysen. Sie liefert mehr Informationen als die Standardstufe, was dir hilft, den zeitlichen Ablauf des Scans besser zu verstehen.
- Wenn du Verbindungsprobleme behebst, können die zusätzlichen Informationen auf dieser Stufe sehr hilfreich sein. Du kannst sehen, welche Teile des Scans länger dauern oder ob irgendwelche Fehler auftreten.
- Ein Anwendungsbeispiel ist die Behebung von Verbindungsproblemen. Du kannst die zusätzlichen Details nutzen, um herauszufinden, was das Problem verursachen könnte.
Höhere Ausführlichkeitsstufen (-vv, -vvv):
- Diese Stufen sind ideal für tiefgehende Analysen und zum Debuggen. Sie bieten die maximale Menge an Informationen, was für Sicherheitsaudits sehr nützlich ist.
- Wenn du eine detaillierte Sicherheitsüberprüfung durchführst oder genau verstehen musst, wie der Scan mit dem Ziel interagiert, sind höhere Ausführlichkeitsstufen genau das Richtige.
- Ein Anwendungsbeispiel sind detaillierte Sicherheitsüberprüfungen oder Situationen, in denen du genau verstehen musst, wie der Scan mit dem Ziel interagiert. Du erhältst einen umfassenden Überblick über den Scan-Prozess.
Kombination von Ausführlichkeit mit anderen Nmap-Optionen
Ausführlichkeitsoptionen können mit anderen Nmap-Optionen kombiniert werden, um leistungsfähigere Scans durchzuführen. Versuchen wir einen fortgeschritteneren Scan mit dem folgenden Befehl:
nmap -p 8080 -sV localhost -v > /home/labex/project/advanced-scan.txt
Schauen wir uns diesen Befehl im Detail an:
-p 8080gibt an, dass wir Port 8080 scannen möchten.-sVaktiviert die Versionserkennung (Version Detection). Diese Option versucht, die Version des Dienstes zu bestimmen, der auf dem gescannten Port läuft.-verhöht die Ausführlichkeit auf Stufe 1, sodass wir detailliertere Informationen über den Scan-Prozess erhalten.- Das Symbol
>leitet die Ausgabe des Scans in die Datei/home/labex/project/advanced-scan.txtum.
Sehen wir uns nun die Ergebnisse des Scans an:
cat /home/labex/project/advanced-scan.txt
Du wirst feststellen, dass das Hinzufügen von -sV Informationen über die Dienstversion liefert, die auf Port 8080 läuft. Gleichzeitig stellt die Option -v sicher, dass du detaillierte Informationen über den Scan-Prozess erhältst, was die Analyse der Ergebnisse erleichtert.
Aufräumen
Bevor wir dieses Experiment abschließen, müssen wir den zuvor erstellten HTTP-Server ordnungsgemäß herunterfahren. Dazu können wir den folgenden Befehl verwenden:
pkill -f "python -m http.server"
Dieser Befehl beendet den Python-HTTP-Serverprozess, der auf Port 8080 läuft. Es ist wichtig, ordnungsgemäß aufzuräumen, um zukünftige Konflikte oder Ressourcenauslastungsprobleme zu vermeiden.
Zusammenfassung
In diesem Lab hast du gelernt, wie du Nmaps Ausführlichkeitsstufen (Verbosity Levels) effektiv einsetzt, um die bei Netzwerk-Scans angezeigten Informationen zu steuern. Beginnend mit der Einrichtung eines einfachen lokalen HTTP-Servers hast du untersucht, wie sich verschiedene Ausführlichkeitsstufen auf die Ausgaben von Nmap-Scans auswirken.
Du hast festgestellt, dass die Standard-Ausführlichkeitsstufe (0) wesentliche Details über offene Ports und Dienste liefert. Die Verwendung der Option -v erhöht die Ausführlichkeit und bietet tiefere Einblicke in den Scan-Prozess. Höhere Stufen wie -vv und -vvv liefern detaillierte technische Informationen für eingehende Analysen. Ausführlichkeitsoptionen können auch mit anderen Nmap-Techniken kombiniert werden, um leistungsfähigere Netzwerk-Analysen durchzuführen. Diese Fähigkeiten sind für Netzwerkadministratoren und Sicherheitsexperten von entscheidender Bedeutung, da sie es ihnen ermöglichen, Netzdaten effizient zu erfassen und Scans auf bestimmte Aufgaben abzustimmen.



