Nmap: Unterschied zwischen den Versionen
K Textersetzung - „usw.“ durch „und weitere“ |
Keine Bearbeitungszusammenfassung |
||
Zeile 16: | Zeile 16: | ||
[[Datei:Zenmap.png|mini|400px|Nmap GUI Zenmap]] | [[Datei:Zenmap.png|mini|400px|Nmap GUI Zenmap]] | ||
; ''Nmap'' ist ein [[Freie Software|freier]] [[Portscanner]] zum Scannen und Auswerten von [[Hostrechner|Hosts]] in einem [[Rechnernetz]] | ; ''Nmap'' ist ein [[Freie Software|freier]] [[Portscanner]] zum Scannen und Auswerten von [[Hostrechner|Hosts]] in einem [[Rechnernetz]] | ||
* Der Name steht für ''Network Mapper'' | * Der Name steht für ''Network Mapper'' | ||
; Nmap wurde von einem unter dem [[Nickname]] ''Fyodor'' bekannten [[Hacker]] ursprünglich für das [[Betriebssystem]] [[Linux]] entwickelt | ; Nmap wurde von einem unter dem [[Nickname]] ''Fyodor'' bekannten [[Hacker]] ursprünglich für das [[Betriebssystem]] [[Linux]] entwickelt | ||
* Das textbasierte Programm unterlag bis Version 7.90 einer modifizierten Version der [[GNU General Public License]], als diese durch eine auf ihr basierende eigene Lizenz ersetzt wurde | * Das textbasierte Programm unterlag bis Version 7.90 einer modifizierten Version der [[GNU General Public License]], als diese durch eine auf ihr basierende eigene Lizenz ersetzt wurde | ||
* Nmap kann darüber hinaus auch kostenpflichtig unter einer alternativen Lizenz erworben werden (um es zum Beispiel innerhalb von Nicht-[[GPL]]-Software zu benutzen) | * Nmap kann darüber hinaus auch kostenpflichtig unter einer alternativen Lizenz erworben werden (um es zum Beispiel innerhalb von Nicht-[[GPL]]-Software zu benutzen) | ||
* Neben der textbasierten Variante gibt es noch die grafische Benutzeroberfläche '''NmapFE''' zur komfortablen Einstellung von Nmap, welche mittlerweile durch die '''Zenmap''' genannte GUI abgelöst wurde, die auf UMIT von Adriano Monteiro Marques basiert | * Neben der textbasierten Variante gibt es noch die grafische Benutzeroberfläche '''NmapFE''' zur komfortablen Einstellung von Nmap, welche mittlerweile durch die '''Zenmap''' genannte GUI abgelöst wurde, die auf UMIT von Adriano Monteiro Marques basiert | ||
* Obwohl nmap ursprünglich ein Unix-Werkzeug war, existiert mittlerweile auch eine Portierung auf [[Microsoft Windows|Windows]]-Betriebssysteme | * Obwohl nmap ursprünglich ein Unix-Werkzeug war, existiert mittlerweile auch eine Portierung auf [[Microsoft Windows|Windows]]-Betriebssysteme | ||
* Sie bietet annähernd den vollen Funktionsumfang, hat jedoch einige Einschränkungen.<ref>[https://nmap.org/install/inst-windows.html Englische Seite zu den Einschränkungen unter Windows]</ref> | * Sie bietet annähernd den vollen Funktionsumfang, hat jedoch einige Einschränkungen.<ref>[https://nmap.org/install/inst-windows.html Englische Seite zu den Einschränkungen unter Windows]</ref> | ||
; Nmap wird in erster Linie für Portscanning (also das Untersuchen der [[Port (Protokoll)|Ports]] eines Hosts) eingesetzt | ; Nmap wird in erster Linie für Portscanning (also das Untersuchen der [[Port (Protokoll)|Ports]] eines Hosts) eingesetzt | ||
* Das Werkzeug wurde ständig erweitert und konnte sich vor allem durch die aktiven Techniken für [[OS-Fingerprinting]] (das Erkennen des eingesetzten Betriebssystems auf dem Zielhost) einen Namen machen | * Das Werkzeug wurde ständig erweitert und konnte sich vor allem durch die aktiven Techniken für [[OS-Fingerprinting]] (das Erkennen des eingesetzten Betriebssystems auf dem Zielhost) einen Namen machen | ||
* Auch das Mapping von Umgebungen (Erkennen aktiver Hosts) ist möglich | * Auch das Mapping von Umgebungen (Erkennen aktiver Hosts) ist möglich | ||
* Darüber hinaus lassen sich mit Nmap vereinzelt die hinter einem [[Port (Protokoll)|Port]] stehenden Dienste und deren Version auslesen | * Darüber hinaus lassen sich mit Nmap vereinzelt die hinter einem [[Port (Protokoll)|Port]] stehenden Dienste und deren Version auslesen | ||
; Nmap ist sowohl bei Angreifern als auch bei [[Systemadministrator|Administratoren]] sehr beliebt, da es sehr effizient und zuverlässig arbeitet | ; Nmap ist sowohl bei Angreifern als auch bei [[Systemadministrator|Administratoren]] sehr beliebt, da es sehr effizient und zuverlässig arbeitet | ||
* Es ist ein wichtiger Bestandteil bei der Netzwerkdiagnose und Auswertung von netzwerkfähigen Systemen | * Es ist ein wichtiger Bestandteil bei der Netzwerkdiagnose und Auswertung von netzwerkfähigen Systemen | ||
* Unter anderem wird es auch vom [[Vulnerability Scanner]] [[Nessus (Software)|Nessus]] zur Erfassung offener Ports eingesetzt | * Unter anderem wird es auch vom [[Vulnerability Scanner]] [[Nessus (Software)|Nessus]] zur Erfassung offener Ports eingesetzt | ||
[[Datei:Nmap_4.20_screenshot.png|250px| Beschreibung= Ausgabe von Nmap gegen wikipedia.de]] | [[Datei:Nmap_4.20_screenshot.png|250px| Beschreibung= Ausgabe von Nmap gegen wikipedia.de]] | ||
Zeile 53: | Zeile 53: | ||
; BESCHREIBUNG | ; BESCHREIBUNG | ||
; Nmap ("Network Mapper") ist ein Open-Source-Werkzeug für die Netzwerkanalyse und Sicherheitsüberprüfung | ; Nmap ("Network Mapper") ist ein Open-Source-Werkzeug für die Netzwerkanalyse und Sicherheitsüberprüfung | ||
* Es wurde entworfen, um große Netzwerke | * Es wurde entworfen, um große Netzwerke | ||
; schnell zu scannen, auch wenn es bei einzelnen Hosts auch gut funktioniert | ; schnell zu scannen, auch wenn es bei einzelnen Hosts auch gut funktioniert | ||
* Nmap benutzt rohe IP-Pakete auf neuartige Weise, um festzustellen, | * Nmap benutzt rohe IP-Pakete auf neuartige Weise, um festzustellen, | ||
welche Hosts im Netzwerk verfügbar sind, welche Dienste (Anwendungsname und -version) diese Hosts bieten, welche Betriebssysteme (und Versionen davon) darauf laufen, welche Art von Paketfiltern/-Firewalls benutzt werden sowie Dutzende anderer Eigenschaften | welche Hosts im Netzwerk verfügbar sind, welche Dienste (Anwendungsname und -version) diese Hosts bieten, welche Betriebssysteme (und Versionen davon) darauf laufen, welche Art von Paketfiltern/-Firewalls benutzt werden sowie Dutzende anderer Eigenschaften | ||
* Auch wenn Nmap üblicherweise für Sicherheitsüberprüfungen verwendet wird, wird es von vielen Systemen und Netzwerkadministratoren für Routineaufgaben benutzt, beispielsweise Netzwerkinventarisierung, Verwaltung von Ablaufplänen für Dienstaktualisierungen und die Überwachung von Betriebszeiten von Hosts oder Diensten | * Auch wenn Nmap üblicherweise für Sicherheitsüberprüfungen verwendet wird, wird es von vielen Systemen und Netzwerkadministratoren für Routineaufgaben benutzt, beispielsweise Netzwerkinventarisierung, Verwaltung von Ablaufplänen für Dienstaktualisierungen und die Überwachung von Betriebszeiten von Hosts oder Diensten | ||
; Die Ausgabe von Nmap ist eine Liste gescannter Ziele mit zusätzlicher Information zu jedem, abhängig von den benutzten Optionen | ; Die Ausgabe von Nmap ist eine Liste gescannter Ziele mit zusätzlicher Information zu jedem, abhängig von den benutzten Optionen | ||
* Die entscheidende Information dabei steht in der "Tabelle der interessanten Ports" | * Die entscheidende Information dabei steht in der "Tabelle der interessanten Ports" | ||
* Diese Tabelle listet die Portnummer und das -protokoll sowie den Dienstnamen und -zustand auf | * Diese Tabelle listet die Portnummer und das -protokoll sowie den Dienstnamen und -zustand auf | ||
* Der Zustand ist entweder offen, gefiltert, geschlossen oder ungefiltert | * Der Zustand ist entweder offen, gefiltert, geschlossen oder ungefiltert | ||
* Offen bedeutet, dass auf diesem Port des Zielrechners eine | * Offen bedeutet, dass auf diesem Port des Zielrechners eine | ||
; Anwendung auf eingehende Verbindungen/Pakete lauscht | ; Anwendung auf eingehende Verbindungen/Pakete lauscht | ||
* Gefiltert bedeutet, dass eine Firewall, ein Filter oder ein anderes Netzwerkhindernis den Port blockiert, so dass Nmap nicht wissen kann, ob er offen oder geschlossen ist | * Gefiltert bedeutet, dass eine Firewall, ein Filter oder ein anderes Netzwerkhindernis den Port blockiert, so dass Nmap nicht wissen kann, ob er offen oder geschlossen ist | ||
* Für geschlossene Ports gibt es keine Anwendung, die auf ihnen lauscht, auch wenn sie jederzeit geöffnet werden könnten | * Für geschlossene Ports gibt es keine Anwendung, die auf ihnen lauscht, auch wenn sie jederzeit geöffnet werden könnten | ||
* Als ungefiltert werden Ports dann klassifiziert, wenn sie auf Nmaps Testpakete antworten, Nmap aber nicht feststellen kann, ob sie offen oder gechlossen sind | * Als ungefiltert werden Ports dann klassifiziert, wenn sie auf Nmaps Testpakete antworten, Nmap aber nicht feststellen kann, ob sie offen oder gechlossen sind | ||
* Nmap gibt die Zustandskombinationen offen|gefiltert und geschlossen|gefiltert an, wenn es nicht feststellen kann, welcher der beiden Zustände für einen Port zutrifft | * Nmap gibt die Zustandskombinationen offen|gefiltert und geschlossen|gefiltert an, wenn es nicht feststellen kann, welcher der beiden Zustände für einen Port zutrifft | ||
* Die Port-Tabelle enthält eventuell auch Details zur Softwareversion, sofern eine Versionserkennung verlangt wurde | * Die Port-Tabelle enthält eventuell auch Details zur Softwareversion, sofern eine Versionserkennung verlangt wurde | ||
* Wurde ein IP-Protokoll-Scan verlangt (-sO), dann bietet Nmap Angaben über die unterstützten IP-Protokolle statt über lauschende Ports | * Wurde ein IP-Protokoll-Scan verlangt (-sO), dann bietet Nmap Angaben über die unterstützten IP-Protokolle statt über lauschende Ports | ||
Zusätzlich zur Tabelle der interessanten Ports kann Nmap weitere Angaben über Ziele bieten, darunter Reverse-DNS-Namen, Mutmaßungen über das benutzte Betriebssystem, Gerätearten und MAC-Adressen | Zusätzlich zur Tabelle der interessanten Ports kann Nmap weitere Angaben über Ziele bieten, darunter Reverse-DNS-Namen, Mutmaßungen über das benutzte Betriebssystem, Gerätearten und MAC-Adressen | ||
: Einen typischen Nmap-Scan sehen Sie in Beispiel 1 | : Einen typischen Nmap-Scan sehen Sie in Beispiel 1 | ||
* Die einzigen in diesem Beispiel benutzten Nmap-Argumente sind -A für die Betriebssystem- und Versionserkennung, Script-Scanning und Traceroute und -T4 für eine schnellere Ausführung | * Die einzigen in diesem Beispiel benutzten Nmap-Argumente sind -A für die Betriebssystem- und Versionserkennung, Script-Scanning und Traceroute und -T4 für eine schnellere Ausführung | ||
* Danach kommen die Namen der Zielhosts | * Danach kommen die Namen der Zielhosts | ||
Beispiel 1. Ein repräsentativer Nmap-Scan | Beispiel 1. Ein repräsentativer Nmap-Scan | ||
# nmap -A -T4 scanme.nmap.org | |||
Starting Nmap ( https://nmap.org ) | |||
Interesting ports on scanme.nmap.org (64.13.134.52): | |||
Not shown: 994 filtered ports | |||
PORT STATE SERVICE VERSION | |||
22/tcp open ssh OpenSSH 4.3 (protocol 2.0) | |||
25/tcp closed smtp | |||
53/tcp open domain ISC BIND 9.3.4 | |||
70/tcp closed gopher | |||
80/tcp open http Apache httpd 2.2.2 ((Fedora)) | |||
|_ HTML title: Go ahead and ScanMe! | |||
113/tcp closed auth | |||
Device type: general purpose | |||
Running: Linux 2.6.X | |||
OS details: Linux 2.6.20-1 (Fedora Core 5) | |||
TRACEROUTE (using port 80/tcp) | |||
HOP RTT ADDRESS | |||
[Cut first seven hops for brevity] | |||
8 10.59 so-4-2-0.mpr3.pao1.us.above.net (64.125.28.142) | |||
9 11.00 metro0.sv.svcolo.com (208.185.168.173) | |||
10 9.93 scanme.nmap.org (64.13.134.52) | |||
Nmap done: 1 IP address (1 host up) scanned in 17.00 seconds | |||
Die neueste Version von Nmap erhält man unter https://nmap.org, und die neueste Version der Manpage ist unter https://nmap.org/book/man.html verfügbar | Die neueste Version von Nmap erhält man unter https://nmap.org, und die neueste Version der Manpage ist unter https://nmap.org/book/man.html verfügbar | ||
== Installation == | == Installation == | ||
Zeile 121: | Zeile 121: | ||
=== Einfacher Portscan === | === Einfacher Portscan === | ||
==== nmap ohne Optionen ==== | ==== nmap ohne Optionen ==== | ||
* Es geht darum herauszufinden, ob ein Port offen ist, welche Anwendung dahinter läuft und ob dort Sicherheitslücken und Schwachstellen zu vermuten sind | * Es geht darum herauszufinden, ob ein Port offen ist, welche Anwendung dahinter läuft und ob dort Sicherheitslücken und Schwachstellen zu vermuten sind | ||
* Ein einfacher Port-Scanner wird alle Ports pauschal in zwei oder drei Zustände einteilen: | * Ein einfacher Port-Scanner wird alle Ports pauschal in zwei oder drei Zustände einteilen: | ||
# offen, | # offen, | ||
# geschlossen, | # geschlossen, | ||
# gefiltert / geblockt (offen/geschlossen) jeweils mit und ohne Antwort | # gefiltert / geblockt (offen/geschlossen) jeweils mit und ohne Antwort | ||
=== Ziele festlegen === | === Ziele festlegen === | ||
* NMAP ist bei der Angabe des Scan-Ziels sehr flexibel | * NMAP ist bei der Angabe des Scan-Ziels sehr flexibel | ||
* Das kann ein Domain-Name sein, eine IP-Adresse oder ein ganzes Subnetz | * Das kann ein Domain-Name sein, eine IP-Adresse oder ein ganzes Subnetz | ||
Domain: www.XXX.XX | |||
IP-Adresse: 192.168.1.1 | |||
Subnetz: 192.168.1.1/24 | |||
Subnetz: 192.168.1.* | |||
* Man sollte einen Port-Scan nicht auf ein ganzes Subnetz anwenden | * Man sollte einen Port-Scan nicht auf ein ganzes Subnetz anwenden | ||
* Ein ganzes Subnetz zu scannen, kann sehr lange dauern, wenn die Hosts gefilterte Ports haben | * Ein ganzes Subnetz zu scannen, kann sehr lange dauern, wenn die Hosts gefilterte Ports haben | ||
* Die Anzahl der Ports reicht von 1 bis 65.535 | * Die Anzahl der Ports reicht von 1 bis 65.535 | ||
* NMAP scannt standardmäßig nur etwa '''1.000''' der meistgenutzten Ports, die in der Datenbank "nmap-services" aufgelistet sind | * NMAP scannt standardmäßig nur etwa '''1.000''' der meistgenutzten Ports, die in der Datenbank "nmap-services" aufgelistet sind | ||
* Mit der Option "-F" (für engl. fast, dt. schnell) kann man den Port-Scan sogar auf die 100 meistgenutzten Ports beschränken | * Mit der Option "-F" (für engl. fast, dt. schnell) kann man den Port-Scan sogar auf die 100 meistgenutzten Ports beschränken | ||
* Interessante Ports scannen mit der Option "-p": | * Interessante Ports scannen mit der Option "-p": | ||
{| class="wikitable" | {| class="wikitable" | ||
Zeile 162: | Zeile 162: | ||
* Ein Windows-7-Rechner scannt einen Linux-PC: | * Ein Windows-7-Rechner scannt einen Linux-PC: | ||
** nmap 172.16.24.102 (Nmap scan report for) | ** nmap 172.16.24.102 (Nmap scan report for) | ||
* Die IP-Adresse gehört also dem Linux-Rechner, den wir mit Nmap auf offene Ports hin überprüfen | * Die IP-Adresse gehört also dem Linux-Rechner, den wir mit Nmap auf offene Ports hin überprüfen | ||
* Das Ergebnis: | * Das Ergebnis: | ||
**997 Ports erkennt Nmap als geschlossen (closed ports) | **997 Ports erkennt Nmap als geschlossen (closed ports) | ||
Zeile 172: | Zeile 172: | ||
==== Netzwerkbereiche ==== | ==== Netzwerkbereiche ==== | ||
=====Bereich auswählen===== | =====Bereich auswählen===== | ||
* Nmap betrachtet alles in der Kommandozeile, was keine Option (oder ein Argument einer Option) ist, als Bezeichnung eines Zielhosts | * Nmap betrachtet alles in der Kommandozeile, was keine Option (oder ein Argument einer Option) ist, als Bezeichnung eines Zielhosts | ||
* Der einfachste Fall ist die Beschreibung einer IP-Zieladresse oder eines Zielhostnamens zum Scannen | * Der einfachste Fall ist die Beschreibung einer IP-Zieladresse oder eines Zielhostnamens zum Scannen | ||
* Manchmal möchten Sie ein ganzes Netzwerk benachbarter Hosts scannen | * Manchmal möchten Sie ein ganzes Netzwerk benachbarter Hosts scannen | ||
* Dafür unterstützt Nmap Adressen im CIDR-Stil [https://de.wikipedia.org/wiki/Classless_Inter-Domain_Routing] | * Dafür unterstützt Nmap Adressen im CIDR-Stil [https://de.wikipedia.org/wiki/Classless_Inter-Domain_Routing] | ||
* Sie können an eine IPv4-Adresse oder einen Hostnamen angefügt werden | * Sie können an eine IPv4-Adresse oder einen Hostnamen angefügt werden | ||
* Nmap wird alle IP-Adressen scannen, bei denen die ersten <numbits> mit denen der gegebenen IP oder des gegebenen Hostnamens übereinstimmen | * Nmap wird alle IP-Adressen scannen, bei denen die ersten <numbits> mit denen der gegebenen IP oder des gegebenen Hostnamens übereinstimmen | ||
* Z.B.: würde 192.168.10.0/24 die 256 Hosts zwischen 192.168.10.0 (binär: 1100.0000.1010.1000.0000.1010.0000.0000) und 192.168.10.255 (binär: 1100.0000.1010.1000.0000.1010.1111.1111, inklusive) scannen | * Z.B.: würde 192.168.10.0/24 die 256 Hosts zwischen 192.168.10.0 (binär: 1100.0000.1010.1000.0000.1010.0000.0000) und 192.168.10.255 (binär: 1100.0000.1010.1000.0000.1010.1111.1111, inklusive) scannen | ||
* 192.168.10.40/24 würde genau dieselben Ziele scannen | * 192.168.10.40/24 würde genau dieselben Ziele scannen | ||
* Dadurch, dass der Host | * Dadurch, dass der Host | ||
scanme.nmap.org | |||
die IP-Adresse 64.13.134.52 hat, würde die Angabe | die IP-Adresse 64.13.134.52 hat, würde die Angabe | ||
scanme.nmap.org/16 | |||
die 65.536 IP-Adressen zwischen 64.13.0.0 und 64.13.255.255 scannen | die 65.536 IP-Adressen zwischen 64.13.0.0 und 64.13.255.255 scannen | ||
* Der kleinste erlaubte Wert ist /0, der das gesamte Internet scannt | * Der kleinste erlaubte Wert ist /0, der das gesamte Internet scannt | ||
* Der größte Wert ist /32 und scannt lediglich den Host mit angegebenem Namen oder IP-Adresse, da alle Adressen-Bit festgelegt sind | * Der größte Wert ist /32 und scannt lediglich den Host mit angegebenem Namen oder IP-Adresse, da alle Adressen-Bit festgelegt sind | ||
=====Teilbereich auswählen===== | =====Teilbereich auswählen===== | ||
* Die CIDR-Notation ist kurz, aber nicht immer flexibel genug | * Die CIDR-Notation ist kurz, aber nicht immer flexibel genug | ||
* So möchte man beispielsweise 192.168.0.0/16 scannen, aber IPs auslassen, die mit .0 oder .255 enden, weil sie als Unternetzwerk und Broadcast-Adressen benutzt werden können | * So möchte man beispielsweise 192.168.0.0/16 scannen, aber IPs auslassen, die mit .0 oder .255 enden, weil sie als Unternetzwerk und Broadcast-Adressen benutzt werden können | ||
* Nmap unterstützt das in Form einer Oktett-Bereichsadressierung | * Nmap unterstützt das in Form einer Oktett-Bereichsadressierung | ||
* Statt eine normale IP-Adresse anzugeben, kann man eine mit Kommata getrennte Liste von Zahlen oder Bereichen für jedes Oktett angeben | * Statt eine normale IP-Adresse anzugeben, kann man eine mit Kommata getrennte Liste von Zahlen oder Bereichen für jedes Oktett angeben | ||
* Z.B. überspringt 192.168.0-255.1-254 alle Adressen im Bereich, die mit .0 oder .255 enden, und 192.168.3-5,7.1 scannt die vier Adressen 192.168.3.1, 192.168.4.1, 192.168.5.1 und 192.168.7.1 | * Z.B. überspringt 192.168.0-255.1-254 alle Adressen im Bereich, die mit .0 oder .255 enden, und 192.168.3-5,7.1 scannt die vier Adressen 192.168.3.1, 192.168.4.1, 192.168.5.1 und 192.168.7.1 | ||
* Beide Bereichsgrenzen können weggelassen werden, die Standardwerte sind 0 für die linke und 255 für die rechte Grenze | * Beide Bereichsgrenzen können weggelassen werden, die Standardwerte sind 0 für die linke und 255 für die rechte Grenze | ||
* Wenn Sie allein '''-''' benutzen, ist das identisch mit 0-255 | * Wenn Sie allein '''-''' benutzen, ist das identisch mit 0-255 | ||
* Im ersten Oktett dann '''0-''' benutzen, damit die Zielangabe nicht wie eine Kommandozeilenoption aussieht | * Im ersten Oktett dann '''0-''' benutzen, damit die Zielangabe nicht wie eine Kommandozeilenoption aussieht | ||
* Die Angabe 0-255.0-255.13.37 führt einen internetweiten Scan über alle IP-Adressen aus, die mit 13.37 enden | * Die Angabe 0-255.0-255.13.37 führt einen internetweiten Scan über alle IP-Adressen aus, die mit 13.37 enden | ||
* Diese Art von breiter Abtastung kann bei Internet-Umfragen und -Forschungen hilfreich sein | * Diese Art von breiter Abtastung kann bei Internet-Umfragen und -Forschungen hilfreich sein | ||
====IPv6==== | ====IPv6==== | ||
* IPv6-Adressen können nur durch ihre vollständige IPv6-Adresse oder ihren Hostnamen angegeben werden | * IPv6-Adressen können nur durch ihre vollständige IPv6-Adresse oder ihren Hostnamen angegeben werden | ||
* CIDR und Oktettbereiche werden für IPv6 nicht unterstützt, weil sie selten nützlich sind | * CIDR und Oktettbereiche werden für IPv6 nicht unterstützt, weil sie selten nützlich sind | ||
====Zielauswahl==== | ====Zielauswahl==== | ||
* Auch wenn Ziele normalerweise in der Kommandozeile angegeben werden, gibt es auch die folgenden Optionen, um die Zielauswahl zu steuern: | * Auch wenn Ziele normalerweise in der Kommandozeile angegeben werden, gibt es auch die folgenden Optionen, um die Zielauswahl zu steuern: | ||
-iL <inputfilename> (Eingabe aus einer Liste) | |||
* Eine sehr lange Liste von Hosts in der Kommandozeile anzugeben ist oft sehr umständlich, kommt aber sehr häufig vor | * Eine sehr lange Liste von Hosts in der Kommandozeile anzugeben ist oft sehr umständlich, kommt aber sehr häufig vor | ||
* Der DHCP-Server beispielsweise exportiert vielleicht eine Liste von 10.000 aktuellen Adresszuweisungen (engl. leases), die Sie scannen möchten | * Der DHCP-Server beispielsweise exportiert vielleicht eine Liste von 10.000 aktuellen Adresszuweisungen (engl. leases), die Sie scannen möchten | ||
* Man möchte beispielsweise alle IP-Adressen außer denjenigen scannen, um Hosts , die unautorisierte statische IP-Adressen benutzen zu finden | * Man möchte beispielsweise alle IP-Adressen außer denjenigen scannen, um Hosts , die unautorisierte statische IP-Adressen benutzen zu finden | ||
* Die Liste der zu scannenden Hosts und übergibt deren Dateinamen als Argument zur Option '''-iL''' an Nmap | * Die Liste der zu scannenden Hosts und übergibt deren Dateinamen als Argument zur Option '''-iL''' an Nmap | ||
* Die Einträge dürfen alle Formate haben, die Nmap auf der Kommandozeile akzeptiert (IP-Adresse, Hostname, CIDR, IPv6 oder Oktettbereiche) | * Die Einträge dürfen alle Formate haben, die Nmap auf der Kommandozeile akzeptiert (IP-Adresse, Hostname, CIDR, IPv6 oder Oktettbereiche) | ||
* Alle Einträge müssen durch ein oder mehrere Leerzeichen, Tabulatoren oder Zeilenumbrüche getrennt sein | * Alle Einträge müssen durch ein oder mehrere Leerzeichen, Tabulatoren oder Zeilenumbrüche getrennt sein | ||
* Wenn man einen Bindestrich (-) als Dateinamen angibt, liest Nmap die Hosts von der Standardeingabe statt aus einer normalen Datei | * Wenn man einen Bindestrich (-) als Dateinamen angibt, liest Nmap die Hosts von der Standardeingabe statt aus einer normalen Datei | ||
-iR <num hosts> (zufällige Auswahl von Zielen) | |||
====Internetumfragen==== | ====Internetumfragen==== | ||
* Für internetweite Umfragen und andere Forschungsaktivitäten möchte man Ziele vielleicht zufällig auswählen | * Für internetweite Umfragen und andere Forschungsaktivitäten möchte man Ziele vielleicht zufällig auswählen | ||
* Das kann man mit der Option '''-iR''', die als Argument die Anzahl der zu erzeugenden IPs annimmt | * Das kann man mit der Option '''-iR''', die als Argument die Anzahl der zu erzeugenden IPs annimmt | ||
* Nmap lässt automatisch bestimmte unerwünschte IPs aus, wie solche in privaten, Multicast- oder unbesetzten Adressbereichen | * Nmap lässt automatisch bestimmte unerwünschte IPs aus, wie solche in privaten, Multicast- oder unbesetzten Adressbereichen | ||
* Für einen endlosen Scan kann man das Argument '''0''' angeben | * Für einen endlosen Scan kann man das Argument '''0''' angeben | ||
====Beispiele==== | ====Beispiele==== | ||
* Befehl | * Befehl | ||
nmap -sS -PS80 -iR 0 -p 80 | |||
sucht Webserver , auf denen man stöbern kann | sucht Webserver , auf denen man stöbern kann | ||
*Befehl | *Befehl | ||
--exclude <host1>[,<host2>[,...]] (Ziele ausklammern) | |||
gibt eine mit Kommata getrennte Liste von Zielen an, die vom Scan ausgeschlossen sein sollen, selbst wenn sie in den angegebenen Netzwerkbereich fallen | gibt eine mit Kommata getrennte Liste von Zielen an, die vom Scan ausgeschlossen sein sollen, selbst wenn sie in den angegebenen Netzwerkbereich fallen | ||
* Die übergebene Liste benutzt die normale Nmap-Syntax und kann folglich Hostnamen, CIDR-Netzblöcke, Oktettbereiche und weitere enthalten | * Die übergebene Liste benutzt die normale Nmap-Syntax und kann folglich Hostnamen, CIDR-Netzblöcke, Oktettbereiche und weitere enthalten | ||
*Das kann nützlich sein, wenn das zu scannende Netzwerk hochkritische Server und Systeme enthält, die man nicht anfassen darf, weil sie bekanntermaßen ungünstig auf Port-Scans reagieren | *Das kann nützlich sein, wenn das zu scannende Netzwerk hochkritische Server und Systeme enthält, die man nicht anfassen darf, weil sie bekanntermaßen ungünstig auf Port-Scans reagieren | ||
* Oder Unternetze, die von anderen Leuten administriert werden | * Oder Unternetze, die von anderen Leuten administriert werden | ||
*Befehl | *Befehl | ||
--excludefile<-exclude_file> (Liste aus Datei ausklammern) | |||
* Das bietet dieselbe Funktionalität wie die Option '''--exclude''' | * Das bietet dieselbe Funktionalität wie die Option '''--exclude''' | ||
* Unterschied: die ausgeklammerten Ziele in der mit Zeilenumbrüchen, Leerzeichen oder Tabulatoren getrennten Datei <exclude_file> statt auf der Kommandozeile angegeben werden | * Unterschied: die ausgeklammerten Ziele in der mit Zeilenumbrüchen, Leerzeichen oder Tabulatoren getrennten Datei <exclude_file> statt auf der Kommandozeile angegeben werden | ||
==== ANGABE VON ZIELEN ==== | ==== ANGABE VON ZIELEN ==== | ||
Nmap betrachtet alles in der Kommandozeile, was keine Option (oder ein Argument einer Option) ist, als Bezeichnung eines Zielhosts | Nmap betrachtet alles in der Kommandozeile, was keine Option (oder ein Argument einer Option) ist, als Bezeichnung eines Zielhosts | ||
* Der einfachste Fall ist die Beschreibung einer IP-Zieladresse oder eines Zielhostnamens zum Scannen | |||
Manchmal möchten Sie ein ganzes Netzwerk benachbarter Hosts scannen | Manchmal möchten Sie ein ganzes Netzwerk benachbarter Hosts scannen | ||
Dadurch, dass der Host scanme.nmap.org die IP-Adresse 64.13.134.52 hat, würde die Angabe scanme.nmap.org/16 die 65.536 IP-Adressen zwischen 64.13.0.0 und 64.13.255.255 scannen | * Dafür unterstützt Nmap Adressen im CIDR-Stil | ||
* Sie können /numbits an eine IPv4-Adresse oder einen Hostnamen anfügen, und Nmap wird alle IP-Adressen scannen, bei denen die ersten numbits mit denen der gegebenen IP oder des gegebenen Hostnamens übereinstimmen | |||
* Zum Beispiel würde 192.168.10.0/24 die 256 Hosts zwischen 192.168.10.0 (binär: 11000000 10101000 00001010 00000000) und 192.168.10.255 (binär: 11000000 10101000 00001010 11111111, inklusive) scannen. 192.168.10.40/24 würde genau dieselben Ziele scannen | |||
Dadurch, dass der Host scanme.nmap.org die IP-Adresse 64.13.134.52 hat, würde die Angabe scanme.nmap.org/16 die 65.536 IP-Adressen zwischen 64.13.0.0 und 64.13.255.255 scannen | |||
* Der kleinste erlaubte Wert ist /0, der das gesamte Internet scannt | |||
* Der größte Wert ist /32 und scannt lediglich den Host mit angegebenem Namen oder IP-Adresse, da alle Adressen-Bits festgelegt sind | |||
Die CIDR-Notation ist kurz, aber nicht immer flexibel genug | Die CIDR-Notation ist kurz, aber nicht immer flexibel genug | ||
Statt eine normale IP-Adresse anzugeben, können Sie eine mit Kommata getrennte Liste von Zahlen oder Bereichen für jedes Oktett angeben | * Vielleicht möchten Sie beispielsweise 192.168.0.0/16 scannen, aber IPs auslassen, die mit .0 oder .255 enden, weil sie als Unternetzwerk und Broadcast-Adressen benutzt werden können | ||
* Nmap unterstützt das in Form einer Oktett-Bereichsadressierung | |||
Statt eine normale IP-Adresse anzugeben, können Sie eine mit Kommata getrennte Liste von Zahlen oder Bereichen für jedes Oktett angeben | |||
* Zum Beispiel überspringt 192.168.0-255.1-254 alle Adressen im Bereich, die mit .0 oder .255 enden, und 192.168.3-5,7.1 scannt die vier Adressen 192.168.3.1, 192.168.4.1, 192.168.5.1 und 192.168.7.1 | |||
* Beide Bereichsgrenzen können weggelassen werden, die Standardwerte sind 0 für die linke und 255 für die rechte Grenze | |||
* Wenn Sie allein - benutzen, ist das identisch mit 0-255, aber denken Sie daran, im ersten Oktett 0- zu benutzen, damit die Zielangabe nicht wie eine Kommandozeilenoption aussieht | |||
* Diese Bereiche müssen nicht auf die endgültigen Oktetts beschränkt sein: die Angabe 0-255.0-255.13.37 führt einen internetweiten Scan über alle IP-Adressen aus, die mit 13.37 enden | |||
* Diese Art von breiter Abtastung kann bei Internet-Umfragen und -Forschungen hilfreich sein | |||
IPv6-Adressen können nur durch ihre vollständige IPv6-Adresse oder ihren Hostnamen angegeben werden | IPv6-Adressen können nur durch ihre vollständige IPv6-Adresse oder ihren Hostnamen angegeben werden | ||
* CIDR und Oktettbereiche werden für IPv6 nicht unterstützt, weil sie selten nützlich sind | |||
Nmap akzeptiert in der Kommandozeile mehrere Host-Angaben, die auch nicht vom selben Typ sein müssen | Nmap akzeptiert in der Kommandozeile mehrere Host-Angaben, die auch nicht vom selben Typ sein müssen | ||
* Der Befehl nmap scanme.nmap.org 192.168.0.0/8 10.0.0,1,3-7.- macht also das, was Sie erwarten würden | |||
Auch wenn Ziele normalerweise in der Kommandozeile angegeben werden, gibt es auch die folgenden Optionen, um die Zielauswahl zu steuern: | Auch wenn Ziele normalerweise in der Kommandozeile angegeben werden, gibt es auch die folgenden Optionen, um die Zielauswahl zu steuern: | ||
-iL inputfilename (Eingabe aus einer Liste) | -iL inputfilename (Eingabe aus einer Liste) | ||
Eine sehr lange Liste von Hosts in der Kommandozeile anzugeben ist oft sehr umständlich, kommt aber sehr häufig vor | Eine sehr lange Liste von Hosts in der Kommandozeile anzugeben ist oft sehr umständlich, kommt aber sehr häufig vor | ||
* Ihr DHCP-Server beispielsweise exportiert vielleicht eine Liste von 10.000 aktuellen Adresszuweisungen (engl. oder vielleicht möchten Sie alle IP-Adressen außer denjenigen scannen, um Hosts zu finden, die unautorisierte statische IP-Adressen benutzen | |||
* Erzeugen Sie einfach die Liste der zu scannenden Hosts und übergeben Sie deren Dateinamen als Argument zur Option -iL an Nmap | |||
* Die Einträge dürfen alle Formate haben, die Nmap auf der Kommandozeile akzeptiert (IP-Adresse, Hostname, CIDR, IPv6 oder Oktettbereiche) | |||
* Alle Einträge müssen durch ein oder mehrere Leerzeichen, Tabulatoren oder Zeilenumbrüche getrennt sein | |||
* Wenn Sie einen Bindestrich (-) als Dateinamen angeben, liest Nmap die Hosts von der Standardeingabe statt aus einer normalen Datei | |||
-iR num hosts (zufällige Auswahl von Zielen) | -iR num hosts (zufällige Auswahl von Zielen) | ||
Für internetweite Umfragen und andere Forschungsaktivitäten möchten Sie Ziele vielleicht zufällig auswählen | Für internetweite Umfragen und andere Forschungsaktivitäten möchten Sie Ziele vielleicht zufällig auswählen | ||
* Das kann man mit der Option -iR, die als Argument die Anzahl der zu erzeugenden IPs annimmt | |||
* Nmap lässt automatisch bestimmte unerwünschte IPs aus, wie solche in privaten, Multicast- oder unbesetzten Adressbereichen | |||
* Für einen endlosen Scan kann man das Argument 0 angeben | |||
* Denken Sie aber daran, dass manche Netzwerkadministratoren sich gegen unautorisierte Scans ihrer Netzwerke sträuben | |||
* Lesen Sie "" sorgfältig, bevor Sie -iR benutzen | |||
* Falls Sie mal an einem regnerischen Tag wirklich Langeweile haben, probieren Sie einmal den Befehl nmap -sS -PS80 -iR 0 -p 80 aus, um zufällig Webserver zu finden, auf denen Sie herumstöbern können | |||
--exclude host1[,host2[,...]] (Ziele ausklammern) | --exclude host1[,host2[,...]] (Ziele ausklammern) | ||
Gibt eine mit Kommata getrennte Liste von Zielen an, die vom Scan ausgeschlossen sein sollen, selbst wenn sie in den angegebenen Netzwerkbereich fallen | Gibt eine mit Kommata getrennte Liste von Zielen an, die vom Scan ausgeschlossen sein sollen, selbst wenn sie in den angegebenen Netzwerkbereich fallen | ||
* Die übergebene Liste benutzt die normale Nmap-Syntax und kann folglich Hostnamen, CIDR-Netzblöcke, Oktettbereiche und weitere enthalten | |||
* Das kann nützlich sein, wenn das zu scannende Netzwerk hochkritische Server und Systeme enthält, die man nicht anfassen darf, weil sie bekanntermaßen ungünstig auf Port-Scans reagieren, oder Unternetze, die von anderen Leuten administriert werden | |||
--excludefile exclude_file (Liste aus Datei ausklammern) | --excludefile exclude_file (Liste aus Datei ausklammern) | ||
Das bietet dieselbe Funktionalität wie die Option --exclude, mit dem Unterschied, dass die ausgeklammerten Ziele in der mit Zeilenumbrüchen, Leerzeichen oder Tabulatoren getrennten Datei exclude_file statt auf der Kommandozeile angegeben werden | Das bietet dieselbe Funktionalität wie die Option --exclude, mit dem Unterschied, dass die ausgeklammerten Ziele in der mit Zeilenumbrüchen, Leerzeichen oder Tabulatoren getrennten Datei exclude_file statt auf der Kommandozeile angegeben werden | ||
=== Dienste identifizieren === | === Dienste identifizieren === | ||
* Die Ports 25/tcp, 80/tcp und 53/udp sind offen | * Die Ports 25/tcp, 80/tcp und 53/udp sind offen | ||
* Dank der Datenbank in '''nmap-services''' gibt Nmap noch aus, dass diese Ports wahrscheinlich jeweils zu einem Mailserver (SMTP), Webserver (HTTP) und Nameserver (DNS) gehören | * Dank der Datenbank in '''nmap-services''' gibt Nmap noch aus, dass diese Ports wahrscheinlich jeweils zu einem Mailserver (SMTP), Webserver (HTTP) und Nameserver (DNS) gehören | ||
* Selbst wenn Nmap recht hat und auf dem Server im obigen Beispiel SMTP-, HTTP- und DNS-Server laufen, ist das nicht besonders viel an Information | * Selbst wenn Nmap recht hat und auf dem Server im obigen Beispiel SMTP-, HTTP- und DNS-Server laufen, ist das nicht besonders viel an Information | ||
* Eine genaue Versionsnummer hilft bei der Bestimmung der Exploits, für die ein Server anfällig ist | * Eine genaue Versionsnummer hilft bei der Bestimmung der Exploits, für die ein Server anfällig ist | ||
* Die Versionserkennung hilft Ihnen, an diese Information heranzukommen | * Die Versionserkennung hilft Ihnen, an diese Information heranzukommen | ||
* Nachdem TCP- und/oder UDP-Ports mit einer der anderen Scan-Methoden entdeckt wurden, fragt die Versionserkennung diese Ports ab | * Nachdem TCP- und/oder UDP-Ports mit einer der anderen Scan-Methoden entdeckt wurden, fragt die Versionserkennung diese Ports ab | ||
* Die Datenbank in '''nmap-service-probes''' enthält Testpakete für die Abfrage verschiedenster Dienste und Ausdrücke für den Vergleich und das Parsen der Antworten | * Die Datenbank in '''nmap-service-probes''' enthält Testpakete für die Abfrage verschiedenster Dienste und Ausdrücke für den Vergleich und das Parsen der Antworten | ||
* Nmap versucht, das | * Nmap versucht, das | ||
#Dienstprotokoll zu bestimmen (beispielsweise FTP, SSH, Telnet, HTTP), aber auch | #Dienstprotokoll zu bestimmen (beispielsweise FTP, SSH, Telnet, HTTP), aber auch | ||
Zeile 287: | Zeile 305: | ||
#etwa ob ein X-Server Verbindungen annimmt, | #etwa ob ein X-Server Verbindungen annimmt, | ||
#die SSH-Protokollversion | #die SSH-Protokollversion | ||
#oder der KaZaA-Benutzername | #oder der KaZaA-Benutzername | ||
=== Ausgabe steuern === | === Ausgabe steuern === | ||
Zeile 293: | Zeile 311: | ||
=== BEISPIELE === | === BEISPIELE === | ||
Hier sind einige Anwendungsbeispiele für Nmap, von einfachen und routinemäßigen bis zu etwas komplexeren und esoterischen | Hier sind einige Anwendungsbeispiele für Nmap, von einfachen und routinemäßigen bis zu etwas komplexeren und esoterischen | ||
konkreter zu machen, werden einige echte IP-Adressen und Domainnamen benutzt | * Um die Sache etwas | ||
ersetzen | konkreter zu machen, werden einige echte IP-Adressen und Domainnamen benutzt | ||
Netzwerkadministratoren es nicht, wenn ihre Netzwerke unverlangt gescannt werden, und könnten sich beschweren | * Diese sollten Sie mit Adressen/Namen aus Ihrem eigenen Netzwerk | ||
eine Genehmigung zu verschaffen | ersetzen | ||
* Auch wenn ich nicht der Meinung bin, dass Port-Scans anderer Netzwerke illegal sind oder sein sollten, mögen manche | |||
Netzwerkadministratoren es nicht, wenn ihre Netzwerke unverlangt gescannt werden, und könnten sich beschweren | |||
* Der beste Ansatz ist der, sich zuerst | |||
eine Genehmigung zu verschaffen | |||
Zu Testzwecken haben Sie die Genehmigung, den Host scanme.nmap.org zu scannen | Zu Testzwecken haben Sie die Genehmigung, den Host scanme.nmap.org zu scannen | ||
Testen von Exploits oder Denial-of-Service-Angriffen | * Diese Genehmigung gilt nur für das Scannen mit Nmap und nicht für das | ||
Bandbreite nicht zu erschöpfen | Testen von Exploits oder Denial-of-Service-Angriffen | ||
hostname/IP: scanme.nmap.org ausgeben | * Bitte führen Sie nicht mehr als ein Dutzend Scans pro Tag auf diesem Host durch, um die | ||
nicht existieren | Bandbreite nicht zu erschöpfen | ||
* Falls diese freie Dienstleistung missbraucht wird, wird sie abgeschaltet, und Nmap wird dann Failed to resolve given | |||
hostname/IP: scanme.nmap.org ausgeben | |||
* Diese Genehmigung gilt auch für die Hosts scanme2.nmap.org, scanme3.nmap.org und weitere, auch wenn diese Hosts noch | |||
nicht existieren | |||
nmap -v scanme.nmap.org | nmap -v scanme.nmap.org | ||
Diese Option scannt alle reservierten TCP-Ports auf dem Rechner scanme.nmap.org | Diese Option scannt alle reservierten TCP-Ports auf dem Rechner scanme.nmap.org | ||
* Die Option -v schaltet den ausführlichen Modus an | |||
nmap -sS -O scanme.nmap.org/24 | nmap -sS -O scanme.nmap.org/24 | ||
Startet einen Stealth-SYN-Scan auf allen aktiven Rechnern unter den 256 IPs im Netzwerk der Größe "Klasse C", in dem Scanme sitzt | Startet einen Stealth-SYN-Scan auf allen aktiven Rechnern unter den 256 IPs im Netzwerk der Größe "Klasse C", in dem Scanme sitzt | ||
herauszufinden, welches Betriebssystem auf jedem aktiven Host läuft | * Es versucht auch | ||
notwendig | herauszufinden, welches Betriebssystem auf jedem aktiven Host läuft | ||
* Wegen des SYN-Scans und der Betriebssystemerkennung sind dazu root-Rechte | |||
notwendig | |||
nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127 | nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127 | ||
Startet eine Host-Auflistung und einen TCP-Scan in der ersten Hälfte von allen 255 möglichen acht-Bit-Unternetzen im Klasse-B-Adressraum 198.116 | Startet eine Host-Auflistung und einen TCP-Scan in der ersten Hälfte von allen 255 möglichen acht-Bit-Unternetzen im Klasse-B-Adressraum 198.116 | ||
Dabei wird getestet, ob die Systeme SSH, DNS, POP3 oder IMAP auf ihren Standardports laufen haben oder irgendetwas auf Port 4564 | Dabei wird getestet, ob die Systeme SSH, DNS, POP3 oder IMAP auf ihren Standardports laufen haben oder irgendetwas auf Port 4564 | ||
Ports offen ist, wird eine Versionserkennung benutzt, um festzustellen, welche Anwendung darauf läuft | * Falls einer dieser | ||
Ports offen ist, wird eine Versionserkennung benutzt, um festzustellen, welche Anwendung darauf läuft | |||
nmap -v -iR 100000 -PN -p 80 | nmap -v -iR 100000 -PN -p 80 | ||
Verlangt von Nmap, 100.000 Hosts zufällig auszuwählen und sie nach Webservern (Port 80) zu scannen | Verlangt von Nmap, 100.000 Hosts zufällig auszuwählen und sie nach Webservern (Port 80) zu scannen | ||
* Eine Host-Auflistung wird mit -PN unterbunden, | |||
weil es Verschwendung ist, zuerst eine Reihe von Testpaketen zu senden, um festzustellen, ob ein Host aktiv ist, wenn Sie auf jedem Zielhost ohnehin | weil es Verschwendung ist, zuerst eine Reihe von Testpaketen zu senden, um festzustellen, ob ein Host aktiv ist, wenn Sie auf jedem Zielhost ohnehin | ||
nur einen Port testen | nur einen Port testen | ||
nmap -PN -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20 | nmap -PN -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20 | ||
Das scannt 4096 IPs nach Webservern (ohne sie anzupingen) und speichert die Ausgabe im grepbaren und im XML-Format | Das scannt 4096 IPs nach Webservern (ohne sie anzupingen) und speichert die Ausgabe im grepbaren und im XML-Format | ||
DAS NMAP-BUCH | ; DAS NMAP-BUCH | ||
Auch wenn dieser Reference Guide alle wesentlichen Nmap-Optionen genau beschreibt, kann er nicht vollständig zeigen, wie man diese Features | Auch wenn dieser Reference Guide alle wesentlichen Nmap-Optionen genau beschreibt, kann er nicht vollständig zeigen, wie man diese Features | ||
anwendet, um Aufgaben der realen Welt zu lösen | anwendet, um Aufgaben der realen Welt zu lösen | ||
Discovery and Security Scanning | * Zu diesem Zweck haben wir das Buch Nmap Network Scanning: The Official Nmap Project Guide to Network | ||
wie man häufige Netzwerkaufgaben mit der Nmap Scripting Engine automatisiert | Discovery and Security Scanning | ||
* Es zeigt, wie man Firewalls und Intrusion Detection-Systeme unterwandert, die Performance von Nmap optimiert, und | |||
wie man häufige Netzwerkaufgaben mit der Nmap Scripting Engine automatisiert | |||
* Außerdem enthält es Tipps und Anleitungen für häufige Nmap-Aufgaben | |||
wie die Netzwerkinventarisierung, Penetrationstests, die Erkennung schurkischer Wireless Access Points und das Verhindern von Wurmausbrüchen im | wie die Netzwerkinventarisierung, Penetrationstests, die Erkennung schurkischer Wireless Access Points und das Verhindern von Wurmausbrüchen im | ||
Netzwerk | Netzwerk | ||
frei verfügbar | * Dabei zeigt es mit Beispielen und Diagrammen, wie die Kommunikation auf der Leitung aussieht | ||
* Mehr als die Hälfte des Buches ist online | |||
frei verfügbar | |||
* Weitere Informationen finden Sie unter https://nmap.org/book | |||
Die deutsche Übersetzung dieses Buches von Dinu Gherman ist im Mai 2009 unter dem Titel Nmap: Netzwerke scannen, analysieren und absichern[14] im | Die deutsche Übersetzung dieses Buches von Dinu Gherman ist im Mai 2009 unter dem Titel Nmap: Netzwerke scannen, analysieren und absichern[14] im | ||
Open Source Press[15]-Verlag erschienen | Open Source Press[15]-Verlag erschienen | ||
== Aufruf == | == Aufruf == |
Version vom 30. Mai 2025, 14:12 Uhr
nmap - Netzwerk-Analysewerkzeug, Sicherheits- und Portscanner
Beschreibung
- Network Mapper (nmap)
- Nmap ist ein freier Portscanner zum Scannen und Auswerten von Hosts in einem Rechnernetz
- Was ist Network Scanning?
- Netzwerke scannen und analysieren
- Angeschlossene und aktive Systeme erkennen
- Details zu Diensten, Konfigurationen und Versionen bestimmen
- Netzwerk-Inventarisierung
- Dienste-Aktualisierungen prüfen
- Überwachung von Betriebszeiten, Hosts oder Diensten

- Nmap ist ein freier Portscanner zum Scannen und Auswerten von Hosts in einem Rechnernetz
- Der Name steht für Network Mapper
- Nmap wurde von einem unter dem Nickname Fyodor bekannten Hacker ursprünglich für das Betriebssystem Linux entwickelt
- Das textbasierte Programm unterlag bis Version 7.90 einer modifizierten Version der GNU General Public License, als diese durch eine auf ihr basierende eigene Lizenz ersetzt wurde
- Nmap kann darüber hinaus auch kostenpflichtig unter einer alternativen Lizenz erworben werden (um es zum Beispiel innerhalb von Nicht-GPL-Software zu benutzen)
- Neben der textbasierten Variante gibt es noch die grafische Benutzeroberfläche NmapFE zur komfortablen Einstellung von Nmap, welche mittlerweile durch die Zenmap genannte GUI abgelöst wurde, die auf UMIT von Adriano Monteiro Marques basiert
- Obwohl nmap ursprünglich ein Unix-Werkzeug war, existiert mittlerweile auch eine Portierung auf Windows-Betriebssysteme
- Sie bietet annähernd den vollen Funktionsumfang, hat jedoch einige Einschränkungen.[1]
- Nmap wird in erster Linie für Portscanning (also das Untersuchen der Ports eines Hosts) eingesetzt
- Das Werkzeug wurde ständig erweitert und konnte sich vor allem durch die aktiven Techniken für OS-Fingerprinting (das Erkennen des eingesetzten Betriebssystems auf dem Zielhost) einen Namen machen
- Auch das Mapping von Umgebungen (Erkennen aktiver Hosts) ist möglich
- Darüber hinaus lassen sich mit Nmap vereinzelt die hinter einem Port stehenden Dienste und deren Version auslesen
- Nmap ist sowohl bei Angreifern als auch bei Administratoren sehr beliebt, da es sehr effizient und zuverlässig arbeitet
- Es ist ein wichtiger Bestandteil bei der Netzwerkdiagnose und Auswertung von netzwerkfähigen Systemen
- Unter anderem wird es auch vom Vulnerability Scanner Nessus zur Erfassung offener Ports eingesetzt
Hersteller | Gordon Lyon (Fyodor) und das "Nmap-Developer-Team" |
Betriebssystem | Linux, Unix, macOS, Windows |
Programmiersprache | C, C++, Python, Lua |
Kategorie | Portscanner |
Lizenz | Nmap Public Source License |
Website | nmap.org |
- BESCHREIBUNG
- Nmap ("Network Mapper") ist ein Open-Source-Werkzeug für die Netzwerkanalyse und Sicherheitsüberprüfung
- Es wurde entworfen, um große Netzwerke
- schnell zu scannen, auch wenn es bei einzelnen Hosts auch gut funktioniert
- Nmap benutzt rohe IP-Pakete auf neuartige Weise, um festzustellen,
welche Hosts im Netzwerk verfügbar sind, welche Dienste (Anwendungsname und -version) diese Hosts bieten, welche Betriebssysteme (und Versionen davon) darauf laufen, welche Art von Paketfiltern/-Firewalls benutzt werden sowie Dutzende anderer Eigenschaften
- Auch wenn Nmap üblicherweise für Sicherheitsüberprüfungen verwendet wird, wird es von vielen Systemen und Netzwerkadministratoren für Routineaufgaben benutzt, beispielsweise Netzwerkinventarisierung, Verwaltung von Ablaufplänen für Dienstaktualisierungen und die Überwachung von Betriebszeiten von Hosts oder Diensten
- Die Ausgabe von Nmap ist eine Liste gescannter Ziele mit zusätzlicher Information zu jedem, abhängig von den benutzten Optionen
- Die entscheidende Information dabei steht in der "Tabelle der interessanten Ports"
- Diese Tabelle listet die Portnummer und das -protokoll sowie den Dienstnamen und -zustand auf
- Der Zustand ist entweder offen, gefiltert, geschlossen oder ungefiltert
- Offen bedeutet, dass auf diesem Port des Zielrechners eine
- Anwendung auf eingehende Verbindungen/Pakete lauscht
- Gefiltert bedeutet, dass eine Firewall, ein Filter oder ein anderes Netzwerkhindernis den Port blockiert, so dass Nmap nicht wissen kann, ob er offen oder geschlossen ist
- Für geschlossene Ports gibt es keine Anwendung, die auf ihnen lauscht, auch wenn sie jederzeit geöffnet werden könnten
- Als ungefiltert werden Ports dann klassifiziert, wenn sie auf Nmaps Testpakete antworten, Nmap aber nicht feststellen kann, ob sie offen oder gechlossen sind
- Nmap gibt die Zustandskombinationen offen|gefiltert und geschlossen|gefiltert an, wenn es nicht feststellen kann, welcher der beiden Zustände für einen Port zutrifft
- Die Port-Tabelle enthält eventuell auch Details zur Softwareversion, sofern eine Versionserkennung verlangt wurde
- Wurde ein IP-Protokoll-Scan verlangt (-sO), dann bietet Nmap Angaben über die unterstützten IP-Protokolle statt über lauschende Ports
Zusätzlich zur Tabelle der interessanten Ports kann Nmap weitere Angaben über Ziele bieten, darunter Reverse-DNS-Namen, Mutmaßungen über das benutzte Betriebssystem, Gerätearten und MAC-Adressen
- Einen typischen Nmap-Scan sehen Sie in Beispiel 1
- Die einzigen in diesem Beispiel benutzten Nmap-Argumente sind -A für die Betriebssystem- und Versionserkennung, Script-Scanning und Traceroute und -T4 für eine schnellere Ausführung
- Danach kommen die Namen der Zielhosts
Beispiel 1. Ein repräsentativer Nmap-Scan
# nmap -A -T4 scanme.nmap.org
Starting Nmap ( https://nmap.org ) Interesting ports on scanme.nmap.org (64.13.134.52): Not shown: 994 filtered ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 4.3 (protocol 2.0) 25/tcp closed smtp 53/tcp open domain ISC BIND 9.3.4 70/tcp closed gopher 80/tcp open http Apache httpd 2.2.2 ((Fedora)) |_ HTML title: Go ahead and ScanMe! 113/tcp closed auth Device type: general purpose Running: Linux 2.6.X OS details: Linux 2.6.20-1 (Fedora Core 5)
TRACEROUTE (using port 80/tcp) HOP RTT ADDRESS [Cut first seven hops for brevity] 8 10.59 so-4-2-0.mpr3.pao1.us.above.net (64.125.28.142) 9 11.00 metro0.sv.svcolo.com (208.185.168.173) 10 9.93 scanme.nmap.org (64.13.134.52)
Nmap done: 1 IP address (1 host up) scanned in 17.00 seconds
Die neueste Version von Nmap erhält man unter https://nmap.org, und die neueste Version der Manpage ist unter https://nmap.org/book/man.html verfügbar
Installation
# apt install nmap
Anwendungen
$ nmap -v -A scanme.nmap.org $ nmap -v -sP 192.168.0.0/16 10.0.0.0/8 $ nmap -v -iR 10000 -PN -p 80
Einfacher Portscan
nmap ohne Optionen
- Es geht darum herauszufinden, ob ein Port offen ist, welche Anwendung dahinter läuft und ob dort Sicherheitslücken und Schwachstellen zu vermuten sind
- Ein einfacher Port-Scanner wird alle Ports pauschal in zwei oder drei Zustände einteilen:
- offen,
- geschlossen,
- gefiltert / geblockt (offen/geschlossen) jeweils mit und ohne Antwort
Ziele festlegen
- NMAP ist bei der Angabe des Scan-Ziels sehr flexibel
- Das kann ein Domain-Name sein, eine IP-Adresse oder ein ganzes Subnetz
Domain: www.XXX.XX IP-Adresse: 192.168.1.1 Subnetz: 192.168.1.1/24 Subnetz: 192.168.1.*
- Man sollte einen Port-Scan nicht auf ein ganzes Subnetz anwenden
- Ein ganzes Subnetz zu scannen, kann sehr lange dauern, wenn die Hosts gefilterte Ports haben
- Die Anzahl der Ports reicht von 1 bis 65.535
- NMAP scannt standardmäßig nur etwa 1.000 der meistgenutzten Ports, die in der Datenbank "nmap-services" aufgelistet sind
- Mit der Option "-F" (für engl. fast, dt. schnell) kann man den Port-Scan sogar auf die 100 meistgenutzten Ports beschränken
- Interessante Ports scannen mit der Option "-p":
Port(s) | Option |
---|---|
22 | -p22 |
22,25,80 | -p22,25,80 |
1 - 100 | -p-100 |
80 - 88 | -p80-88 |
>60000 | -p60000- |
1 - 65535 | -p- |
Einzelne Rechner
- Der Zielbereich ist eine einzelne IP-Adresse
- Standardmäßig arbeitet Nmap mit IPv4 (es geht aber auch IPv6)
- Ein Windows-7-Rechner scannt einen Linux-PC:
- nmap 172.16.24.102 (Nmap scan report for)
- Die IP-Adresse gehört also dem Linux-Rechner, den wir mit Nmap auf offene Ports hin überprüfen
- Das Ergebnis:
- 997 Ports erkennt Nmap als geschlossen (closed ports)
- Drei Ports sind offen:
- Port 21 für FTP (open ftp)
- Port 80 für einen Webserver (open http) und
- Port 110 für POP3 (open pop3)
Netzwerkbereiche
Bereich auswählen
- Nmap betrachtet alles in der Kommandozeile, was keine Option (oder ein Argument einer Option) ist, als Bezeichnung eines Zielhosts
- Der einfachste Fall ist die Beschreibung einer IP-Zieladresse oder eines Zielhostnamens zum Scannen
- Manchmal möchten Sie ein ganzes Netzwerk benachbarter Hosts scannen
- Dafür unterstützt Nmap Adressen im CIDR-Stil [1]
- Sie können an eine IPv4-Adresse oder einen Hostnamen angefügt werden
- Nmap wird alle IP-Adressen scannen, bei denen die ersten <numbits> mit denen der gegebenen IP oder des gegebenen Hostnamens übereinstimmen
- Z.B.: würde 192.168.10.0/24 die 256 Hosts zwischen 192.168.10.0 (binär: 1100.0000.1010.1000.0000.1010.0000.0000) und 192.168.10.255 (binär: 1100.0000.1010.1000.0000.1010.1111.1111, inklusive) scannen
- 192.168.10.40/24 würde genau dieselben Ziele scannen
- Dadurch, dass der Host
scanme.nmap.org
die IP-Adresse 64.13.134.52 hat, würde die Angabe
scanme.nmap.org/16
die 65.536 IP-Adressen zwischen 64.13.0.0 und 64.13.255.255 scannen
- Der kleinste erlaubte Wert ist /0, der das gesamte Internet scannt
- Der größte Wert ist /32 und scannt lediglich den Host mit angegebenem Namen oder IP-Adresse, da alle Adressen-Bit festgelegt sind
Teilbereich auswählen
- Die CIDR-Notation ist kurz, aber nicht immer flexibel genug
- So möchte man beispielsweise 192.168.0.0/16 scannen, aber IPs auslassen, die mit .0 oder .255 enden, weil sie als Unternetzwerk und Broadcast-Adressen benutzt werden können
- Nmap unterstützt das in Form einer Oktett-Bereichsadressierung
- Statt eine normale IP-Adresse anzugeben, kann man eine mit Kommata getrennte Liste von Zahlen oder Bereichen für jedes Oktett angeben
- Z.B. überspringt 192.168.0-255.1-254 alle Adressen im Bereich, die mit .0 oder .255 enden, und 192.168.3-5,7.1 scannt die vier Adressen 192.168.3.1, 192.168.4.1, 192.168.5.1 und 192.168.7.1
- Beide Bereichsgrenzen können weggelassen werden, die Standardwerte sind 0 für die linke und 255 für die rechte Grenze
- Wenn Sie allein - benutzen, ist das identisch mit 0-255
- Im ersten Oktett dann 0- benutzen, damit die Zielangabe nicht wie eine Kommandozeilenoption aussieht
- Die Angabe 0-255.0-255.13.37 führt einen internetweiten Scan über alle IP-Adressen aus, die mit 13.37 enden
- Diese Art von breiter Abtastung kann bei Internet-Umfragen und -Forschungen hilfreich sein
IPv6
- IPv6-Adressen können nur durch ihre vollständige IPv6-Adresse oder ihren Hostnamen angegeben werden
- CIDR und Oktettbereiche werden für IPv6 nicht unterstützt, weil sie selten nützlich sind
Zielauswahl
- Auch wenn Ziele normalerweise in der Kommandozeile angegeben werden, gibt es auch die folgenden Optionen, um die Zielauswahl zu steuern:
-iL <inputfilename> (Eingabe aus einer Liste)
- Eine sehr lange Liste von Hosts in der Kommandozeile anzugeben ist oft sehr umständlich, kommt aber sehr häufig vor
- Der DHCP-Server beispielsweise exportiert vielleicht eine Liste von 10.000 aktuellen Adresszuweisungen (engl. leases), die Sie scannen möchten
- Man möchte beispielsweise alle IP-Adressen außer denjenigen scannen, um Hosts , die unautorisierte statische IP-Adressen benutzen zu finden
- Die Liste der zu scannenden Hosts und übergibt deren Dateinamen als Argument zur Option -iL an Nmap
- Die Einträge dürfen alle Formate haben, die Nmap auf der Kommandozeile akzeptiert (IP-Adresse, Hostname, CIDR, IPv6 oder Oktettbereiche)
- Alle Einträge müssen durch ein oder mehrere Leerzeichen, Tabulatoren oder Zeilenumbrüche getrennt sein
- Wenn man einen Bindestrich (-) als Dateinamen angibt, liest Nmap die Hosts von der Standardeingabe statt aus einer normalen Datei
-iR <num hosts> (zufällige Auswahl von Zielen)
Internetumfragen
- Für internetweite Umfragen und andere Forschungsaktivitäten möchte man Ziele vielleicht zufällig auswählen
- Das kann man mit der Option -iR, die als Argument die Anzahl der zu erzeugenden IPs annimmt
- Nmap lässt automatisch bestimmte unerwünschte IPs aus, wie solche in privaten, Multicast- oder unbesetzten Adressbereichen
- Für einen endlosen Scan kann man das Argument 0 angeben
Beispiele
- Befehl
nmap -sS -PS80 -iR 0 -p 80
sucht Webserver , auf denen man stöbern kann
- Befehl
--exclude <host1>[,<host2>[,...]] (Ziele ausklammern)
gibt eine mit Kommata getrennte Liste von Zielen an, die vom Scan ausgeschlossen sein sollen, selbst wenn sie in den angegebenen Netzwerkbereich fallen
- Die übergebene Liste benutzt die normale Nmap-Syntax und kann folglich Hostnamen, CIDR-Netzblöcke, Oktettbereiche und weitere enthalten
- Das kann nützlich sein, wenn das zu scannende Netzwerk hochkritische Server und Systeme enthält, die man nicht anfassen darf, weil sie bekanntermaßen ungünstig auf Port-Scans reagieren
- Oder Unternetze, die von anderen Leuten administriert werden
- Befehl
--excludefile<-exclude_file> (Liste aus Datei ausklammern)
- Das bietet dieselbe Funktionalität wie die Option --exclude
- Unterschied: die ausgeklammerten Ziele in der mit Zeilenumbrüchen, Leerzeichen oder Tabulatoren getrennten Datei <exclude_file> statt auf der Kommandozeile angegeben werden
ANGABE VON ZIELEN
Nmap betrachtet alles in der Kommandozeile, was keine Option (oder ein Argument einer Option) ist, als Bezeichnung eines Zielhosts
- Der einfachste Fall ist die Beschreibung einer IP-Zieladresse oder eines Zielhostnamens zum Scannen
Manchmal möchten Sie ein ganzes Netzwerk benachbarter Hosts scannen
- Dafür unterstützt Nmap Adressen im CIDR-Stil
- Sie können /numbits an eine IPv4-Adresse oder einen Hostnamen anfügen, und Nmap wird alle IP-Adressen scannen, bei denen die ersten numbits mit denen der gegebenen IP oder des gegebenen Hostnamens übereinstimmen
- Zum Beispiel würde 192.168.10.0/24 die 256 Hosts zwischen 192.168.10.0 (binär: 11000000 10101000 00001010 00000000) und 192.168.10.255 (binär: 11000000 10101000 00001010 11111111, inklusive) scannen. 192.168.10.40/24 würde genau dieselben Ziele scannen
Dadurch, dass der Host scanme.nmap.org die IP-Adresse 64.13.134.52 hat, würde die Angabe scanme.nmap.org/16 die 65.536 IP-Adressen zwischen 64.13.0.0 und 64.13.255.255 scannen
- Der kleinste erlaubte Wert ist /0, der das gesamte Internet scannt
- Der größte Wert ist /32 und scannt lediglich den Host mit angegebenem Namen oder IP-Adresse, da alle Adressen-Bits festgelegt sind
Die CIDR-Notation ist kurz, aber nicht immer flexibel genug
- Vielleicht möchten Sie beispielsweise 192.168.0.0/16 scannen, aber IPs auslassen, die mit .0 oder .255 enden, weil sie als Unternetzwerk und Broadcast-Adressen benutzt werden können
- Nmap unterstützt das in Form einer Oktett-Bereichsadressierung
Statt eine normale IP-Adresse anzugeben, können Sie eine mit Kommata getrennte Liste von Zahlen oder Bereichen für jedes Oktett angeben
- Zum Beispiel überspringt 192.168.0-255.1-254 alle Adressen im Bereich, die mit .0 oder .255 enden, und 192.168.3-5,7.1 scannt die vier Adressen 192.168.3.1, 192.168.4.1, 192.168.5.1 und 192.168.7.1
- Beide Bereichsgrenzen können weggelassen werden, die Standardwerte sind 0 für die linke und 255 für die rechte Grenze
- Wenn Sie allein - benutzen, ist das identisch mit 0-255, aber denken Sie daran, im ersten Oktett 0- zu benutzen, damit die Zielangabe nicht wie eine Kommandozeilenoption aussieht
- Diese Bereiche müssen nicht auf die endgültigen Oktetts beschränkt sein: die Angabe 0-255.0-255.13.37 führt einen internetweiten Scan über alle IP-Adressen aus, die mit 13.37 enden
- Diese Art von breiter Abtastung kann bei Internet-Umfragen und -Forschungen hilfreich sein
IPv6-Adressen können nur durch ihre vollständige IPv6-Adresse oder ihren Hostnamen angegeben werden
- CIDR und Oktettbereiche werden für IPv6 nicht unterstützt, weil sie selten nützlich sind
Nmap akzeptiert in der Kommandozeile mehrere Host-Angaben, die auch nicht vom selben Typ sein müssen
- Der Befehl nmap scanme.nmap.org 192.168.0.0/8 10.0.0,1,3-7.- macht also das, was Sie erwarten würden
Auch wenn Ziele normalerweise in der Kommandozeile angegeben werden, gibt es auch die folgenden Optionen, um die Zielauswahl zu steuern: -iL inputfilename (Eingabe aus einer Liste) Eine sehr lange Liste von Hosts in der Kommandozeile anzugeben ist oft sehr umständlich, kommt aber sehr häufig vor
- Ihr DHCP-Server beispielsweise exportiert vielleicht eine Liste von 10.000 aktuellen Adresszuweisungen (engl. oder vielleicht möchten Sie alle IP-Adressen außer denjenigen scannen, um Hosts zu finden, die unautorisierte statische IP-Adressen benutzen
- Erzeugen Sie einfach die Liste der zu scannenden Hosts und übergeben Sie deren Dateinamen als Argument zur Option -iL an Nmap
- Die Einträge dürfen alle Formate haben, die Nmap auf der Kommandozeile akzeptiert (IP-Adresse, Hostname, CIDR, IPv6 oder Oktettbereiche)
- Alle Einträge müssen durch ein oder mehrere Leerzeichen, Tabulatoren oder Zeilenumbrüche getrennt sein
- Wenn Sie einen Bindestrich (-) als Dateinamen angeben, liest Nmap die Hosts von der Standardeingabe statt aus einer normalen Datei
-iR num hosts (zufällige Auswahl von Zielen) Für internetweite Umfragen und andere Forschungsaktivitäten möchten Sie Ziele vielleicht zufällig auswählen
- Das kann man mit der Option -iR, die als Argument die Anzahl der zu erzeugenden IPs annimmt
- Nmap lässt automatisch bestimmte unerwünschte IPs aus, wie solche in privaten, Multicast- oder unbesetzten Adressbereichen
- Für einen endlosen Scan kann man das Argument 0 angeben
- Denken Sie aber daran, dass manche Netzwerkadministratoren sich gegen unautorisierte Scans ihrer Netzwerke sträuben
- Lesen Sie "" sorgfältig, bevor Sie -iR benutzen
- Falls Sie mal an einem regnerischen Tag wirklich Langeweile haben, probieren Sie einmal den Befehl nmap -sS -PS80 -iR 0 -p 80 aus, um zufällig Webserver zu finden, auf denen Sie herumstöbern können
--exclude host1[,host2[,...]] (Ziele ausklammern) Gibt eine mit Kommata getrennte Liste von Zielen an, die vom Scan ausgeschlossen sein sollen, selbst wenn sie in den angegebenen Netzwerkbereich fallen
- Die übergebene Liste benutzt die normale Nmap-Syntax und kann folglich Hostnamen, CIDR-Netzblöcke, Oktettbereiche und weitere enthalten
- Das kann nützlich sein, wenn das zu scannende Netzwerk hochkritische Server und Systeme enthält, die man nicht anfassen darf, weil sie bekanntermaßen ungünstig auf Port-Scans reagieren, oder Unternetze, die von anderen Leuten administriert werden
--excludefile exclude_file (Liste aus Datei ausklammern) Das bietet dieselbe Funktionalität wie die Option --exclude, mit dem Unterschied, dass die ausgeklammerten Ziele in der mit Zeilenumbrüchen, Leerzeichen oder Tabulatoren getrennten Datei exclude_file statt auf der Kommandozeile angegeben werden
Dienste identifizieren
- Die Ports 25/tcp, 80/tcp und 53/udp sind offen
- Dank der Datenbank in nmap-services gibt Nmap noch aus, dass diese Ports wahrscheinlich jeweils zu einem Mailserver (SMTP), Webserver (HTTP) und Nameserver (DNS) gehören
- Selbst wenn Nmap recht hat und auf dem Server im obigen Beispiel SMTP-, HTTP- und DNS-Server laufen, ist das nicht besonders viel an Information
- Eine genaue Versionsnummer hilft bei der Bestimmung der Exploits, für die ein Server anfällig ist
- Die Versionserkennung hilft Ihnen, an diese Information heranzukommen
- Nachdem TCP- und/oder UDP-Ports mit einer der anderen Scan-Methoden entdeckt wurden, fragt die Versionserkennung diese Ports ab
- Die Datenbank in nmap-service-probes enthält Testpakete für die Abfrage verschiedenster Dienste und Ausdrücke für den Vergleich und das Parsen der Antworten
- Nmap versucht, das
- Dienstprotokoll zu bestimmen (beispielsweise FTP, SSH, Telnet, HTTP), aber auch
- Anwendungsnamen (beispielsweise ISC BIND, Apache httpd, Solaris telnetd),
- Versionsnummer,
- Hostnamen, Gerätetyp (beispielsweise Drucker, Router),
- die Betriebssystemfamilie (beispielsweise Windows, Linux) und manchmal verschiedene Details:
- etwa ob ein X-Server Verbindungen annimmt,
- die SSH-Protokollversion
- oder der KaZaA-Benutzername
Ausgabe steuern
BEISPIELE
Hier sind einige Anwendungsbeispiele für Nmap, von einfachen und routinemäßigen bis zu etwas komplexeren und esoterischen
- Um die Sache etwas
konkreter zu machen, werden einige echte IP-Adressen und Domainnamen benutzt
- Diese sollten Sie mit Adressen/Namen aus Ihrem eigenen Netzwerk
ersetzen
- Auch wenn ich nicht der Meinung bin, dass Port-Scans anderer Netzwerke illegal sind oder sein sollten, mögen manche
Netzwerkadministratoren es nicht, wenn ihre Netzwerke unverlangt gescannt werden, und könnten sich beschweren
- Der beste Ansatz ist der, sich zuerst
eine Genehmigung zu verschaffen
Zu Testzwecken haben Sie die Genehmigung, den Host scanme.nmap.org zu scannen
- Diese Genehmigung gilt nur für das Scannen mit Nmap und nicht für das
Testen von Exploits oder Denial-of-Service-Angriffen
- Bitte führen Sie nicht mehr als ein Dutzend Scans pro Tag auf diesem Host durch, um die
Bandbreite nicht zu erschöpfen
- Falls diese freie Dienstleistung missbraucht wird, wird sie abgeschaltet, und Nmap wird dann Failed to resolve given
hostname/IP: scanme.nmap.org ausgeben
- Diese Genehmigung gilt auch für die Hosts scanme2.nmap.org, scanme3.nmap.org und weitere, auch wenn diese Hosts noch
nicht existieren
nmap -v scanme.nmap.org
Diese Option scannt alle reservierten TCP-Ports auf dem Rechner scanme.nmap.org
- Die Option -v schaltet den ausführlichen Modus an
nmap -sS -O scanme.nmap.org/24
Startet einen Stealth-SYN-Scan auf allen aktiven Rechnern unter den 256 IPs im Netzwerk der Größe "Klasse C", in dem Scanme sitzt
- Es versucht auch
herauszufinden, welches Betriebssystem auf jedem aktiven Host läuft
- Wegen des SYN-Scans und der Betriebssystemerkennung sind dazu root-Rechte
notwendig
nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127
Startet eine Host-Auflistung und einen TCP-Scan in der ersten Hälfte von allen 255 möglichen acht-Bit-Unternetzen im Klasse-B-Adressraum 198.116 Dabei wird getestet, ob die Systeme SSH, DNS, POP3 oder IMAP auf ihren Standardports laufen haben oder irgendetwas auf Port 4564
- Falls einer dieser
Ports offen ist, wird eine Versionserkennung benutzt, um festzustellen, welche Anwendung darauf läuft
nmap -v -iR 100000 -PN -p 80
Verlangt von Nmap, 100.000 Hosts zufällig auszuwählen und sie nach Webservern (Port 80) zu scannen
- Eine Host-Auflistung wird mit -PN unterbunden,
weil es Verschwendung ist, zuerst eine Reihe von Testpaketen zu senden, um festzustellen, ob ein Host aktiv ist, wenn Sie auf jedem Zielhost ohnehin nur einen Port testen
nmap -PN -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20
Das scannt 4096 IPs nach Webservern (ohne sie anzupingen) und speichert die Ausgabe im grepbaren und im XML-Format
- DAS NMAP-BUCH
Auch wenn dieser Reference Guide alle wesentlichen Nmap-Optionen genau beschreibt, kann er nicht vollständig zeigen, wie man diese Features anwendet, um Aufgaben der realen Welt zu lösen
- Zu diesem Zweck haben wir das Buch Nmap Network Scanning: The Official Nmap Project Guide to Network
Discovery and Security Scanning
- Es zeigt, wie man Firewalls und Intrusion Detection-Systeme unterwandert, die Performance von Nmap optimiert, und
wie man häufige Netzwerkaufgaben mit der Nmap Scripting Engine automatisiert
- Außerdem enthält es Tipps und Anleitungen für häufige Nmap-Aufgaben
wie die Netzwerkinventarisierung, Penetrationstests, die Erkennung schurkischer Wireless Access Points und das Verhindern von Wurmausbrüchen im Netzwerk
- Dabei zeigt es mit Beispielen und Diagrammen, wie die Kommunikation auf der Leitung aussieht
- Mehr als die Hälfte des Buches ist online
frei verfügbar
- Weitere Informationen finden Sie unter https://nmap.org/book
Die deutsche Übersetzung dieses Buches von Dinu Gherman ist im Mai 2009 unter dem Titel Nmap: Netzwerke scannen, analysieren und absichern[14] im Open Source Press[15]-Verlag erschienen
Aufruf
Konfiguration
Dateien
Siehe auch
Dokumentation
Man-Page
Info-Pages
Links
Projekt
Weblinks