|
|
(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]]
| |