Zum Inhalt springen

Nmap: Unterschied zwischen den Versionen

Aus Foxwiki
Die 5 zuletzt angesehenen Seiten:  Nextcloud/ISPConfig » BigBlueButton/Status » write » Network Address Translation » nmap
K Textersetzung - „\[\[Kategorie([A-zA-z])“ durch „[[Kategorie:\1“
K Textersetzung - „<div style="column-count:3">“ durch „<div style="column-count:2">“
 
(250 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
= Network Mapper (nmap) =
'''{{BASEPAGENAME}}''' - Netzwerk-Analysewerkzeug, Sicherheits- und Portscanner
* Nmap ist ein freier Portscanner zum Scannen und Auswerten von Hosts in einem Rechnernetz.[https://de.wikipedia.org/wiki/Nmap]
* Der Name steht für Network Mapper.
* Ursprünglich für Linux entwickelt.
* Mit Einschränkungen auch für Windows-Systeme nutzbar (seit 2000).[http://translate.google.com/translate?hl=de&sl=auto&tl=de&u=https%3A%2F%2Fnmap.org%2Fbook%2Finst-windows.html]


=Netzwerke scannen=
== Beschreibung ==
Was ist Network Scanning?
=== Network Scanning ===
* Netzwerke scannen und analysieren
* Netzwerke scannen und analysieren
* Angeschlossene und aktive Systeme erkennen
* Angeschlossene und aktive Systeme erkennen
Zeile 14: Zeile 10:
* Überwachung von Betriebszeiten, Hosts oder Diensten
* Überwachung von Betriebszeiten, Hosts oder Diensten


= Zenmap =
* Neben der textbasierten Variante gibt es noch die grafische Benutzeroberfläche '''NmapFE''' zur komfortablen Einstellung von Nmap.
* Wurde mittlerweile durch die '''Zenmap'''[https://wiki.itw-berlin.net/index.php?title=Befehl:zenmap] genannte GUI abgelöst.


= Syntax =
=== Network Mapper (nmap) ===
nmap [Scan Type(n)] [Optionen] {Ziel}
[[Datei:Zenmap.png|mini|500px|Nmap GUI [[Zenmap]]]]
; Portscanner
Scannen und Auswerten von Hosts in einem Rechnernetz


= Einfacher Portscan =
; Nmap ("Network Mapper")
== nmap ohne Optionen ==
Werkzeug für die Netzwerkanalyse und Sicherheitsüberprüfung
* 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 wurde entworfen, um große Netzwerke Schnell zu scannen
* Ein einfacher Port-Scanner wird alle Ports pauschal in zwei oder drei Zustände einteilen:
* Funktioniert auch bei einzelnen Hosts
# offen,
# geschlossen,
# gefiltert / geblockt (offen/geschlossen) jeweils mit und ohne Antwort.


= Port-Zustände =
; Nmap benutzt rohe IP-Pakete
==Zustand offen==
Auf neuartige Weise, um festzustellen
* Der Zustand "Offen" bedeutet, dass eine Anwendung oder ein Dienst bereit ist TCP-Verbindungen oder UDP-Pakete auf diesem Port anzunehmen.
* welche Hosts im Netzwerk verfügbar sind
* Um Kommunikationsverbindungen betreiben zu können, bedarf es offener Ports.
* welche Dienste (Anwendungsname und -version) diese Hosts bieten
* Anzahl offener Ports begrenzen, um die Angriffsfläche so klein wie möglich zu halten.
* welche Betriebssysteme (und Versionen davon) darauf laufen
* Offene Ports werden zusätzlich geschützt oder Verbindungsmöglichkeiten eingeschränkt.
* welche Art von Paketfiltern/-Firewalls benutzt werden
==Zustand geschlossen==
* sowie Dutzende anderer Eigenschaften
* 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.
* 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.
* Dann kann für diesen Port weder der Status "offen" noch "geschlossen" gelten.
==Zustand gefiltert bzw. blockiert==
* Dafür gibt es den Zustand "gefiltert" oder "blockiert".
* Um offene, aber auch geschlossene Ports zu schützen, setzen Systemadministratoren einen Portfilter (Firewall) ein.
* 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.
* Gefiltert bedeutet, dass eine Firewall, ein Filter oder ein anderes Netzwerkhindernis den Port blockiert.


= Ziele festlegen =
; Verwendung
* NMAP ist bei der Angabe des Scan-Ziels sehr flexibel.
Auch wenn Nmap üblicherweise für Sicherheitsüberprüfungen verwendet wird
* Das kann ein Domain-Name sein, eine IP-Adresse oder ein ganzes Subnetz.
* wird es von vielen Systemen und Netzwerkadministratoren für Routineaufgaben benutzt
    Domain: www. XXX.XX
* beispielsweise
    IP-Adresse: 192.168.1.1
** Netzwerkinventarisierung
    Subnetz: 192.168.1.1/24
** Verwaltung von Ablaufplänen für Dienstaktualisierungen
    Subnetz: 192.168.1.*
** Überwachung von Betriebszeiten von Hosts oder Diensten
* 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.
; Ausgabe
* Die Anzahl der Ports reicht von 1 bis 65.535.
Die Ausgabe von Nmap ist eine Liste gescannter Ziele
* NMAP scannt standardmäßig nur etwa '''1.000''' der meistgenutzten Ports, die in der Datenbank "nmap-services" aufgelistet sind.
* Mit zusätzlicher Information zu jedem, abhängig von den benutzten Optionen
* Mit der Option "-F" (für engl. fast, dt. schnell) kann man den Port-Scan sogar auf die 100 meistgenutzten Ports beschränken.
** Die entscheidende Information dabei steht in der "Tabelle der interessanten Ports"
* Interessante Ports scannen mit der Option "-p":
** Diese Tabelle listet die Portnummer und das -protokoll sowie den Dienstnamen und -zustand auf
{| class="wikitable"
** Der Zustand ist entweder offen, gefiltert, geschlossen oder ungefiltert
|+
** Offen bedeutet, dass auf diesem Port des Zielrechners eine
! Port(s) !! Option
 
|-
== Linzenz ==
| 22 ||-p22
* [[Open Source]]
* [[Freie Software]]
 
== Anwendung ==
=== Port-Zustände ===
Anwendung auf eingehende Verbindungen/Pakete lauscht
 
{| class="wikitable options big"
|-
|-
|22,25,80||-p22,25,80
! Zustand !! Beschreibung
|-
|-
|1 - 100||-p-100
| Gefiltert ||  
* Eine Firewall, ein Filter oder ein anderes Netzwerkhindernis blockiert den Port
* sodass [[nmap]] nicht festellen kenn, ob er offen oder geschlossen ist
|-
|-
|80 - 88||-p80-88
| Geschlossen ||
* Für geschlossene Ports gibt es keine Anwendung, die auf ihnen lauscht, auch wenn sie jederzeit geöffnet werden könnten
|-
|-
|>60000||-p60000-
| Ungefiltert ||
* Als ungefiltert werden Ports dann klassifiziert, wenn sie auf Nmaps Testpakete antworten, Nmap aber nicht feststellen kann, ob sie offen oder gechlossen sind
|-
|-
|1 - 65535||-p-
| <nowiki>offen|gefiltert</nowiki></br><nowiki>geschlossen|gefiltert</nowiki> ||
* 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
|}
|}


; Details
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


== Einzelne Rechner ==
; Weitere Informationen zum Ziel
* Der Zielbereich ist eine einzelne IP-Adresse
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
* 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 ==
=== Beispiel ===
===Bereich auswählen===
; Typischer Nmap-Scan
* 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 [https://de.wikipedia.org/wiki/Classless_Inter-Domain_Routing].
* 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-Bits festgelegt sind.


===Teilbereich auswählen===
<syntaxhighlight lang="bash" highlight="1" copy>
* Die CIDR-Notation ist kurz, aber nicht immer flexibel genug.
sudo nmap -A -T4 scanme.nmap.org
* 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.
</syntaxhighlight>
* 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===
{| class="wikitable options big"
* 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.
! Argument !! Beschreibung
===Zielauswahl===
|-
* Auch wenn Ziele normalerweise in der Kommandozeile angegeben werden, gibt es auch die folgenden Optionen, um die Zielauswahl zu steuern:
| -A || Betriebssystem- und Versionserkennung, Script-Scanning, Traceroute
  -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.
| -T4 || Schnellere Ausführung
* 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.
| scanme.nmap.org || Zielhost
* 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===
; Ausgabe
* Für internetweite Umfragen und andere Forschungsaktivitäten möchte man Ziele vielleicht zufällig auswählen.
<syntaxhighlight lang="bash" highlight="" line>
* Das kann man mit der Option '''-iR''', die als Argument die Anzahl der zu erzeugenden IPs annimmt.
Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-31 10:49 CEST
* Nmap lässt automatisch bestimmte unerwünschte IPs aus, wie solche in privaten, Multicast- oder unbesetzten Adressbereichen.
Nmap scan report for scanme.nmap.org (45.33.32.156)
* Für einen endlosen Scan kann man das Argument '''0''' angeben.  
Host is up (0.17s latency).
===Beispiele===
Other addresses for scanme.nmap.org (not scanned): 2600:3c01::f03c:91ff:fe18:bb2f
* Befehl
Not shown: 994 closed tcp ports (reset)
   nmap -sS -PS80 -iR 0 -p 80
PORT      STATE    SERVICE    VERSION
sucht Webserver , auf denen man stöbern kann.
22/tcp    open    ssh        OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0)
*Befehl
| ssh-hostkey:
  --exclude <host1>[,<host2>[,...]] (Ziele ausklammern)
|  1024 ac:00:a0:1a:82:ff:cc:55:99:dc:67:2b:34:97:6b:75 (DSA)
gibt eine mit Kommata getrennte Liste von Zielen an, die vom Scan ausgeschlossen sein sollen, selbst wenn sie in den angegebenen Netzwerkbereich fallen.
|  2048 20:3d:2d:44:62:2a:b0:5a:9d:b5:b3:05:14:c2:a6:b2 (RSA)
* Die übergebene Liste benutzt die normale Nmap-Syntax und kann folglich Hostnamen, CIDR-Netzblöcke, Oktettbereiche usw. enthalten.  
|   256 96:02:bb:5e:57:54:1c:4e:45:2f:56:4c:4a:24:b2:57 (ECDSA)
*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.
|_  256 33:fa:91:0f:e0:e1:7b:1f:6d:05:a2:b0:f1:54:41:56 (ED25519)
* Oder Unternetze, die von anderen Leuten administriert werden.
80/tcp    open    http        Apache httpd 2.4.7 ((Ubuntu))
*Befehl
|_http-favicon: Nmap Project
  --excludefile<-exclude_file> (Liste aus Datei ausklammern)
|_http-server-header: Apache/2.4.7 (Ubuntu)
* Das bietet dieselbe Funktionalität wie die Option '''--exclude'''.
|_http-title: Go ahead and ScanMe!
* Unterschied: die ausgeklammerten Ziele in der mit Zeilenumbrüchen, Leerzeichen oder Tabulatoren getrennten Datei <exclude_file> statt auf der Kommandozeile angegeben werden.
135/tcp  filtered msrpc
139/tcp  filtered netbios-ssn
9929/tcp  open    nping-echo  Nping echo
31337/tcp open    tcpwrapped
Aggressive OS guesses: Linux 4.19 - 5.15 (98%), Linux 2.6.32 (94%), Linux 4.0 - 4.4 (94%), Linux 4.15 (94%), Linux 5.4 (94%), IPFire 2.27 (Linux 5.15 - 6.1) (94%), Linux 2.6.32 or 3.10 (93%), Linux 2.6.32 - 2.6.35 (92%), Linux 2.6.32 - 2.6.39 (92%), Linux 5.0 - 5.14 (91%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 22 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel


= Dienste identifizieren =
TRACEROUTE (using port 199/tcp)
* Die Ports 25/tcp, 80/tcp und 53/udp sind offen.
HOP RTT      ADDRESS
* 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.
1  0.08 ms  OPNsense.localdomain (192.168.1.1)
* 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.  
2  12.58 ms  ip5b4210fe.dynamic.kabel-deutschland.de (91.66.16.254)
* Eine genaue Versionsnummer hilft bei der Bestimmung der Exploits, für die ein Server anfällig ist.
3  11.36 ms  ip53a9b3c6.static.kabel-deutschland.de (83.169.179.198)
* Die Versionserkennung hilft Ihnen, an diese Information heranzukommen.
4  15.19 ms  ip5886c088.static.kabel-deutschland.de (88.134.192.136)
* Nachdem TCP- und/oder UDP-Ports mit einer der anderen Scan-Methoden entdeckt wurden, fragt die Versionserkennung diese Ports ab.
5  14.70 ms  145.254.3.196
* 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.  
6  20.72 ms  ae9-100-xcr1.hac.cw.net (195.89.99.1)
* Nmap versucht, das
7  15.94 ms  ae9-100-xcr1.hac.cw.net (195.89.99.1)
#Dienstprotokoll zu bestimmen (z.B. FTP, SSH, Telnet, HTTP), aber auch
8  23.11 ms  hbg-b2-link.ip.twelve99.net (80.239.193.100)
#Anwendungsnamen (z.B. ISC BIND, Apache httpd, Solaris telnetd),
9  15.80 ms  hbg-bb3-link.ip.twelve99.net (62.115.120.70)
#Versionsnummer,
10  29.97 ms  ldn-bb2-link.ip.twelve99.net (62.115.122.161)
#Hostnamen, Gerätetyp (z.B. Drucker, Router),
11  ... 12
#die Betriebssystemfamilie (z.B. Windows, Linux) und manchmal verschiedene Details:
13  108.32 ms akamai-ic-371098.ip.twelve99-cust.net (62.115.38.45)
#etwa ob ein X-Server Verbindungen annimmt,
14  107.04 ms ae2.r01.lga01.icn.netarch.akamai.com (23.203.156.36)
#die SSH-Protokollversion
15  124.00 ms ae26.r02.ord01.icn.netarch.akamai.com (23.32.62.118)
#oder der KaZaA-Benutzername.
16  173.41 ms ae16.r02.sjc01.icn.netarch.akamai.com (23.193.113.29)
17  171.39 ms ae2.r12.sjc01.ien.netarch.akamai.com (23.207.232.41)
18  225.94 ms ae22.gw3.scz1.netarch.akamai.com (23.203.158.51)
19  ... 21
22  169.40 ms scanme.nmap.org (45.33.32.156)


= Ausgabe steuern =
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
==Formate==
Nmap done: 1 IP address (1 host up) scanned in 26.06 seconds</syntaxhighlight>
* 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 sie 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 einfache grepbare[http://mikiwiki.org/wiki/grep] Ausgaben, 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.


==Syntax==
* Die interaktive Ausgabe ist standardmäßig vorgegeben und verfügt über keine eigenen Kommandozeilenoptionen.
* 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.
* Eine normale Ausgabe für eine eigene Untersuchung speichern und eine XML-Ausgabe desselben Scans für eine programmbasierte Analyse.
* Das erreicht man mit den Optionen '''-oX myscan.xml''' und '''-oN myscan.nmap'''.
* Obwohl '''myscan.xml''' benutzt wird, empfehlen sich aussagekräftigere Namen.
* Der Befehl '''nmap -oX myscan.xml target XML'' speichert in '''myscan.xml'''.
* Mit einem Minuszeichen als Argument für eines der Formate eingeben. Dann schaltet Nmap die interaktive Ausgabe ab.
* Das heißt, der Befehl '''nmap -oX - target''' schreibt nur die XML-Ausgabe auf die Standardausgabe.
* Nmap bietet auch Optionen zur Steuerung der Scan-Ausführlichkeit und Optionen, um an Ausgabedateien anzuhängen, statt sie zu überschreiben.


==Nmap-Ausgabeformate==
Normale Ausgabe
  -oN <filespec>
* Verlangt, dass eine normale Ausgabe in der angegebenen Datei gespeichert wird.
* Wie oben erwähnt, unterscheidet sich das leicht von der interaktiven Ausgabe.
XML-Ausgabe
  -oX <filespec>
* 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 für die Benutzung durch Programme gedacht, kann aber auch 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.
* 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 verfügbar.
* Beispiele sind Nmap::Scanner und Nmap::Parser für Perl in CPAN.
===Optionen===
* Die XML-Ausgabe verweist auf ein XSL-Stylesheet, mit dem man die Ergebnisse als HTML formatieren kann.
**Nutzung: XML-Ausgabe in einem Webbrowser wie Firefox oder IE laden.
** Funktioniert nur auf dem Rechner, auf dem Sie Nmap ausgeführt haben (oder auf einem, der ähnlich konfiguriert ist).
** Der Pfad zu '''nmap.xsl''' ist darin festkodiert.
** Um portable XML-Dateien zu erzeugen, die auf allen mit dem Web verbundenen Rechnern als HTML angezeigt werden, nutzt man die Optionen '''--webxml''' oder '''--stylesheet'''.
====Optionen für Ausführlichkeit und Debugging====
Größere Ausführlichkeit
  -v
* 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.
* Es werden Schätzungen für die Dauer bis zur Fertigstellung angegeben.
* Noch mehr Information erhält man, wenn man diese Option zweimal oder noch öfter angibt.
* Allerdings gibt es in den anderen Modi einige Änderungen, bei denen die Ausgabegröße durch Weglassen einiger Details erheblich reduziert wird.
Erhöhe oder setze Debugging-Stufe
  -d [level]
* Beim Debugging noch wesentlich mehr Daten bekommen.
* Die Debug-Stufe auch als Argument an -d übergeben. So setzt z.B. -d9 die Stufe neun.
* Das ist die höchste verfügbare Stufe.
Gründe für Host- und Portzustände
  --reason
* 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.
* 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.
* Der TCP-Connect-Scan (-sT) wird durch die Implementierung des connect-Systemaufrufs beschränkt.
Periodische Timing-Statistik ausgeben
  --stats-every <time>
* Gibt periodisch eine Timing-Statusmeldung nach einem Intervall der Länge <time> aus.
Gesendete und empfangene Pakete und Daten mitverfolgen
  --packet-trace
* Bewirkt, dass Nmap für jedes gesendete oder empfangene Paket eine Zusammenfassung ausgibt.
Zeige nur offene (oder möglicherweise offene) Ports an
  --open
* Manchmal interessieren nur offene Ports, und nicht Ports, die geschlossen, gefiltert und geschlossen|gefiltert sind
Liste Schnittstellen und Routen auf
  --iflist
* Gibt die Liste der Schnittstellen und Systemrouten aus, die Nmap entdeckt hat.
Protokolliere Fehler/Warnungen in eine Datei im normalen Ausgabeformat .
  --log-errors
* Von Nmap ausgegebene Warnungen und Fehlermeldungen gehen nur auf den Bildschirm (interaktive Ausgabe).
* Eine Alternative zu '''--log-error'''s ist die Umleitung der interaktiven Ausgabe (inklusive des Standardfehlerstroms) in eine Datei.


==OPTIONSÜBERSICHT==
<noinclude>
nmap [Scan Type(s)] [Options] {target specification}
===ZIEL-SPEZIFIKATION===
*Can pass hostnames, IP addresses, networks, etc.
*Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
*-iL <inputfilename>: Input from list of hosts/networks* -iR <num hosts>: Choose random targets
*--exclude <host1[,host2][,host3],...>: Exclude hosts/networks
*--excludefile <exclude_file>: Exclude list from file


===HOST ENTDECKUNG===
== Anhang ==
*-sL: List Scan - simply list targets to scan
=== Siehe auch ===
*-sP: Ping Scan - go no further than determining if host is online
<div style="column-count:2">
*-PN: Treat all hosts as online -- skip host discovery
<categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree>
*-PS/PA/PU[portlist]: TCP SYN/ACK or UDP discovery to given ports
</div>
*-PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes
----
*-PO[protocol list]: IP Protocol Ping
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
*-n/-R: Never do DNS resolution/Always resolve [default: sometimes]
*--dns-servers <serv1[,serv2],...>: Specify custom DNS servers
*--system-dns: Use OS's DNS resolver
*--traceroute: Trace hop path to each host


===SCAN TECHNIKEN===
=== Dokumentation ===
*-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
; Man-Page
*-sU: UDP Scan
# [https://manpages.debian.org/bookworm/nmap/nmap.1.de.html nmap(1)]
*-sN/sF/sX: TCP Null, FIN, and Xmas scans
*--scanflags <flags>: Customize TCP scan flags
*-sI <zombie host[:probeport]>: Idle scan
*-sO: IP protocol scan
*-b <FTP relay host>: FTP bounce scan


===PORT SPEZIFIKATION und SCAN BEFEHL===
<!--
*-p <port ranges>: Only scan specified ports
; Info-Pages
* Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080
-->
*-F: Fast mode - Scan fewer ports than the default scan
*-r: Scan ports consecutively - don't randomize
*--top-ports <number>: Scan <number> most common ports
*--port-ratio <ratio>: Scan ports more common than <ratio>


===SERVICE/VERSIONS ERKENNUNG===
=== Links ===
*-sV: Probe open ports to determine service/version info
==== Projekt ====
*--version-intensity <level>: Set from 0 (light) to 9 (try all probes)
# https://nmap.org
*--version-light: Limit to most likely probes (intensity 2)
*--version-all: Try every single probe (intensity 9)
*--version-trace: Show detailed version scan activity (for debugging)


===SCRIPT SCAN===
==== Weblinks ====
*-sC: equivalent to --script=default
# https://de.wikipedia.org/wiki/Nmap
*--script=<Lua scripts>: <Lua scripts> is a comma separated list of directories, script-files or script-categories
*--script-args=<n1=v1,[n2=v2,...]>: provide arguments to scripts
*--script-trace: Show all data sent and received
*--script-updatedb: Update the script database.


===OS ERKENNUNG===
[[Kategorie:nmap]]
OS-Fingerprinting (engl. für „Betriebssystem-Fingerabdruck“)
*-O: Enable OS detection
*--osscan-limit: Limit OS detection to promising targets
*--osscan-guess: Guess OS more aggressively


===TIMING und DARSTELLUNG===
{{DEFAULTSORT:nmap}}
*Options which take <time> are in milliseconds, unless you append 's'(seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m).
{{DISPLAYTITLE:nmap}}
*-T<0-5>: Set timing template (higher is faster)
*--min-hostgroup/max-hostgroup <size>: Parallel host scan group sizes
*--min-parallelism/max-parallelism <numprobes>: Probe parallelization
*--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: Specifies probe round trip time.
*--max-retries <tries>: Caps number of port scan probe retransmissions.
*--host-timeout <time>: Give up on target after this long
*--scan-delay/--max-scan-delay <time>: Adjust delay between probes
*--min-rate <number>: Send packets no slower than <number> per second
*--max-rate <number>: Send packets no faster than <number> per second
 
===FIREWALL/IDS UMGEHUNG und -TÄUSCHUNG===
*-f; --mtu <val>: fragment packets (optionally w/given MTU)
*-D <decoy1,decoy2[,ME],...>: Cloak a scan with decoys
*-S <IP_Address>: Spoof source address
*-e <iface>: Use specified interface
*-g/--source-port <portnum>: Use given port number
*--data-length <num>: Append random data to sent packets
*--ip-options <options>: Send packets with specified ip options
*--ttl <val>: Set IP time-to-live field
*--spoof-mac <mac address/prefix/vendor name>: Spoof your MAC address
*--badsum: Send packets with a bogus TCP/UDP checksum
 
===OUTPUT===
*-oN/-oX/-oS/-oG <file>: Output scan in normal, XML, s|<rIpt kIddi3,and Grepable format, respectively, to the given filename.
*-oA <basename>: Output in the three major formats at once
*-v: Increase verbosity level (use twice or more for greater effect)
*-d[level]: Set or increase debugging level (Up to 9 is meaningful)
*--reason: Display the reason a port is in a particular state
*--open: Only show open (or possibly open) ports
*--packet-trace: Show all packets sent and received
*--iflist: Print host interfaces and routes (for debugging)
*--log-errors: Log errors/warnings to the normal-format output file
*--append-output: Append to rather than clobber specified output files
*--resume <filename>: Resume an aborted scan
*--stylesheet <path/URL>: XSL stylesheet to transform XML output to HTML
*--webxml: Reference stylesheet from Nmap.Org for more portable XML
*--no-stylesheet: Prevent associating of XSL stylesheet w/XML output
 
===MISC===
MISC ("Minimal instruction set computer" engl. für Computer mit minimalem Befehlssatz)
*-6: Enable IPv6 scanning
*-A: Enables OS detection and Version detection, Script scanning and Traceroute
*--datadir <dirname>: Specify custom Nmap data file location
*--send-eth/--send-ip: Send using raw ethernet frames or IP packets
*--privileged: Assume that the user is fully privileged
*--unprivileged: Assume the user lacks raw socket privileges
*-V: Print version number
*-h: Print this help summary page.
 
===BEISPIELE===
*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
 
==Weitere Ausgabeoptionen==
  --append-output
(an Ausgabedateien hinzufügen, statt sie zu überschreiben)
*Wenn man einen Dateinamen für ein Ausgabeformat wie z.B. -oX oder -oN angibt, wird diese Datei standardmäßig überschrieben.
* Wenn man deren Inhalt lieber behalten und die neuen Ergebnisse anhängen möchten, benutzen Sie die Option '''--append-output'''. .
  --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.
*Es gibt 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.
  --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.
  --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)
* Gibt man die Option an, dann wird Nmap in seiner XML-Ausgabe auf keinerlei XSL-Stylesheet verweisen.
* Die xml-stylesheet-Anweisung wird dann weggelassen.
 
=Links=
==intern==
# [[Linux:Befehl:nmap:Portscan-Typen]]
# [[Nmap-Zusatzfunktionen]]
# [[Befehl:zenmap]]
# [[Windows:Firewall]]
 
== Weblinks ==
# https://de.wikipedia.org/wiki/Nmap
# http://translate.google.com/translate?hl=de&sl=auto&tl=de&u=https%3A%2F%2Fnmap.org%2Fbook%2Finst-windows.html
# https://de.wikipedia.org/wiki/Classless_Inter-Domain_Routing
# http://mikiwiki.org/wiki/grep
# https://svn.nmap.org/nmap/docs/nmap.xsl
# https://nmap.org/man/de/man-os-detection.html
# 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
# https://www.elektronik-kompendium.de/sites/net/2103021.htm


[[Kategorie:Befehle]]
</noinclude>
[[Kategorie:Linux:Befehl]]

Aktuelle Version vom 28. Juni 2025, 11:11 Uhr

Nmap - Netzwerk-Analysewerkzeug, Sicherheits- und Portscanner

Beschreibung

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


Network Mapper (nmap)

Nmap GUI Zenmap
Portscanner

Scannen und Auswerten von Hosts in einem Rechnernetz

Nmap ("Network Mapper")

Werkzeug für die Netzwerkanalyse und Sicherheitsüberprüfung

  • Es wurde entworfen, um große Netzwerke Schnell zu scannen
  • Funktioniert auch bei einzelnen Hosts
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
Verwendung

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
    • Überwachung von Betriebszeiten von Hosts oder Diensten
Ausgabe

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

Linzenz

Anwendung

Port-Zustände

Anwendung auf eingehende Verbindungen/Pakete lauscht

Zustand Beschreibung
Gefiltert
  • Eine Firewall, ein Filter oder ein anderes Netzwerkhindernis blockiert den Port
  • sodass nmap nicht festellen kenn, ob er offen oder geschlossen ist
Geschlossen
  • Für geschlossene Ports gibt es keine Anwendung, die auf ihnen lauscht, auch wenn sie jederzeit geöffnet werden könnten
Ungefiltert
  • Als ungefiltert werden Ports dann klassifiziert, wenn sie auf Nmaps Testpakete antworten, Nmap aber nicht feststellen kann, ob sie offen oder gechlossen sind
offen|gefiltert
geschlossen|gefiltert
  • 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
Details

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
Weitere Informationen zum Ziel

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

Beispiel

Typischer Nmap-Scan
sudo nmap -A -T4 scanme.nmap.org
Argument Beschreibung
-A Betriebssystem- und Versionserkennung, Script-Scanning, Traceroute
-T4 Schnellere Ausführung
scanme.nmap.org Zielhost
Ausgabe
Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-31 10:49 CEST
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.17s latency).
Other addresses for scanme.nmap.org (not scanned): 2600:3c01::f03c:91ff:fe18:bb2f
Not shown: 994 closed tcp ports (reset)
PORT      STATE    SERVICE     VERSION
22/tcp    open     ssh         OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   1024 ac:00:a0:1a:82:ff:cc:55:99:dc:67:2b:34:97:6b:75 (DSA)
|   2048 20:3d:2d:44:62:2a:b0:5a:9d:b5:b3:05:14:c2:a6:b2 (RSA)
|   256 96:02:bb:5e:57:54:1c:4e:45:2f:56:4c:4a:24:b2:57 (ECDSA)
|_  256 33:fa:91:0f:e0:e1:7b:1f:6d:05:a2:b0:f1:54:41:56 (ED25519)
80/tcp    open     http        Apache httpd 2.4.7 ((Ubuntu))
|_http-favicon: Nmap Project
|_http-server-header: Apache/2.4.7 (Ubuntu)
|_http-title: Go ahead and ScanMe!
135/tcp   filtered msrpc
139/tcp   filtered netbios-ssn
9929/tcp  open     nping-echo  Nping echo
31337/tcp open     tcpwrapped
Aggressive OS guesses: Linux 4.19 - 5.15 (98%), Linux 2.6.32 (94%), Linux 4.0 - 4.4 (94%), Linux 4.15 (94%), Linux 5.4 (94%), IPFire 2.27 (Linux 5.15 - 6.1) (94%), Linux 2.6.32 or 3.10 (93%), Linux 2.6.32 - 2.6.35 (92%), Linux 2.6.32 - 2.6.39 (92%), Linux 5.0 - 5.14 (91%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 22 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE (using port 199/tcp)
HOP RTT       ADDRESS
1   0.08 ms   OPNsense.localdomain (192.168.1.1)
2   12.58 ms  ip5b4210fe.dynamic.kabel-deutschland.de (91.66.16.254)
3   11.36 ms  ip53a9b3c6.static.kabel-deutschland.de (83.169.179.198)
4   15.19 ms  ip5886c088.static.kabel-deutschland.de (88.134.192.136)
5   14.70 ms  145.254.3.196
6   20.72 ms  ae9-100-xcr1.hac.cw.net (195.89.99.1)
7   15.94 ms  ae9-100-xcr1.hac.cw.net (195.89.99.1)
8   23.11 ms  hbg-b2-link.ip.twelve99.net (80.239.193.100)
9   15.80 ms  hbg-bb3-link.ip.twelve99.net (62.115.120.70)
10  29.97 ms  ldn-bb2-link.ip.twelve99.net (62.115.122.161)
11  ... 12
13  108.32 ms akamai-ic-371098.ip.twelve99-cust.net (62.115.38.45)
14  107.04 ms ae2.r01.lga01.icn.netarch.akamai.com (23.203.156.36)
15  124.00 ms ae26.r02.ord01.icn.netarch.akamai.com (23.32.62.118)
16  173.41 ms ae16.r02.sjc01.icn.netarch.akamai.com (23.193.113.29)
17  171.39 ms ae2.r12.sjc01.ien.netarch.akamai.com (23.207.232.41)
18  225.94 ms ae22.gw3.scz1.netarch.akamai.com (23.203.158.51)
19  ... 21
22  169.40 ms scanme.nmap.org (45.33.32.156)

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 26.06 seconds



Anhang

Siehe auch


Dokumentation

Man-Page
  1. nmap(1)


Links

Projekt

  1. https://nmap.org

Weblinks

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