Nmap: Unterschied zwischen den Versionen

Aus Foxwiki
Thomaskarras (Diskussion | Beiträge)
K Textersetzung - „== Syntax ==“ durch „== Aufruf ==“
 
(321 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
= '''Network Mapper (nmap)'''=
{{DISPLAYTITLE:nmap}}
* ist ein freier Netzwerk-Scanner
'''nmap''' - Netzwerk-Analysewerkzeug, Sicherheits- und Portscanner


=Netzwerke scannen=
== Beschreibung ==
Was ist Network Scanning?
;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
* Netzwerke scannen und analysieren
* angeschlossene und aktiven Systeme erkennen
* Angeschlossene und aktive Systeme erkennen
* Details zu Diensten, Konfigurationen und Versionen bestimmen
* Details zu Diensten, Konfigurationen und Versionen bestimmen
* Netzwerk-Inventarisierung
* Netzwerk-Inventarisierung
Zeile 11: Zeile 14:
* Überwachung von Betriebszeiten, Hosts oder Diensten
* Überwachung von Betriebszeiten, Hosts oder Diensten


= Syntax =
[[Datei:Zenmap.png|mini|400px|Nmap GUI Zenmap]]
nmap [Scan Type(n)] [Optionen] {Ziel}
 
; ''Nmap'' ist ein [[Freie Software|freier]] [[Portscanner]] zum Scannen und Auswerten von [[Hostrechner|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 [[Microsoft Windows|Windows]]-Betriebssysteme.
* Sie bietet annähernd den vollen Funktionsumfang, hat jedoch einige Einschränkungen.<ref>[http://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.
* 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 (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.
* 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.
 
[[Datei:Nmap_4.20_screenshot.png|250px| Beschreibung= Ausgabe von Nmap gegen wikipedia.de]]
 
{|
| Hersteller || [[Fyodor (Hacker)|Gordon Lyon]] (''Fyodor'') und das „Nmap-Developer-Team“
|-
| Betriebssystem || [[Linux]], [[Unix]], [[macOS]], [[Windows]]
|-
|Programmiersprache || [[C (Programmiersprache)|C]], [[C++]], [[Python (Programmiersprache)|Python]], [[Lua]]
|-
| Kategorie || [[Portscanner]]
|-
| Lizenz || Nmap Public Source License
* [https://nmap.org/npsl/ Nmap.org: Nmap Public Source License]
|-
| Website || [http://nmap.org/ 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, z.&nbsp;B.&nbsp;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 =
=== 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 (offen/geschlossen).
# gefiltert / geblockt (offen/geschlossen) jeweils mit und ohne Antwort.
 
== Bedeutung der Ausgabe ==
* Der Zustand "Offen" bedeutet, dass eine Anwendung oder ein Dienst bereit ist TCP-Verbindungen oder UDP-Pakete auf diesem Port anzunehmen.
* Um Kommunikationsverbindungen betreiben zu können bedarf es offener Ports.
* Anzahl offener Ports begrenzen, um die Angriffsfläche so klein wie möglich zu halten.
* Offene Ports werden zusätzlich geschützt oder Verbindungsmöglichkeiten eingeschränkt.
* Der Zustand "Geschlossen" bedeutet, dass keine Anwendung und kein Dienst an diesem Port auf eingehende Datenpakete und Verbindungsversuche lauscht bzw. hört.
* Auf ihm sind keine Kommunikationsverbindungen möglich.
* Ein geschlossener Port ist nur so lange geschlossen, wie eine Anwendung auf diesen Port hört und Verbindungen und Pakete annimmt.
* Um offene, aber auch geschlossene Ports zu schützen, setzen Systemadministratoren einen Portfilter (Firewall) ein.
* So verhindert man z.B. die Verbindungsversuche durch Port-Scans.
* Ein Port-Scan soll nur den Zustand eines Ports ermitteln, aber keine echte Verbindung aufbauen.
* Weil er die dahinterliegende Anwendung nicht kennt, kann er nur Testpakete an einen Port schicken.
* Der Filter verhindert, dass diese Testpakete durchkommen.
* In der Regel werden diese Pakete verworfen.
* Dann kann für diesen Port weder der Status "offen" oder "geschlossen" gelten.
* Dafür gibt es den Zustand "gefiltert" oder "blockiert".


= 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.
Zeile 49: Zeile 137:
* 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":
** Für den Port 22 verwendet man die Option "-p22".
{| class="wikitable"
** Für die Ports 22, 25 und 80 verwendet man die Option "-p22,25,80".
|+
** Für die Ports von 1 bis 100 verwendet man die Option "-p-100".
! Port(s) !! Option
** Für die Ports von 80 bis 88 verwendet man die Option "-p80-88".
|-
** Für alle Ports über 60.000 verwendet man die Option "-p60000-".
| 22 ||-p22
** Alle Ports von 1 bis 65.535 scannen: Option "-p-".
|-
|22,25,80||-p22,25,80
|-
|1 - 100||-p-100
|-
|80 - 88||-p80-88
|-
|>60000||-p60000-
|-
|1 - 65535||-p-
|}


== Einzelne Rechner ==
==== Einzelne Rechner ====
* Der Zielbereich ist eine einzelne IP-Adresse  
* Der Zielbereich ist eine einzelne IP-Adresse
* Standardmäßig arbeitet Nmap mit IPv4 (es geht aber auch IPv6)
* Standardmäßig arbeitet Nmap mit IPv4 (es geht aber auch IPv6)
[[Datei:nmap.jpg|zentriert]]
* Ein Windows-7-Rechner scannt einen Linux-PC:
* Hier wurde ein Linux-PC von einem Windows-7-Rechner aus gescannt:
** nmap 172.16.24.102 (Nmap scan report for)
** nmap 172.16.24.102
* 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: Drei Ports sind offen; 21 für FTP, 80 für einen Webserver (in unserem Fall ein Apache) und 110 für POP3.
* Das Ergebnis:
* 997 well known Ports erkennt Nmap als geschlossen.
**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 ==
==== 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.  
* 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, und Nmap wird alle IP-Adressen scannen, bei denen die ersten <numbits> mit denen der gegebenen IP oder des gegebenen Hostnamens übereinstimmen.
* Sie können an eine IPv4-Adresse oder einen Hostnamen angefügt werden.
* 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.
* 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.
* 192.168.10.40/24 würde genau dieselben Ziele scannen.
* Dadurch, dass der Host
* Dadurch, dass der Host
   scanme.nmap.org
   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  
   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-Bits 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.
* Möcht man z.B. 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 z.&nbsp;B.&nbsp;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, können Sie 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)
   -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 z.B. exportiert vielleicht eine Liste von 10.000 aktuellen Adresszuweisungen (engl. leases), die Sie scannen möchten.
* Der DHCP-Server z.&nbsp;B.&nbsp;exportiert vielleicht eine Liste von 10.000 aktuellen Adresszuweisungen (engl. leases), die Sie scannen möchten.
* Möchte man alle IP-Adressen außer denjenigen scannen, um Hosts zu finden, die unautorisierte statische IP-Adressen benutzen.
* Man möchte z.&nbsp;B.&nbsp;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).
Zeile 110: Zeile 214:
* 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)
   -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
   nmap -sS -PS80 -iR 0 -p 80
sucht Webserver , auf denen man stöbern kann.
sucht Webserver , auf denen man stöbern kann.
Zeile 122: Zeile 227:
   --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 usw. enthalten.  
* Die übergebene Liste benutzt die normale Nmap-Syntax und kann folglich Hostnamen, CIDR-Netzblöcke, Oktettbereiche usw. 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.
Zeile 130: Zeile 235:
* 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.


= Dienste identifizieren =
* Die Ports 25/tcp, 80/tcp und 53/udp offen sind.
* 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 (z.B. FTP, SSH, Telnet, HTTP), aber auch
#Anwendungsnamen (z.B. ISC BIND, Apache httpd, Solaris telnetd),
#Versionsnummer,
#Hostnamen, Gerätetyp (z.B. Drucker, Router),
#die Betriebssystemfamilie (z.B. Windows, Linux) und manchmal verschiedene Details:
#etwa ob ein X-Server Verbindungen annimmt,
#die SSH-Protokollversion
#oder der KaZaA-Benutzername.




= Zenmap =
* Neben der textbasierten Variante gibt es noch die grafische Benutzeroberfläche '''NmapFE''' zur komfortablen Einstellung von Nmap.
* Wurde mittlerweile durch die '''Zenmap''' genannte GUI abgelöst.
[[Datei:Zenmap.png|zentriert|mini]]


= Ausgabe steuern =
* Nmap erzeugt seine Ausgabe in fünf verschiedenen Formaten.
* Das Standardformat heißt interaktive Ausgabe und wird an die Standardausgabe (stdout) gesendet.
*  Es gibt auch die normale Ausgabe, die ähnlich zur interaktiven Ausgabe ist, außer dass sie weniger Laufzeitinformation und Warnungen ausgibt
* Man geht davon aus, dass sie erst nach Abschluss des Scans analysiert wird und nicht, während er noch läuft.
* Die XML-Ausgabe ist eines der wichtigsten Ausgabeformate, da sie einfach nach HTML konvertiert, von Programmen wie Nmap-GUIs geparst oder in Datenbanken importiert werden kann.
* Die zwei verbleibenden Ausgabeformate sind die einfache grepbare[[http://mikiwiki.org/wiki/grep]] Ausgabe, in der die meiste Information über einen Zielhost in einer einzigen Zeile enthalten ist.
* Und '''sCRiPt KiDDi3 0utPUt''' für Benutzer, die sich selbst als '''root''' sehen.


Die interaktive Ausgabe ist standardmäßig vorgegeben und verfügt über keine eigenen Kommandozeilenoptionen, aber die anderen vier Formate benutzen dieselbe Syntax. Sie erwarten ein Argument, den Namen der Datei, in der die Ergebnisse gespeichert werden sollen. Es können mehrere Formate angegeben werden, aber jedes nur einmal. Vielleicht möchten Sie z.B. eine normale Ausgabe für eine eigene Untersuchung speichern und eine XML-Ausgabe desselben Scans für eine programmbasierte Analyse. Das erreichen Sie mit den Optionen -oX myscan.xml -oN myscan.nmap. Auch wenn in diesem Kapitel der Kürze wegen einfache Namen wie myscan.xml benutzt werden, empfehlen sich im Allgemeinen aussagekräftigere Namen. Welche Namen Sie wählen, ist Geschmackssache, aber ich benutze lange Namen, die das Scandatum und ein oder zwei Worte über den Scan enthalten, in einem Verzeichnis, das den Namen der gescannten Firma enthält.


Auch wenn diese Optionen Ergebnisse in Dateien speichern, gibt Nmap weiterhin die interaktive Ausgabe wie üblich auf die Standardausgabe aus. Zum Beispiel speichert der Befehl nmap -oX myscan.xml target XML in myscan.xml und füllt die Standardausgabe mit demselben interaktiven Ergebnis, wie es auch ohne Angabe von -oX der Fall wäre. Das können Sie ändern, indem Sie ein Minuszeichen als Argument für eines der Formate angeben. Dann schaltet Nmap die interaktive Ausgabe ab und gibt stattdessen Ergebnisse im gewünschten Format auf den Standardausgabestrom aus. Das heißt, der Befehl nmap -oX - target schreibt nur die XML-Ausgabe auf die Standardausgabe. Ernste Fehler werden weiterhin auf den normalen Standardfehlerstrom, stderr, ausgegeben.


Anders als bei anderen Nmap-Argumenten ist das Leerzeichen zwischen dem Options-Flag für eine Ausgabedatei (z.B. -oX) und dem Dateinamen oder Minuszeichen obligatorisch. Falls Sie die Leerzeichen weglassen und Argumente wie z.B. -oG- oder -oXscan.xml angeben, erzeugt Nmap aus Gründen der Rückwärtskompatibilität Ausgabedateien im normalen Format, die jeweils die Namen G- und Xscan.xml haben.


All diese Argumente unterstützen strftime-ähnliche Umwandlungen im Dateinamen. %H, %M, %S, %m, %d, %y und %Y sind alle exakt gleich wie in strftime. %T entspricht %H%M%S, %R entspricht %H%M und %D entspricht %m%d%y. Ein %, dem ein anderes Zeichen folgt, ergibt nur genau dieses Zeichen (%% ergibt ein Prozentzeichen). Also erzeugt -oX 'scan-%T-%D.xml' eine XML-Datei in der Form scan-144840-121307.xml.


Nmap bietet auch Optionen zur Steuerung der Scan-Ausführlichkeit und Optionen, um an Ausgabedateien anzuhängen, statt sie zu überschreiben. All diese Optionen werden unten beschrieben.


Nmap-Ausgabeformate


-oN <filespec> (normale Ausgabe)
==== 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.


    Verlangt, dass eine normale Ausgabe in der angegebenen Datei gespeichert wird. Wie oben erwähnt, unterscheidet sich das leicht von der interaktiven Ausgabe.
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.
-oX <filespec> (XML-Ausgabe)
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.


    Verlangt, dass eine XML-Ausgabe in der angegebenen Datei gespeichert wird. Nmap fügt eine DTD (Document Type Definition) hinzu, mit der XML-Parser Nmaps XML-Ausgabe validieren können. Diese ist vor allem für die Benutzung durch Programme gedacht, kann aber auch Menschen bei der Interpretation von Nmaps XML-Ausgabe helfen. Die DTD definiert die gültigen Elemente des Formats und zählt an vielen Stellen die dafür erlaubten Attribute und Werte auf. Die neueste Version ist immer unter https://nmap.org/data/nmap.dtd verfügbar.
Die CIDR-Notation ist kurz, aber nicht immer flexibel genug. Vielleicht möchten Sie z.&nbsp;B.&nbsp;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.


    XML bietet ein stabiles Format, das man mit Software leicht parsen kann. Solche XML-Parser sind für alle wichtigen Programmiersprachen wie C/C++, Perl, Python und Java gratis verfügbar. Manche Leute haben sogar Anbindungen für die meisten dieser Sprachen geschrieben, um speziell die Ausgabe und Ausführung von Nmap zu steuern. Beispiele sind Nmap::Scanner und Nmap::Parser für Perl in CPAN. In fast allen Fällen, in denen eine nicht-triviale Anwendung eine Schnittstelle zu Nmap benutzt, ist XML das bevorzugte Format.
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.


    Die XML-Ausgabe verweist auf ein XSL-Stylesheet, mit dem man die Ergebnisse als HTML formatieren kann. Am einfachsten benutzt man das, indem man einfach die XML-Ausgabe in einem Webbrowser wie Firefox oder IE lädt. Standardmäßig funktioniert das nur auf dem Rechner, auf dem Sie Nmap ausgeführt haben (oder auf einem, der ähnlich konfiguriert ist), weil der Pfad zu nmap.xsl darin festkodiert ist. Um portable XML-Dateien zu erzeugen, die auf allen mit dem Web verbundenen Rechnern als HTML angezeigt werden, können Sie die Optionen --webxml oder --stylesheet benutzen.
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.
-oS <filespec> (ScRipT KIdd|3-Ausgabe)


    Die Script-Kiddie-Ausgabe ist ähnlich zur interaktiven Ausgabe, mit dem Unterschied, dass sie nachbearbeitet ist, um die 'l33t HaXXorZ besser anzusprechen! Vorher haben sie wegen dessen konsistent richtiger Schreibweise und Buchstabierung auf Nmap herabgesehen. Humorlose Menschen sollten wissen, dass diese Option sich über Script Kiddies lustig macht, bevor sie mich dafür angreifen, dass ich „ihnen helfe“.
Auch wenn Ziele normalerweise in der Kommandozeile angegeben werden, gibt es auch die folgenden Optionen, um die Zielauswahl zu steuern:
-oG <filespec> (grepbare Ausgabe)
-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 z.&nbsp;B.&nbsp;exportiert vielleicht eine Liste von 10.000 aktuellen Adresszuweisungen (engl. leases), die Sie scannen möchten. 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.


    Dieses Ausgabeformat wird zum Schluss beschrieben, weil es als überholt gilt. Das XML-Ausgabeformat ist wesentlich leistungsstärker und für erfahrene Benutzer fast genauso bequem. XML ist eim Standard, für den Dutzende hervorragender Parser verfügbar sind, während die grepbare Ausgabe nur mein eigener einfacher Hack ist. XML ist erweiterbar und kann neue Nmap-Eigenschaften unterstützen, die ich beim grepbaren Format aus Platzgründen oft weglassen muss.
-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.


    Dessen ungeachtet ist die grepbare Ausgabe immer noch recht beliebt. Es ist ein einfaches Format, das pro Zeile einen Host auflistet und das mit Unix-Standardwerkzeugen wie grep, awk, cut, sed, diff und auch mit Perl auf triviale Weise durchsucht und geparst werden kann. Selbst ich benutze es für einmalige schnelle Tests in der Kommandozeile. Zum Beispiel kann man alle Hosts, auf denen der SSH-Port offen ist oder auf denen Solaris läuft, auf einfache Weise mit einem grep bestimmen, das die Hosts findet, umgeleitet in einen awk- oder cut-Befehl, der die gewünschten Felder ausgibt.
--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 usw. 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.  


    Die grepbare Ausgabe besteht aus Kommentaren (Zeilen, die mit einem # anfangen) sowie aus Zielzeilen. Eine Zielzeile enthält eine Kombination aus sechs benannten Feldern, durch Tabulatoren getrennt, gefolgt von einem Doppelpunkt. Diese Felder lauten Host, Ports, Protocols, Ignored State, OS, Seq Index, IP ID und Status.
--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 wichtigste dieser Felder ist im Allgemeinen Ports, das Details zu einem interessanten Port enthält. Es ist eine mit Kommata getrennte Liste von Port-Einträgen, wobei jeder Eintrag einen interessanten Port darstellt und aus sieben mit Schrägstrichen (/) getrennten Unterfeldern besteht. Diese Unterfelder lauten: Port number, State, Protocol, Owner, Service, SunRPC info und Version info.
=== Dienste identifizieren ===
 
* Die Ports 25/tcp, 80/tcp und 53/udp sind offen.
    Wie bei der XML-Ausgabe kann diese Manpage auch hier nicht das vollständige Format dokumentieren. Eine detailliertere Betrachtung des grepbaren Ausgabeformats in Nmap finden Sie from https://nmap.org/book/output-formats-grepable-output.html.  
* 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.
-oA <basename> (Ausgabe in allen Formaten)
* 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.
    Aus Gründen der Bequemlichkeit können Sie Scan-Ergebnisse mit -oA <basename> gleichzeitig in normalem, in XML- und in grepbarem Format speichern. Sie werden jeweils in <basename>.nmap, <basename>.xml und <basename>.gnmap, gespeichert. Wie in den meisten Programmen können Sie vor den Dateinamen ein Präfix mit einem Verzeichnispfad darin setzen, z.B. ~/nmaplogs/foocorp/ unter Unix oder c:\hacking\sco unter Windows.
* 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.
Optionen für Ausführlichkeit und Debugging
* 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
-v (größere Ausführlichkeit)
#Dienstprotokoll zu bestimmen (z.&nbsp;B.&nbsp;FTP, SSH, Telnet, HTTP), aber auch
 
#Anwendungsnamen (z.&nbsp;B.&nbsp;ISC BIND, Apache httpd, Solaris telnetd),
    Erhöht die Ausführlichkeit, d.h. Nmap gibt mehr Informationen über den laufenden Scan aus. Offene Ports werden angezeigt, direkt nachdem sie gefunden werden, und es werden Schätzungen für die Dauer bis zur Fertigstellung angegeben, falls Nmap meint, dass ein Scan mehr als ein paar Minuten benötigt. Noch mehr Information erhalten Sie, wenn Sie diese Option zweimal oder noch öfter angeben.
#Versionsnummer,
 
#Hostnamen, Gerätetyp (z.&nbsp;B.&nbsp;Drucker, Router),
    Die meisten Änderungen betreffen nur die interaktive Ausgabe, manche betreffen auch die normale und die Script-Kiddie-Ausgabe. Die anderen Ausgabearten sind für die Weiterverarbeitung durch Maschinen gedacht, d.h. Nmap kann in diesen Formaten standardmäßig alle Details angeben, ohne einen menschlichen Leser zu ermüden. Allerdings gibt es in den anderen Modi einige Änderungen, bei denen die Ausgabegröße durch Weglassen einiger Details erheblich reduziert werden kann. Zum Beispiel wird eine Kommentarzeile in der grepbaren Ausgabe, die eine Liste aller gescannten Ports enthält, nur im wortreichen Modus ausgegeben, weil sie ziemlich lang werden kann.
#die Betriebssystemfamilie (z.&nbsp;B.&nbsp;Windows, Linux) und manchmal verschiedene Details:
-d [level] (erhöhe oder setze Debugging-Stufe)
#etwa ob ein X-Server Verbindungen annimmt,
 
#die SSH-Protokollversion
    Wenn nicht einmal der wortreiche Modus genug Daten für Sie liefert, können Sie beim Debugging noch wesentlich mehr davon bekommen! Wie bei der Ausführlichkeits-Option (-v) wird auch das Debugging mit einem Kommandozeilen-Flag eingeschaltet (-d), und die Debug-Stufe kann durch eine mehrfache Angabe gesteigert werden. Alternativ dazu können Sie eine Debug-Stufe auch als Argument an -d übergeben. So setzt z.B. -d9 die Stufe neun. Das ist die höchste verfügbare Stufe, die Tausende von Zeilen produziert, sofern Sie keinen sehr einfachen Scan mit sehr wenigen Ports und Zielen ausführen.
#oder der KaZaA-Benutzername.
 
    Eine Debugging-Ausgabe ist sinnvoll, wenn Sie einen Fehler in Nmap vermuten oder wenn Sie einfach verwirrt darüber sind, was und warum Nmap etwas genau macht. Da dieses Merkmal überwiegend für Entwickler gedacht ist, sind Debug-Zeilen nicht immer selbsterklärend. Vielleicht bekommen Sie etwas wie: Timeout vals: srtt: -1 rttvar: -1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000. Wenn Sie eine Zeile nicht verstehen, ist Ihre einzige Zuflucht, sie zu ignorieren, im Quellcode nachzuschauen oder Hilfe auf der Entwicklerliste (nmap-dev). zu erfragen. Manche Einträge sind selbsterklärend, aber je höher die Debug-Stufe ist, desto obskurer werden die Meldungen.
--reason (Gründe für Host- und Portzustände)
 
    Gibt die Gründe an, warum ein Port auf einen bestimmten Zustand gesetzt wurde und warum ein Host als ein- oder ausgeschaltet betrachtet wird. Diese Option zeigt die Paketart an, die einen Port- oder Hostzustand ermittelt hat, z.B. ein RST-Paket von einem geschlossenen Port oder ein Echo Reply von einem eingeschalteten Host. Die Information, die Nmap angeben kann, hängt von der Art des Scans oder Pings ab. Der SYN-Scan und der SYN-Ping (-sS und -PS) sind sehr detailliert, aber der TCP-Connect-Scan (-sT) wird durch die Implementierung des connect-Systemaufrufs beschränkt. Dieses Merkmal wird automatisch von der Debug-Option (-d) aktiviert, und die Ergebnisse werden auch dann in XML-Protokolldateien gespeichert, wenn diese Option gar nicht angegeben wird.  
--stats-every <time> (periodische Timing-Statistik ausgeben)
 
    Gibt periodisch eine Timing-Statusmeldung nach einem Intervall der Länge <time> aus. Dabei kann diese Zeitangabe beschrieben werden, wie in „Timing und Performance“ dargestellt, d.h. Sie können z.B. --stats-every 10s benutzen, um alle 10 Sekunden eine Statusaktualisierung zu erhalten. Diese erscheint in der interaktiven Ausgabe (auf dem Bildschirm) und in der XML-Ausgabe.  
--packet-trace (gesendete und empfangene Pakete und Daten mitverfolgen)
 
    Bewirkt, dass Nmap für jedes gesendete oder empfangene Paket eine Zusammenfassung ausgibt. Das wird bei der Fehlersuche oft gemacht, ist aber auch eine willkommene Methode für Neulinge, um genau zu verstehen, was Nmap unter der Oberfläche macht. Um zu verhindern, dass Tausende von Zeilen ausgegeben werden, möchten Sie vielleicht eine beschränkte Anzahl zu scannender Ports angeben, z.B. mit -p20-30. Wenn Sie nur wissen möchten, was im Versionserkennungssubsystem vor sich geht, benutzen Sie stattdessen --version-trace. Wenn Sie nur an einer Script-Mitverfolgung interessiert sind, geben Sie --script-trace an. Mit --packet-trace erhalten Sie all das zusammen.
--open (zeige nur offene (oder möglicherweise offene) Ports an)
 
    Manchmal interessieren Sie sich nur für Ports, mit denen Sie tatsächlich eine Verbindung herstellen können (offene Ports), und wollen Ihre Ergebnisse nicht mit anderen Ports überhäufen, die geschlossen, gefiltert und geschlossen|gefiltert sind. Die Ausgabe wird normalerweise nach dem Scan mit Werkzeugen wie grep, awk und Perl angepasst, aber dieses Merkmal wurde auf überwältigend vielfachen Wunsch hinzugefügt. Geben Sie --open an, um nur offene, offene|gefilterte und ungefilterte Ports zu sehen. Diese drei Ports werden ganz wie gewöhnlich behandelt, d.h. dass offen|gefiltert und ungefiltert in Zählungen zusammengefasst werden, wenn es eine sehr große Anzahl davon gibt.
--iflist (liste Schnittstellen und Routen auf)
 
    Gibt die Liste der Schnittstellen und Systemrouten aus, die Nmap entdeckt hat. Das ist hilfreich bei der Fehlersuche bei Routing-Problemen oder fehlerhaften Gerätebeschreibungen (z.B. wenn Nmap eine PPP-Verbindung als Ethernet behandelt).
--log-errors (protokolliere Fehler/Warnungen in eine Datei im normalen Ausgabeformat)
 
    Von Nmap ausgegebene Warnungen und Fehlermeldungen gehen normalerweise nur auf den Bildschirm (interaktive Ausgabe), was die Ordnung aller Ausgabedateien im normalen Format (üblicherweise mit -oN angegeben) nicht stört. Wenn Sie diese Meldungen in den angegebenen normalen Ausgabedateien wirklich sehen möchten, können Sie diese Option benutzen. Diese ist dann hilfreich, wenn Sie die interaktive Ausgabe nicht übersehen oder wenn Sie Fehler beim Debugging speichern möchten. Die Fehlermeldungen und Warnungen werden auch im interaktiven Modus weiterhin erscheinen. Bei den meisten Fehlern bezüglich schlechter Kommandozeilenargumente wird das nicht funktionieren, da Nmap seine Ausgabedateien eventuell noch nicht initialisiert hat. Außerdem benutzen einige Nmap-Fehlermeldungen und -Warnungen ein anderes System, das diese Option noch nicht unterstützt.
 
    Eine Alternative zu --log-errors ist die Umleitung der interaktiven Ausgabe (inklusive des Standardfehlerstroms) in eine Datei. Die meisten Unix-Shells machen einem diesen Ansatz leicht, aber auf Windows kann er schwierig sein.
 
Weitere Ausgabeoptionen
 
--append-output (an Ausgabedateien hinzufügen, statt sie zu überschreiben)
 
    Wenn Sie einen Dateinamen für ein Ausgabeformat wie z.B. -oX oder -oN angeben, wird diese Datei standardmäßig überschrieben. Wenn Sie deren Inhalt lieber behalten und die neuen Ergebnisse anhängen möchten, benutzen Sie die Option --append-output. Dann wird bei allen angegebenen Ausgabedateinamen dieses Nmap-Aufrufs an die Dateien angehängt, statt sie zu überschreiben. Mit XML-Scandaten (-oX) funktioniert das nicht so gut, da die erzeugte Datei im Allgemeinen nicht mehr sauber geparst wird, es sei denn, Sie reparieren sie von Hand.
--resume <filename> (abgebrochenen Scan fortsetzen)
 
    Manche umfangreichen Nmap-Läufe benötigen sehr viel Zeit – in der Größenordnung von Tagen. Solche Scans laufen nicht immer bis zum Ende. Vielleicht gibt es Beschränkungen, die verhindern, dass man Nmap während der normalen Arbeitszeit ausführen kann, das Netzwerk könnte abstürzen, der Rechner, auf dem Nmap läuft, könnte einen geplanten oder ungeplanten Neustart erleben oder Nmap selbst könnte abstürzen. Der Administrator, der Nmap ausführt, könnte es auch aus irgendeinem anderen Grund abbrechen, indem er ctrl-C eingibt. Und den ganzen Scan von vorne neu zu starten, ist eventuell nicht wünschenswert. Wenn ein normales (-oN) oder ein grepbares (-oG) Protokoll geführt wurde, kann der Benutzer Nmap jedoch bitten, den Scan bei dem Ziel fortzusetzen, an dem es beim Abbruch gearbeitet hat. Geben Sie einfach die Option --resume an und übergeben Sie die normale/grepbare Ausgabedatei als Argument. Andere Argumente sind nicht erlaubt, da Nmap die Ausgabedatei parst, um dieselben Argumente zu benutzen, die zuvor benutzt wurden. Rufen Sie Nmap einfach als nmap --resume <logfilename> auf. Nmap fügt neue Ergebnisse dann an die Datendateien an, die im vorherigen Lauf angegeben wurden. Diese Fortsetzung funktioniert nicht aus XML-Ausgabedateien, weil es schwierig wäre, die zwei Läufe in einer gültigen XML-Datei zu kombinieren.
--stylesheet <path or URL> (setze XSL-Stylesheet, um eine XML-Ausgabe zu transformieren)
 
    Die Nmap-Distribution enthält ein XSL-Stylesheet namens nmap.xsl zum Betrachten oder Übersetzen einer XML-Ausgabe nach HTML. Die XML-Ausgabe enthält eine xml-stylesheet-Anweisung, die auf nmap.xml an der Stelle verweist, wo es von Nmap ursprünglich installiert wurde (oder im aktuellen Arbeitsverzeichnis unter Windows). Laden Sie einfach Nmaps XML-Ausgabe in einem modernen Webbrowser, und er sollte nmap.xsl im Dateisystem finden und benutzen, um die Ergebnisse darzustellen. Wenn Sie ein anderes Stylesheet benutzen möchten, geben Sie es als Argument für --stylesheet an. Dabei müssen Sie den vollständigen Pfadnamen oder die URL angeben. Sehr häufig wird --stylesheet https://nmap.org/data/nmap.xsl benutzt. Das sagt einem Browser, dass er die neueste Version des Stylesheets von Nmap.Org laden soll. Die Option --webxml macht dasselbe, verlangt aber weniger Tipparbeit und Merkfähigkeit. Wenn man das XSL von Nmap.Org lädt, wird es einfacher, die Ergebnisse auf einem Rechner anzuschauen, auf dem kein Nmap (und folglich auch kein nmap.xsl) installiert ist. Daher ist die URL oft nützlicher, doch aus Datenschutzgründen wird standardmäßig das nmap.xsl im lokalen Dateisystem benutzt.
--webxml (lade Stylesheet von Nmap.Org)
 
    Diese bequeme Option ist nur ein Alias für --stylesheet https://nmap.org/data/nmap.xsl.
--no-stylesheet (lasse XSL-Stylesheet-Deklaration im XML weg)
 
    Geben Sie diese Option an, wenn Nmap in seiner XML-Ausgabe auf keinerlei XSL-Stylesheet verweisen soll. Die xml-stylesheet-Anweisung wird dann weggelassen.
 
= Weitere Informationen =
 
= Funktionen =
== Target Enumeration ==
== Ping-Scanning (Host-Discovery) ==
* Klassischer Ping-Scan (Network-Scan)
 
  nmap -PE -sn -oG - 192.168.0.1/24
 
* Der klassische Ping-Scan mit ICMP—Echo-Requests (-PE), aber ohne Port-Scan (-sn).
* Erweiterter Ping-Scan (Network-Scan)
 
  nmap -sP -oG - 192.168.0.1/24
 
* Dieser TCP-Ping-Scan ist eigentlich kein Ping-Scan, sondern eher eine sinnvolle Erweiterung zu einem klassischen Ping.
* Der TCP-Ping-Scan kombiniert den klassischen Ping (ICMP-Echo) mit dem TCP-SYN-Scan.
* Damit funktioniert der TCP-Ping-Scan manchmal besser als ein klassischer Ping bzw. ein einfacher ICMP-Echo-Request.


== Port-Scanning ==
=== Ausgabe steuern ===
== Service- und Versionserkennung (Service Identification) ==
[[Nmap/Ausgabe]]
* Die Versionserkennung wird mit den folgenden Optionen aktiviert und gesteuert:
  -sV (Versionserkennung)
* Aktiviert die Versionserkennung wie oben beschrieben.
* Alternativ dazu können Sie '''-A''' benutzen, was unter anderem auch die Versionserkennung aktiviert.
  --allports (keine Ports von der Versionserkennung ausschließen)
* Standardmäßig schließt Nmaps Versionserkennung den TCP-Port 9100 aus.
* Manche Drucker drucken alles aus, was an diesen Port gesendet wird.
* Dieses Verhalten kann man ändern, indem man die Exclude-Anweisung in '''nmap-service-probes''' verändert oder entfernt.
* Oder Sie geben '''--allports an''', um alle Port zu scannen, unabhängig von einer Exclude-Anweisung.
  --version-intensity <intensity> (Intensität des Versions-Scans setzen)
* Bei einem Versions-Scan '''-sV''' sendet Nmap eine Reihe von Testpaketen, die alle über einen zugeordneten Seltenheitswert zwischen eins und neun verfügen.
==Versionsvariantnen==
  --version-light
(leichten Modus setzen)
* Das ist ein Alias für '''--version-intensity 2''' aus Bequemlichkeitsgründen.
* Dieser leichte Modus macht die Versionserkennung wesentlich schneller, identifiziert die Dienste aber mit geringerer Wahrscheinlichkeit.
  --version-all
(benutze alle Testpakete)
* Das ist ein Alias für'''--version-intensity 9''', der garantiert, dass jedes einzelne Testpaket bei jedem Port ausprobiert wird.
  --version-trace
(verfolge Aktivität des Versions-Scans)
* Das bewirkt, dass Nmap umfangreiche Debugging-Information darüber ausgibt, was die Versionserkennung gerade macht.
*  Das ist eine Untermenge dessen, was Sie mit '''--packet-trace''' erhalten.
  -sR (RPC-Scan)
* Diese Methode funktioniert zusammen mit den verschiedenen Port-Scan-Methoden von Nmap.
* Dadurch kann man quasi dieselbe Information herausfinden wie mit '''rpcinfo -p''', selbst wenn der Portmapper des Ziels hinter einer Firewall liegt (oder von TCP-Wrappern geschützt wird).


== Betriebssystemerkennung (OS Identification) ==
=== 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.


=Scan-Typen=
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
==Ping-Scan==
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
1. ICMP-Echo-Ping (klassischer Ping)
Bandbreite nicht zu erschöpfen. Falls diese freie Dienstleistung missbraucht wird, wird sie abgeschaltet, und Nmap wird dann Failed to resolve given
nmap -PE 10.10.0.1 für Subnet  nmap -PE 10.10.0.1/24 oder nmap -PE 10.10.0.*
hostname/IP: scanme.nmap.org ausgeben. Diese Genehmigung gilt auch für die Hosts scanme2.nmap.org, scanme3.nmap.org usw., auch wenn diese Hosts noch
2. TCP-Ping-Scan
nicht existieren.
nmap -sn 10.10.0.1
3. TCP-SYN-Ping
nmap -PS 10.10.0.1
4. TCP-ACK-Ping
nmap -PA 10.10.0.1
5. UDP-Ping
nmap -PU 10.10.0.1
6. ICMP-Timestamp-Scan
nmap -PT 10.10.0.1
7. ICMP-Address-Scan
nmap -PM 10.10.0.1


==TCP-Full-Connect-Scan==
nmap -v scanme.nmap.org
* Connect-Scan verwendet den gleichnamigen Systemaufruf zum Scannen von Rechnern, anstatt sich auf rohe Pakete zu verlassen, wie es die meisten anderen Methoden tun.  
* Es wird normalerweise von unprivilegierten Unix-Benutzern und gegen IPv6-Ziele verwendet, da der SYN-Scan in diesen Fällen nicht funktioniert.


nmap -sT 10.10.0.1
Diese Option scannt alle reservierten TCP-Ports auf dem Rechner scanme.nmap.org. Die Option -v schaltet den ausführlichen Modus an.


== TCP-SYN-Scan ==
nmap -sS -O scanme.nmap.org/24
* Dies ist bei weitem der populärste Scan-Typ, weil es die schnellste Art ist, Ports des populärsten Protokolls (TCP) zu scannen.  
* Er ist stealthier als der Verbindungs-Scan, und er funktioniert gegen alle funktionierenden TCP-Stapel (im Gegensatz zu einigen Spezial-Scans wie dem FIN-Scan).


nmap -sS 10.10.0.1
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.


3. TCP-FIN-Scan
nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127
nmap -sF 10.10.0.1
4. TCP-XMAS-Scan
nmap -sX 10.10.0.1
5. TCP-NULL-Scan
nmap -sN 10.10.0.1


==UDP-Scan==
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.
UDP-Ports bieten viele Sicherheitslücken
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 -sU 10.10.0.1
nmap -v -iR 100000 -PN -p 80


== TCP-ACK-Scan ==
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,
* Der ACK-Scan wird häufig zur Abbildung von Firewall-Regelsätzen verwendet.
weil es Verschwendung ist, zuerst eine Reihe von Testpaketen zu senden, um festzustellen, ob ein Host aktiv ist, wenn Sie auf jedem Zielhost ohnehin
* Insbesondere hilft er zu verstehen, ob Firewall-Regeln zustandsbehaftet sind oder nicht.
nur einen Port testen.
* Der Nachteil ist, dass er nicht zwischen offenen und geschlossenen Ports unterscheiden kann.


nmap -sA 10.10.0.1
nmap -PN -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20


== TCP-Window-Scan ==
Das scannt 4096 IPs nach Webservern (ohne sie anzupingen) und speichert die Ausgabe im grepbaren und im XML-Format.


Der Window-Scan ist wie der ACK-Scan, außer dass er in der Lage ist, offene gegenüber geschlossenen Ports gegen bestimmte Rechner zu erkennen.
DAS NMAP-BUCH
nmap -sW 10.10.0.1
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.


== TCP-Maimon-Scan ==
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.


Dieser obskure Firewall-evading-Scan-Typ ähnelt einem FIN-Scan, enthält aber auch das ACK-Flag. Dadurch kann er durch mehr Paketfilter-Firewalls hindurchkommen, mit dem Nachteil, dass er gegen noch weniger Systeme funktioniert als der FIN-Scan.
== Aufruf ==
nmap -sM 10.10.0.1
[[Nmap/syntax]]


== TCP-Idle-Scan ==
== Konfiguration ==
=== Dateien ===
</noinclude>


Der Leerlauf-Scan ist der heimlichste Scan-Typ von allen und kann manchmal vertrauenswürdige IP-Adressenbeziehungen ausnutzen. Leider ist er auch langsam und komplex.
== Siehe auch ==
nmap -sI 10.10.0.1
{{Special:PrefixIndex/Nmap}}
----
* [[zenmap]]


== IP-Protokoll-Scan==
=== Dokumentation ===
* Protokoll-Scan bestimmt, welche IP-Protokolle (TCP, ICMP, IGMP usw.) vom Zielcomputer unterstützt werden.
==== Man-Page ====
* Technisch gesehen handelt es sich hierbei nicht um einen Port-Scan, da die IP-Protokollnummern und nicht die TCP- oder UDP-Portnummern durchlaufen werden.
==== Info-Pages ====
* Dennoch verwendet er nach wie vor die Option -p zur Auswahl der gescannten Protokollnummern, meldet seine Ergebnisse mit dem normalen Port-Tabellenformat und verwendet sogar dasselbe zugrunde liegende Scan-Modul wie die echten Port-Scan-Methoden.
=== Links ===
* Es ist also nahe genug an einem Port-Scan, dass es hierher gehört.
==== Projekt ====
nmap -sO 10.10.0.1
# http://nmap.org


Ohne angaben werden die 1000 wichtigsten Ports gescannt.
==== Weblinks ====
-F steht für die 100 wichtigsten Ports
# https://de.wikipedia.org/wiki/Nmap
-p steht für Port selektiv ( -p25 oder -p25-100 oder -p25,80,100 oder alle Ports über -p6000-)
-p- um alle Ports zu scannen.


===OS & Service Identication mit NMAP===
{{DEFAULTSORT:nmap}}
1. OS-Scan (OS-Detection)
[[Kategorie:nmap]]
nmap -O 10.10.0.1
2. Service-Scan / Versions-Scan
nmap -sV 10.10.0.1
3. RPC-Scan
nmap -sR 10.10.0.1
4. Kombinierter OS- & Service-Scan
nmap -O -sV 10.10.0.1


==Anwendungsbeispiele==
</noinclude>
1. Klassischer Ping-Scan
nmap -PE -sn -oG – 10.10.0.1/24
2. Erweiterter Ping-Scan
nmap -sP -oG – 10.10.0.1/24
3. SYN-TOP100-Port-Scan
nmap -sS -F 10.10.0.1
4. SYN/Version-All-Port-without-Ping-Scan
nmap -sV -Pn -p0- --reason --stats-every 60s 10.10.0.1
5. Aggressive-All-Host-All-Port-Scan
nmap -sV -Pn -p0- -T4 -A -oG - --reason --stats-every 60s 10.10.0.1/24
6. TCP-ACK-Scan
nmap -sA -F 10.10.0.1
7. TCP-FIN-Scan
nmap -sF -F 10.10.0.1
8. UDP-Port-Scan
nmap -sU -F 10.10.0.1
9. UDP-All-Port-Scan
nmap -sU -p0- --reason --stats-every 60s --max-rtt-timeout 100ms --max-retrie 1 10.10.0.1
10. List­-Scan
nmap -sL 10.10.0.1/24
=Links=
==intern==
==extern==
# http://mikiwiki.org/wiki/grep
* https://www.elektronik-kompendium.de/sites/net/2103061.htm
* https://nmap.org/man/de/man-target-specification.html
* https://nmap.org/man/de/man-output.html

Aktuelle Version vom 12. November 2024, 18:47 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 GUI Zenmap
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.

Beschreibung= Ausgabe von Nmap gegen wikipedia.de

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, z. B. 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:
  1. offen,
  2. geschlossen,
  3. 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 z. B. 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 z. B. exportiert vielleicht eine Liste von 10.000 aktuellen Adresszuweisungen (engl. leases), die Sie scannen möchten.
  • Man möchte z. B. 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 usw. 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 z. B. 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 z. B. exportiert vielleicht eine Liste von 10.000 aktuellen Adresszuweisungen (engl. leases), die Sie scannen möchten. 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 usw. 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
  1. Dienstprotokoll zu bestimmen (z. B. FTP, SSH, Telnet, HTTP), aber auch
  2. Anwendungsnamen (z. B. ISC BIND, Apache httpd, Solaris telnetd),
  3. Versionsnummer,
  4. Hostnamen, Gerätetyp (z. B. Drucker, Router),
  5. die Betriebssystemfamilie (z. B. Windows, Linux) und manchmal verschiedene Details:
  6. etwa ob ein X-Server Verbindungen annimmt,
  7. die SSH-Protokollversion
  8. oder der KaZaA-Benutzername.

Ausgabe steuern

Nmap/Ausgabe

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 usw., 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

Nmap/syntax

Konfiguration

Dateien

Siehe auch


Dokumentation

Man-Page

Info-Pages

Links

Projekt

  1. http://nmap.org

Weblinks

  1. https://de.wikipedia.org/wiki/Nmap