Nmap: Unterschied zwischen den Versionen
Zeile 239: | Zeile 239: | ||
* Von Nmap ausgegebene Warnungen und Fehlermeldungen gehen nur auf den Bildschirm (interaktive Ausgabe). | * 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. | * Eine Alternative zu '''--log-error'''s ist die Umleitung der interaktiven Ausgabe (inklusive des Standardfehlerstroms) in eine Datei. | ||
====Übersicht==== | |||
Usage: nmap [Scan Type(s)] [Options] {target specification} | |||
=====TARGET SPECIFICATION===== | |||
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 DISCOVERY===== | |||
-sL: List Scan - simply list targets to scan | |||
-sP: Ping Scan - go no further than determining if host is online | |||
-PN: Treat all hosts as online -- skip host discovery | |||
-PS/PA/PU[portlist]: TCP SYN/ACK or UDP discovery to given ports | |||
-PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes | |||
-PO[protocol list]: IP Protocol Ping | |||
-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 TECHNIQUES===== | |||
-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans | |||
-sU: UDP Scan | |||
-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 SPECIFICATION AND SCAN ORDER===== | |||
-p <port ranges>: Only scan specified ports | |||
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/VERSION DETECTION===== | |||
-sV: Probe open ports to determine service/version info | |||
--version-intensity <level>: Set from 0 (light) to 9 (try all probes) | |||
--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====)= | |||
-sC: equivalent to --script=default | |||
--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 DETECTION===== | |||
-O: Enable OS detection | |||
--osscan-limit: Limit OS detection to promising targets | |||
--osscan-guess: Guess OS more aggressively | |||
=====TIMING AND PERFORMANCE===== | |||
Options which take <time> are in milliseconds, unless you append 's' | |||
(seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m). | |||
-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 EVASION AND SPOOFING===== | |||
-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===== | |||
-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. | |||
=====EXAMPLES===== | |||
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==== | ====Weitere Ausgabeoptionen==== |
Version vom 15. März 2021, 09:35 Uhr
Network Mapper (nmap)
- Nmap ist ein freier Portscanner zum Scannen und Auswerten von Hosts in einem Rechnernetz.[1]
- Der Name steht für Network Mapper.
- Ursprünglich für Linux entwickelt.
- Mit Einschränkungen auch für Windows-Systeme nutzbar (seit 2000).[2]
Netzwerke scannen
Was ist Network Scanning?
- Netzwerke scannen und analysieren
- angeschlossene und aktiven Systeme erkennen
- Details zu Diensten, Konfigurationen und Versionen bestimmen
- Netzwerk-Inventarisierung
- Dienste-Aktualisierungen prüfen
- Überwachung von Betriebszeiten, Hosts oder Diensten
Zenmap
- Neben der textbasierten Variante gibt es noch die grafische Benutzeroberfläche NmapFE zur komfortablen Einstellung von Nmap.
- Wurde mittlerweile durch die Zenmap[3] genannte GUI abgelöst.
Syntax
nmap [Scan Type(n)] [Optionen] {Ziel}
Einfacher Portscan
nmap ohne Optionen
- Es geht darum herauszufinden, ob ein Port offen ist, welche Anwendung dahinter läuft und ob dort Sicherheitslücken und Schwachstellen zu vermuten sind.
- Ein einfacher Port-Scanner wird alle Ports pauschal in zwei oder drei Zustände einteilen:
- offen,
- geschlossen,
- gefiltert (offen/geschlossen).
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
- 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":
- Für den Port 22 verwendet man die Option "-p22".
- 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".
- 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-".
- Alle Ports von 1 bis 65.535 scannen: Option "-p-".
Einzelne Rechner
- Der Zielbereich ist eine einzelne IP-Adresse
- Standardmäßig arbeitet Nmap mit IPv4 (es geht aber auch IPv6)
- Hier wurde ein Linux-PC von einem Windows-7-Rechner aus gescannt:
- 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 [4].
- 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.
- 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
- 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.
- Möchte man alle IP-Adressen außer denjenigen scannen, um Hosts zu finden, die unautorisierte statische IP-Adressen benutzen.
- 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.
Dienste identifizieren
- Die Ports 25/tcp, 80/tcp und 53/udp sind offen.
- Dank der Datenbank in nmap-services gibt Nmap noch aus, dass diese Ports wahrscheinlich jeweils zu einem Mailserver (SMTP), Webserver (HTTP) und Nameserver (DNS) gehören.
- Selbst wenn Nmap recht hat und auf dem Server im obigen Beispiel SMTP-, HTTP- und DNS-Server laufen, ist das nicht besonders viel an Information.
- Eine genaue Versionsnummer hilft bei der Bestimmung der Exploits, für die ein Server anfällig ist.
- Die Versionserkennung hilft Ihnen, an diese Information heranzukommen.
- Nachdem TCP- und/oder UDP-Ports mit einer der anderen Scan-Methoden entdeckt wurden, fragt die Versionserkennung diese Ports ab.
- Die Datenbank in nmap-service-probes enthält Testpakete für die Abfrage verschiedenster Dienste und Ausdrücke für den Vergleich und das Parsen der Antworten.
- Nmap versucht, das
- Dienstprotokoll zu bestimmen (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.
Ausgabe steuern
Formate
- 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[5] 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
-oN <filespec>
(normale Ausgabe)
- Verlangt, dass eine normale Ausgabe in der angegebenen Datei gespeichert wird.
- Wie oben erwähnt, unterscheidet sich das leicht von der interaktiven Ausgabe.
-oX <filespec>
(XML-Ausgabe)
- 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
-v
(größere Ausführlichkeit)
- 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.
-d [level]
(erhöhe oder setze Debugging-Stufe)
- 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.
--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.
- 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.
--stats-every
(periodische Timing-Statistik ausgeben)
- Gibt periodisch eine Timing-Statusmeldung nach einem Intervall der Länge
--packet-trace
(gesendete und empfangene Pakete und Daten mitverfolgen)
- Bewirkt, dass Nmap für jedes gesendete oder empfangene Paket eine Zusammenfassung ausgibt.
--open
(zeige nur offene (oder möglicherweise offene) Ports an)
- Manchmal interessieren nur offene Ports, und nicht Ports, die geschlossen, gefiltert und geschlossen|gefiltert sind.
--iflist
(liste Schnittstellen und Routen auf)
- Gibt die Liste der Schnittstellen und Systemrouten aus, die Nmap entdeckt hat. .
--log-errors
(protokolliere Fehler/Warnungen in eine Datei im normalen Ausgabeformat)
- Von Nmap ausgegebene Warnungen und Fehlermeldungen gehen nur auf den Bildschirm (interaktive Ausgabe).
- Eine Alternative zu --log-errors ist die Umleitung der interaktiven Ausgabe (inklusive des Standardfehlerstroms) in eine Datei.
Übersicht
Usage: nmap [Scan Type(s)] [Options] {target specification}
TARGET SPECIFICATION
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 DISCOVERY
-sL: List Scan - simply list targets to scan -sP: Ping Scan - go no further than determining if host is online -PN: Treat all hosts as online -- skip host discovery -PS/PA/PU[portlist]: TCP SYN/ACK or UDP discovery to given ports -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes -PO[protocol list]: IP Protocol Ping -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 TECHNIQUES
-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans -sU: UDP Scan -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 SPECIFICATION AND SCAN ORDER
-p <port ranges>: Only scan specified ports 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/VERSION DETECTION
-sV: Probe open ports to determine service/version info --version-intensity <level>: Set from 0 (light) to 9 (try all probes) --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====)
-sC: equivalent to --script=default --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 DETECTION
-O: Enable OS detection --osscan-limit: Limit OS detection to promising targets --osscan-guess: Guess OS more aggressively
TIMING AND PERFORMANCE
Options which take
FIREWALL/IDS EVASION AND SPOOFING
-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
-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.
EXAMPLES
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[6].
--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.
Quellen
- 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
Links
intern
- https://wiki.itw-berlin.net/index.php?title=Portscan-Typen
- https://wiki.itw-berlin.net/index.php?title=Nmap-Zusatzfunktionen
Linux
3. https://wiki.itw-berlin.net/index.php?title=Netzwerke:Befehl:zenmap
Windows
extern
1. https://de.wikipedia.org/wiki/Nmap
4. https://de.wikipedia.org/wiki/Classless_Inter-Domain_Routing
5. http://mikiwiki.org/wiki/grep
6. https://svn.nmap.org/nmap/docs/nmap.xsl
7. https://nmap.org/man/de/man-os-detection.html
Bildnachweis
- Alle Bilder aus MediaWiki: https://www.mediawiki.org/wiki/MediaWiki/de,
- damit frei und offen