NMAP - Network Mapper

NMAP ist ein umfassendes Werkzeug zur Netzwerk-Analyse für System- und Netzwerk-Administratoren. Der typische Anwendungsfall ist das Testen der eigenen Firewall-Konfiguration oder zum Feststellen, welche Ports offen sind und welche eventuell unerwünschten Dienste im Hintergrund laufen.

Um NMAP mit seinen vielen Einstellungsmöglichkeiten sinnvoll einsetzen zu können, wird ein fundiertes Wissen über Netzwerke, Netzwerk-Dienste und Betriebssysteme vorausgesetzt. Derjenige, der NMAP als ultimatives Hacker-Tool nutzen will, wird schnell an der eigenen Unkenntnis über Netzwerke und deren Protokolle scheitern. Es empfiehlt sich diese Kenntnisse zu erwerben.

Notwendige grundlegende Kenntnisse zum Umgang mit NMAP

Typische Anwendungen von NMAP

  • Netzwerke scannen und analysieren
  • angeschlossene und aktiven Systeme erkennen
  • Details zu Diensten, Konfigurationen und Versionen bestimmen
  • Netzwerk-Inventarisierung
  • Dienste-Aktualisierungen prüfen
  • Überwachung von Betriebszeiten, Hosts oder Diensten

Besonderheiten von NMAP

  • Implementierung aller gängigen Ping- und Port-Scanning-Techniken
  • Implementierung verschiedener Methoden zur OS & Service Identification
  • Vielfältige Schwachstellenerkennung
  • Scripting
  • ... und noch viele mehr

Hauptfunktionen von NMAP

  • Target Enumeration
  • Ping-Scanning (Host-Discovery)
  • Port-Scanning
  • Service- und Versionserkennung (Service Identification)
  • Betriebssystemerkennung (OS Identification)

Target Enumeration

Target Enumeration ist keine eigenständige Funktion von NMAP, sondern eine Phase im Vorfeld des NMAP-Scannings. In dieser Phase ermittelt NMAP aus der Zieladresse, die tatsächlich zu scannenden Hosts. Die Zieladresse kann die IP-Adresse eines einzelnen Hosts sein oder ein ganzes Subnetz. Im Fall eines Domain- oder Computernamens wird NMAP eine Adressauflösung durchführen.
Diese Phase lässt sich nicht überspringen, da für das Scannen die Zieladresse eindeutig sein muss. Ermittelt NMAP aus der Angabe des Benutzers mehrere Adressen, dann führt NMAP das Scanning auf alle diese Adressen aus.
Diesen Vorgang kann man nur dadurch vereinfachen, indem man explizit nur eine IP-Adresse angibt.

Ping-Scanning (Host-Discovery)

Nachdem NMAP die Zieladressen ermittelt hat, beginnt NMAP mit der Bestimmung der Ziele im Netzwerk, die online und somit eine weitere Untersuchung wert sind. Diesen Vorgang nennt man Host-Discovery oder Ping-Scanning. Die Methoden für das Host-Discovery reichen von ARP-Requests bis zu einer Kombinationen aus TCP-, ICMP- und anderen Tests.
Das Ping-Scanning wird von NMAP standardmäßig vor jedem Port-Scan ausgeführt. Man kann es auch abschalten. Dann nimmt NMAP an, dass der Host erreichbar ist.
Das Ping-Scanning kann aber auch als eigenständige Funktion ausgeführt werden, wenn man nur wissen will, ob ein Host online ist.

Port-Scanning

Der Port-Scan ist die Hauptfunktion von NMAP. Hierbei testet NMAP die Port-Zustände des entfernten Hosts. Hierbei geht es darum festzustellen, ob ein Port offen ist, also Verbindungsversuche annimmt. Da der Port-Zustand "offen" nicht immer eindeutig zu bestimmen ist, stellt NMAP vielfältige Scan-Methoden und Algorithmen zu Verfügung, um die Genauigkeit der Bestimmung von Port-Zuständen zu verbessern.

Service- und Versionserkennung (Service Identification)

Können Ports als "offen" erkannt werden, dann kann NMAP auch versuchen zu bestimmen, welche Software und deren Version auf dem entfernten System läuft. Hierbei werden mehrere Testanfragen an den Port gesendet und die Antworten mit einer Dienstsignaturen-Datenbank abgeglichen.
Die Service- und Versionserkennung wird nicht standardmäßig ausgeführt, weil sie sehr lange dauern kann. Sie muss mit einer Option aktiviert werden.

Betriebssystemerkennung (OS Identification)

Unterschiedliche Betriebssysteme implementieren Netzwerk-Protokolle und -Dienste auf unterschiedliche Weise. NMAP ist in der Lage diese Unterschiede zu erkennen und kann das Ergebnis mit einer Signatur-Datenbank abgleichen, um zu versuchen das Betriebssystem auf dem entfernten Host zu bestimmen.
Manchmal sind die Unterschiede zwischen verschiedenen Systemen nicht sehr groß, weshalb das Ergebnis dieser Scan-Methode mehr oder weniger exakt ausfällt.
Die Betriebssystemerkennung wird nicht standardmäßig ausgeführt, weil sie sehr lange dauern kann. Sie muss mit einer Option aktiviert werden.

Ein einfaches Anwendungsbeispiel mit NMAP

Port-Scan auf einen einzelnen Host:

nmap 192.168.1.1

Port-Scan auf alle Hosts in einem Subnetz:

nmap 192.168.1.0/24

Oder

nmap 192.168.1.*

NMAP führt zuerst ein Host Discovery durch. Im selbe Subnetz mit ARP-Requests. Bei einem Ziel im Internet werden per ICMP-Echo-Request und einem TCP-SYN-Paket an Port 80 und 443 kombiniert, um festzustellen, ob der Host erreichbar ist. Wenn ja, dann wird NMAP einen Port-Scan auf etwa 1.000 der meistgenutzten Ports laufen lassen. Das Ergebnis wird tabellarisch angezeigt.

Oftmals ist dieses einfache Kommando schon alles was man braucht. Allerdings nicht immer. Erfahrene Benutzer gehen dann noch einen Schritt weiter und nutzen die vielfältigen Optionen und Parameter, die NMAP anbietet.

Warum funktioniert NMAP nicht wie erwartet?

Manche NMAP-Kommandos arbeiten nicht unbedingt so wie erwartet. Dazu muss man wissen, dass sich NMAP je nach Arbeitsumgebung und Zielsystem etwas anders verhält. Wenn man erstmals mit NMAP arbeitet und noch keine Erfahrung hat, wird man das nicht merken. Wenn man NMAP öfter und gezielter einsetzt, wird es einem jedoch vorkommen, als ob die meisten NMAP-Kommandos nicht wie erwartet funktionieren.

Beim Einsatz von NMAP gibt es 3 Besonderheiten, die man im Hinterkopf behalten sollte. Man wird NMAP nur dann erfolgreich einsetzen können, wenn man sie berücksichtigt.

  1. Root-Rechte erforderlich
  2. Funktionsweise abhängig vom Zielsystem
  3. Paketfilter und Firewalls

Interessanterweise gehen einschlägige Bücher, Anleitungen und Tutorials über NMAP selten darauf ein. Als NMAP-Einsteiger stolpert man aber sehr leicht darüber. Die Erkenntnis, dass NMAP nicht richtig funktioniert liegt dann aber darin begründet, dass NMAP einfach nicht korrekt verwendet wird. Es handelt sich also nicht um ein NMAP-, sondern User-Problem.

1. Root-Rechte erforderlich

Die erste Besonderheit ist, dass manche NMAP-Kommandos Root-Rechte benötigen, damit das Kommando das zu erwartende Ergebnis liefern kann. Das Problem dabei ist, dass das jeweilige NMAP-Kommando auch ohne Root-Rechte ausgeführt wird. Nur arbeitet es dann anders und liefert dann die entsprechend "falschen Ergebnisse".
Die erforderlichen Root-Rechte bekommt man nur, wenn man Benutzer "root" ist oder als normaler User mit dem Kommandozeilenzusatz "sudo" arbeitet.

Als normaler User zu "root" wechseln (evt. Passwort-Eingabe):

su

Oder mit "sudo" arbeiten:

sudo nmap ...

Grundsätzlich empfiehlt es sich, als Benutzer "root" zu arbeiten. Dann geht man Berechtigungsproblemen generell aus dem Weg.

2. Funktionsweise abhängig vom Zielsystem

Die zweite Besonderheit hat mit dem Zielsystem zu tun. Genauer gesagt spielt es eine Rolle, ob ein NMAP-Kommando auf ein Zielsysteme im lokalen Netzwerk oder im Internet ausgeführt wird.
Ein konkretes Beispiel ist der Ping-Scan. Der sieht vor, festzustellen, ob ein Host online ist oder nicht. Im lokalen Netzwerk bzw. im gleichen Subnetz reicht es dazu aus, einen ARP-Request zu senden. Der Host wird sich in jedem Fall melden, wenn er online ist.
Befindet sich der Host im Internet bzw. in einem anderen Subnetz, dann funktioniert das mit dem ARP-Request nicht. Hier erfolgt der Ping-Scan per ICMP-Paket, die aber von Firewalls gefiltert werden, weshalb es mehrere Ping-Scan-Methoden gibt, die unterschiedlich arbeiten, um Paketfilter und Firewalls zu umgehen.
Was man dabei wissen muss ist, dass wenn man eine beliebige Ping-Scan-Methode, die auf ICMP-Paketen basiert, auf einen Host im lokalen Netzwerk anwendet, dann wird trotzdem immer ein ARP-Request gesendet. Ist auch logisch. Im eigenen Subnetz reicht das vollkommen aus und funktioniert zuverlässiger.

Warum muss man das beachten? Wenn man mit NMAP experimentiert und als Zielsystem einen Host im lokalen Netzwerk oder das eigene Subnetz wählt, dann ist das Ergebnis ein anderes, als wenn das Zielsystem in einem anderen Netz liegt.
Das bedeutet, die Vorgehensweise von NMAP ist davon abhängig, in welchem Netz sich das Zielsystem befindet.

3. Paketfilter und Firewalls

Der Hauptgrund für die vielfältigen Scan-Methoden von NMAP liegt darin begründet, dass Paketfilter und Firewalls verhindern, dass Netzwerke und Systeme ausspioniert werden. Während eine Scan-Methode sozusagen geblockt wird, funktioniert eine andere Scan-Methode besser. Kombiniert man die Ergebnisse mehrerer Scan-Methoden bekommt man sehr aussagekräftige Ergebnisse.
Bei einem entfernten Zielsystem weiß man am Anfang noch nicht, welche Art von Konfiguration der Firewall zu erwarten ist. Normal ist, dass unterschiedliche Scan-Methoden unterschiedliche Ergebnisse liefern. Weshalb man sich als Einsteiger schwer damit tut, diese richtig zu interpretieren. Erschwerend kommt hinzu, dass man unter Umständen nicht weiß, wie die Paketfilter und Firewalls konfiguriert sind. Was bleibt, ist oft ein großes Fragezeichen.
Hier hilft nur Experimentieren und Erfahrungen zu sammeln.

Feststellen, ob NMAP korrekt arbeitet

Wer NMAP ernsthaft einsetzen möchte, der sollte prüfen, wie bestimmte NMAP-Kommandos auf das Zielsystem ablaufen. Dazu kann man zum Beispiel Wireshark parallel mitlaufen lassen, um zu sehen, was NMAP bei bestimmten Kommandos an Paketen verschickt. Man sieht dabei auch, mit welchen Paketen das Zielsystem antwortet.

Weitere verwandte Themen:

Teilen:

Produktempfehlungen

Netzwerktechnik-Fibel

Netzwerktechnik-Fibel

Das will ich haben!