Lesezeit: ca. 7 Minuten

Nmap für Einsteiger

Zusammenfassung

Nmap (Network Mapper) ist ein leistungsfähiges Tool, das dazu verwendet wird um Netzwerke zu erkunden. Dabei wird versucht herauszufinden, welche Computer in einem Netzwerk aktiv sind, welche Dienste sie ausführen und welche „Netzwerkanschlüsse“ (Ports)  offen sind. Die Nmap Suite wird auch des Öfteren als Schweizer Taschenmesser für Netzwerkscan betitelt weil man damit neben Portscans noch vieles mehr machen kann wie z. B. Betriebssystemerkennung, Diensterkennung, unterschiedliche Skripte laufen lassen, auf einkommende Verbindungen hören und Kommunikationsaufbau, Datentransfer, grafische Topologie gescannter Netzwerke oder   Datenweiterleitung (Relay).

Fun fact: Nmap existiert seit 1997. Es ist sogar im zweiten Teil der Matrix-Filmreihe „Matrix Reloaded“ (2003) zu sehen. Trinity benutzt Nmap um eine Schwachstelle des Stromversorgers zu finden, um den Strom abzustellen.

Was sind Ports & Protokolle?

Ports
In der Welt der Computer und Netzwerke sind „Ports“ wie Türen oder Eingänge zu einem Gebäude. Stell dir vor, ein Computer ist wie ein Gebäude, und dieser Computer hat viele Türen, die zu verschiedenen Räumen oder Diensten führen. Diese Türen haben Nummern, um sie voneinander zu unterscheiden, ähnlich wie die Nummern an den Türen eines Apartmentkomplexes.

Jede dieser Türnummern (Ports) hat eine bestimmte Aufgabe oder ist für einen bestimmten Dienst reserviert. Zum Beispiel kann Port 80 dafür verwendet werden, Webseiten anzuzeigen, während Port 25 normalerweise für den E-Mail-Versand reserviert ist. Wenn du also eine Webseite besuchst, öffnet dein Computer eine Verbindung zur Tür Nummer 80 auf dem Zielserver, um die Webseite abzurufen.

Protokolle
Protokolle im Zusammenhang mit Ports sind wie die Regeln, nach denen Menschen miteinander sprechen, wenn sie durch die Türen (Ports) in einem Gebäude (Computer) gehen. Hier ist eine einfache Erklärung:

Stell dir vor, du gehst in ein Bürogebäude. In jedem Raum dieses Gebäudes gibt es eine Tür mit einer Nummer. Diese Türnummern sind wie Ports. Jeder Raum hat seine eigenen Regeln und Arten, wie du dich darin verhalten sollst. Zum Beispiel, wenn du in das Besprechungszimmer gehst, weißt du, dass du leise sein und dich auf die Sitzung konzentrieren sollst. Das ist das „Besprechungsprotokoll.“ Wenn du in das Cafeteria gehst, weißt du, dass du dich dort entspannen und essen kannst. Das ist das „Cafeteria-Protokoll.“

Ähnlich verhält es sich im Internet und auf Computern. Jeder Port (Türnummer) auf einem Computer hat eine spezielle Aufgabe und spezielle Regeln, wie die Kommunikation darüber ablaufen sollte. Diese Regeln werden als Protokolle bezeichnet.

Zum Beispiel verwendet das Web den Port 80 für das HTTP-Protokoll (Hypertext Transfer Protocol), um Webseiten zu übertragen. Das ist wie die „Sprache“ oder das „Protokoll“, das verwendet wird, wenn du eine Webseite besuchst. Auf Port 25 wird das SMTP-Protokoll (Simple Mail Transfer Protocol) verwendet, um E-Mails zu senden. Das ist wie die „Sprache“, die für das Versenden von E-Mails verwendet wird.

Zusammengefasst: Ports sind wie Türen, und Protokolle sind die Regeln oder die Art und Weise, wie die Kommunikation durch diese Türen erfolgt. Damit können Computer und Server verstehen, wie sie miteinander sprechen sollen, wenn sie Informationen austauschen.

Syntax

Die Syntax für einen Nmap-Scan kann je nach den spezifischen Anforderungen und Optionen variieren, aber hier ist eine grundlegende Syntax, um dir einen Eindruck davon zu geben, wie ein Nmap-Scan aussehen könnte:

nmap [Optionen] Ziel-IP-Adresse oder Ziel-Host

Hier ist eine Erklärung der verschiedenen Teile dieser Syntax:

  • nmap: Dies ist der Befehl, um Nmap auszuführen.

  • [Optionen]: Hier kannst du verschiedene Optionen hinzufügen, um den Scan anzupassen und spezifische Informationen zu sammeln. Es gibt viele Optionen, die du verwenden kannst, je nachdem, was du mit dem Scan erreichen möchtest. Zum Beispiel könntest du -sS verwenden, um einen SYN-Scan durchzuführen, oder -p gefolgt von Portnummern, um bestimmte Ports zu scannen.

  • Ziel-IP-Adresse oder Ziel-Host: Hier gibst du die IP-Adresse oder den Hostnamen des Ziels an, das du scannen möchtest. Nmap wird dann versuchen, Informationen über dieses Ziel zu sammeln, indem es verschiedene Arten von Scans durchführt.

Standardscan

Du kannst dich auch relativ kurzhalten. Falls du nur die IP-Adresse angibst, wird Nmap einen Standardscan durchführen. Dabei werden folgende Optionen automatisch ausgeführt:

  • Top 1000 Ports: Es wird der Status der am verbreitetsten 1000 Ports auf offen, geschlossen oder gefiltert geprüft
  • -T3: Dies gibt die Geschwindigkeit an, wie viele Daten pro Zeiteinheiten geschickt werden sollen. Per Default ist die Geschwindigkeit auf -T3 gesetzt
  • -sS: Der SYN-Scan (auch Stealth-Scan genannt) baut keine vollständige TCP Verbindung auf, wodurch der Scan weniger auffällig wird
nmap 10.0.2.9

Herausfinden von Serviceversionen

Wenn du den Befehl nmap -sV verwendest, führst du einen Service-Erkennungsscan mit Nmap durch. Dies bedeutet, dass du Nmap anweist, mehr als nur die offenen Ports auf einem Zielsystem zu identifizieren. Mit dieser Option versucht Nmap, herauszufinden, welche konkreten Dienste oder Anwendungen auf den offenen Ports des Zielsystems laufen.

Hier ist, wie dieser Befehl funktioniert:

  • Du gibst nmap ein, um Nmap zu starten, und fügst dann -sV hinzu, um den Service-Erkennungsscan zu aktivieren.

  • Nmap wird dann das angegebene Ziel (normalerweise eine IP-Adresse oder einen Hostnamen) scannen und versuchen, Informationen über die Dienste auf den offenen Ports zu sammeln.

  • Dies geschieht, indem Nmap spezielle Techniken verwendet, um Bannertexte und Protokollantworten von den Diensten auf den Ports zu extrahieren. Anhand dieser Informationen kann Nmap normalerweise feststellen, welche Dienste und Versionen auf den offenen Ports ausgeführt werden.

  • Das Ergebnis des Scans wird dann angezeigt und enthält Details zu den erkannten Diensten, einschließlich der Dienstnamen, der Versionen und möglicherweise weiterer Informationen wie Banner und Protokollantworten.

nmap -sV 10.0.2.9

Herausfinden des Betriebssystems

Wenn du den Befehl nmap -O (Buchstabe O, nicht Ziffer Null) verwendest, führst du eine Betriebssystemerkennung mit Nmap durch. Das bedeutet, dass du Nmap anweist, zu versuchen, das Betriebssystem des Zielhosts zu identifizieren. Hier ist, wie dieser Befehl funktioniert:

  • Du gibst nmap ein, um Nmap zu starten, und fügst dann -O hinzu, um die Betriebssystemerkennung zu aktivieren.

  • Nmap wird dann das angegebene Ziel (normalerweise eine IP-Adresse oder einen Hostnamen) scannen und verschiedene Tests durchführen, um Hinweise auf das Betriebssystem zu sammeln.

  • Diese Tests umfassen das Analysieren von Netzwerkpaketen und das Überprüfen von Verhaltensweisen, die spezifisch für verschiedene Betriebssysteme sind.

  • Basierend auf den gesammelten Informationen versucht Nmap, eine Schätzung des Betriebssystems des Zielhosts abzugeben.

  • Das Ergebnis des Scans wird dann angezeigt und enthält die vom Nmap ermittelte Schätzung des Betriebssystems, wie zum Beispiel „Windows“, „Linux“, „macOS“ usw.

Die Betriebssystemerkennung mit Nmap kann nützlich sein, um Informationen über die Art der Zielsysteme in einem Netzwerk zu erhalten. Dies kann bei der Netzwerkverwaltung, der Sicherheitsanalyse und der Fehlerbehebung hilfreich sein. Bitte beachte jedoch, dass die Genauigkeit der Betriebssystemerkennung von verschiedenen Faktoren abhängt und möglicherweise nicht immer 100% genau ist.

nmap -O 10.0.2.9

Umfassende Portscans

Wenn du den Befehl nmap -A verwendest, führst du einen aggressiven Nmap-Scan durch. Dieser Befehl aktiviert eine Vielzahl von Nmap-Optionen und führt verschiedene Arten von Scans und Tests auf dem Zielsystem durch, um so viele Informationen wie möglich zu sammeln. Hier ist, wie dieser Befehl funktioniert:

  • Du gibst nmap ein, um Nmap zu starten, und fügst dann -A hinzu, um den aggressiven Scan zu aktivieren.

  • Mit dieser Option werden mehrere Scan-Techniken gleichzeitig ausgeführt, darunter ein SYN-Scan, ein Versionsscan (-sV), ein Betriebssystemerkennungsscan (-O) und ein Traceroute (-traceroute). Diese Techniken kombinieren sich, um umfassende Informationen über das Ziel zu sammeln.

  • Der Versionsscan (-sV) versucht, genaue Informationen über die Dienste und Anwendungen auf den offenen Ports zu sammeln.

  • Die Betriebssystemerkennung (-O) versucht, das Betriebssystem des Zielhosts zu identifizieren.

  • Der Traceroute (-traceroute) verfolgt den Pfad der Netzwerkpakete zwischen deinem Computer und dem Zielhost.

  • Das Ergebnis dieses Scans enthält detaillierte Informationen über offene Ports, erkannte Dienste, mögliche Betriebssysteme und mehr.

Der nmap -A Befehl ist nützlich, wenn du eine umfassende Netzwerkanalyse durchführen möchtest und so viele Details wie möglich über das Ziel herausfinden möchtest. Bitte beachte jedoch, dass dieser Scan ziemlich aufdringlich ist und auf manchen Netzwerken als unerwünschte Aktivität angesehen werden kann. Du solltest ihn nur auf Systemen und Netzwerken verwenden, für die du die entsprechenden Berechtigungen und Zustimmungen hast.

Ergänzt wir der Scan mit -T4 und -oN.

  • -T4: Dieser Befehl passt die Scangeschwindigkeit an. Die Geschwindigkeitsstufen von Nmap reichen von 0 (langsam) bis 5 (sehr schnell), wobei -T4 eine gute Balance zwischen Geschwindigkeit und Genauigkeit darstellt. Bei Geschiwindigkeite von 4 oder mehr können einige Antworten von Zielsystemen verloren gehen, insbesondere in überlasteten Netzwerken.
  • -oN: Diese Option kannst du verwenden, um die Ausgabe des Nmap-Scans in eine Datei zu speichern. In diesem Fall ist es eine .txt-Datei. Vergiss nicht einen passenden Pfad zu wählen wo du die Ergebnisse speichern willst. Falls du keinen Pfad angibst, wird die .txt in dem Pfad gespeichert, wo du ihn auch ausführst.
sudo nmap -A -T4 -oN /home/scriptkiddie/scriptkiddieclub/Informationsbeschaffung/nmap/nmapscan.txt 10.0.2.9

Da das Ergebnis relativ umfassend ist und man nicht alles erfassen kann, wurde kein Screenshot erstellt. Stattdessen kannst du den kompletten Scan in folgender Datei einsehen: nmapscan.txt

Nun hast viel Informationen über dein Ziel beschafft. Der nächste Schritt ist es eine Schwachstelle zu finden und auszunutzen, über die du in das System eindringen kannst. Es gibt einige Methoden und Tools, um Schwachstellen zu finden. Eines dieser Tools lautet „Exploit-DB“. Klicke auf den folgenden Link, um zu erfahren wie du Schwachstellen damit findest: Exploit-DB

Sensibilisierung

Du kannst dich in deinem Hacking-Lab, welchen du mit Hilfe der Tutorials auf dieser Webseite aufgebaut hast gedankenlos austoben. Anders sieht es jedoch bei Ziel aus, die nicht von dir betrieben werden. Nmap gehört zu den aktiven Formen der Informationsbeschaffung und kann unter Umständen Konsequenzen nach sich ziehen, je nach Gesetzt der jeweiligen Länder. 

Hinweis: Es genügt bspw. NICHT die Erlaubnis des Inhabers eines Onlineshops zu haben. Zusätzlich wird die Zustimmung des Betreibers der IT-Infrastruktur benötigt. Falls nun der Onlineshop auf den Servern von z. B. Strato, 1&1, Hetzner usw. betrieben wird, benötigst du ebenfalls deren Zustimmung für jegliche aktive Pentestmethoden – worunter Nmap auch fällt.