mirror of
https://github.com/nmap/nmap.git
synced 2025-12-07 13:11:28 +00:00
2234 lines
177 KiB
Groff
2234 lines
177 KiB
Groff
'\" t
|
|
.\" Title: nmap
|
|
.\" Author: [see the "Autor" section]
|
|
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
|
|
.\" Date: 17.01.2017
|
|
.\" Manual: Nmap-Referenz-Handbuch
|
|
.\" Source: Nmap
|
|
.\" Language: German
|
|
.\"
|
|
.TH "NMAP" "1" "17.01.2017" "Nmap" "Nmap\-Referenz\-Handbuch"
|
|
.\" -----------------------------------------------------------------
|
|
.\" * Define some portability stuff
|
|
.\" -----------------------------------------------------------------
|
|
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
.\" http://bugs.debian.org/507673
|
|
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
|
|
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
.ie \n(.g .ds Aq \(aq
|
|
.el .ds Aq '
|
|
.\" -----------------------------------------------------------------
|
|
.\" * set default formatting
|
|
.\" -----------------------------------------------------------------
|
|
.\" disable hyphenation
|
|
.nh
|
|
.\" disable justification (adjust text to left margin only)
|
|
.ad l
|
|
.\" -----------------------------------------------------------------
|
|
.\" * MAIN CONTENT STARTS HERE *
|
|
.\" -----------------------------------------------------------------
|
|
.SH "NAME"
|
|
nmap \- Netzwerk\-Analysewerkzeug und Sicherheits\-/Portscanner
|
|
.SH "\(:UBERSICHT"
|
|
.HP \w'\fBnmap\fR\ 'u
|
|
\fBnmap\fR [\fIScan\ Type\fR...] [\fIOptions\fR] {\fItarget\ specification\fR}
|
|
.SH "BESCHREIBUNG"
|
|
.\" Nmap: Beschreibung
|
|
.PP
|
|
Nmap (\(BqNetwork Mapper\(lq) ist ein Open\-Source\-Werkzeug f\(:ur die Netzwerkanalyse und Sicherheits\(:uberpr\(:ufung\&. Es wurde entworfen, um gro\(sse Netzwerke schnell zu scannen, auch wenn es bei einzelnen Hosts auch gut funktioniert\&. Nmap benutzt rohe IP\-Pakete auf neuartige Weise, um festzustellen, welche Hosts im Netzwerk verf\(:ugbar sind, welche Dienste (Anwendungsname und \-version) diese Hosts bieten, welche Betriebssysteme (und Versionen davon) darauf laufen, welche Art von Paketfiltern/\-Firewalls benutzt werden sowie Dutzende anderer Eigenschaften\&. Auch wenn Nmap \(:ublicherweise f\(:ur Sicherheits\(:uberpr\(:ufungen verwendet wird, wird es von vielen Systemen und Netzwerkadministratoren f\(:ur Routineaufgaben benutzt, z\&.B\&. Netzwerkinventarisierung, Verwaltung von Ablaufpl\(:anen f\(:ur Dienstaktualisierungen und die \(:Uberwachung von Betriebszeiten von Hosts oder Diensten\&.
|
|
.PP
|
|
Die Ausgabe von Nmap ist eine Liste gescannter Ziele mit zus\(:atzlicher Information zu jedem, abh\(:angig von den benutzten Optionen\&. Die entscheidende Information dabei steht in der
|
|
\(BqTabelle der interessanten Ports\(lq\&..\" Ports: interessante
|
|
Diese Tabelle listet die Portnummer und das \-protokoll sowie den Dienstnamen und \-zustand auf\&. Der Zustand ist entweder
|
|
offen,
|
|
gefiltert,
|
|
geschlossen
|
|
oder
|
|
ungefiltert\&.
|
|
Offen.\" offen Portzustand
|
|
bedeutet, dass auf diesem Port des Zielrechners eine Anwendung auf eingehende Verbindungen/Pakete lauscht\&.
|
|
Gefiltert.\" gefiltert Portzustand
|
|
bedeutet, dass eine Firewall, ein Filter oder ein anderes Netzwerkhindernis den Port blockiert, so dass Nmap nicht wissen kann, ob er
|
|
offen
|
|
oder
|
|
geschlossen ist\&. F\(:ur
|
|
geschlossene.\" geschlossen Portzustand
|
|
Ports gibt es keine Anwendung, die auf ihnen lauscht, auch wenn sie jederzeit ge\(:offnet werden k\(:onnten\&. Als
|
|
ungefiltert.\" ungefiltert Portzustand
|
|
werden Ports dann klassifiziert, wenn sie auf Nmaps Testpakete antworten, Nmap aber nicht feststellen kann, ob sie offen oder gechlossen sind\&. Nmap gibt die Zustandskombinationen
|
|
offen|gefiltert.\" offen|gefiltert Portzustand
|
|
und
|
|
geschlossen|gefiltert.\" geschlossen|gefiltert Portzustand
|
|
an, wenn es nicht feststellen kann, welcher der beiden Zust\(:ande f\(:ur einen Port zutrifft\&. Die Port\-Tabelle enth\(:alt eventuell auch Details zur Softwareversion, sofern eine Versionserkennung verlangt wurde\&. Wurde ein IP\-Protokoll\-Scan verlangt (\fB\-sO\fR), dann bietet Nmap Angaben \(:uber die unterst\(:utzten IP\-Protokolle statt \(:uber lauschende Ports\&.
|
|
.PP
|
|
Zus\(:atzlich zur Tabelle der interessanten Ports kann Nmap weitere Angaben \(:uber Ziele bieten, darunter Reverse\-DNS\-Namen, Mutma\(ssungen \(:uber das benutzte Betriebssystem, Ger\(:atearten und MAC\-Adressen\&.
|
|
.PP
|
|
Einen typischen Nmap\-Scan sehen Sie in
|
|
Beispiel\ \&1\&. Die einzigen in diesem Beispiel benutzten Nmap\-Argumente sind
|
|
\fB\-A\fR
|
|
f\(:ur die Betriebssystem\- und Versionserkennung, Script\-Scanning und Traceroute und
|
|
\fB\-T4\fR
|
|
f\(:ur eine schnellere Ausf\(:uhrung\&. Danach kommen die Namen der Zielhosts\&.
|
|
.PP
|
|
\fBBeispiel 1. Ein repr\(:asentativer Nmap-Scan\fR
|
|
.\" -A: Beispiel
|
|
.sp
|
|
.if n \{\
|
|
.RS 4
|
|
.\}
|
|
.nf
|
|
# nmap \-A \-T4 scanme\&.nmap\&.org
|
|
|
|
Starting Nmap ( https://nmap\&.org )
|
|
Interesting ports on scanme\&.nmap\&.org (64\&.13\&.134\&.52):
|
|
Not shown: 994 filtered ports
|
|
PORT STATE SERVICE VERSION
|
|
22/tcp open ssh OpenSSH 4\&.3 (protocol 2\&.0)
|
|
25/tcp closed smtp
|
|
53/tcp open domain ISC BIND 9\&.3\&.4
|
|
70/tcp closed gopher
|
|
80/tcp open http Apache httpd 2\&.2\&.2 ((Fedora))
|
|
|_ HTML title: Go ahead and ScanMe!
|
|
113/tcp closed auth
|
|
Device type: general purpose
|
|
Running: Linux 2\&.6\&.X
|
|
OS details: Linux 2\&.6\&.20\-1 (Fedora Core 5)
|
|
|
|
TRACEROUTE (using port 80/tcp)
|
|
HOP RTT ADDRESS
|
|
[Cut first seven hops for brevity]
|
|
8 10\&.59 so\-4\-2\-0\&.mpr3\&.pao1\&.us\&.above\&.net (64\&.125\&.28\&.142)
|
|
9 11\&.00 metro0\&.sv\&.svcolo\&.com (208\&.185\&.168\&.173)
|
|
10 9\&.93 scanme\&.nmap\&.org (64\&.13\&.134\&.52)
|
|
|
|
Nmap done: 1 IP address (1 host up) scanned in 17\&.00 seconds
|
|
.fi
|
|
.if n \{\
|
|
.RE
|
|
.\}
|
|
.PP
|
|
Die neueste Version von Nmap erh\(:alt man unter
|
|
\m[blue]\fB\%https://nmap.org\fR\m[], und die neueste Version der Manpage ist unter
|
|
\m[blue]\fB\%https://nmap.org/book/man.html\fR\m[]
|
|
verf\(:ugbar\&.
|
|
.SH "\(:UBERSICHT DER OPTIONEN"
|
|
.PP
|
|
Diese \(:Ubersicht wird ausgegeben, wenn Nmap ohne Argumente aufgerufen wird; die neueste Version davon ist immer unter
|
|
\m[blue]\fB\%https://nmap.org/data/nmap.usage.txt\fR\m[]
|
|
verf\(:ugbar\&. Sie hilft dabei, sich die am h\(:aufigsten benutzten Optionen zu merken, ist aber kein Ersatz f\(:ur die detaillierte Dokumentation im Rest dieses Handbuchs\&. Einige obskure Optionen werden hier nicht einmal erw\(:ahnt\&.
|
|
.\" Options\(:ubersicht
|
|
.\" Kommandozeilenoptionen: von Nmap
|
|
.sp
|
|
.if n \{\
|
|
.RS 4
|
|
.\}
|
|
.nf
|
|
Nmap 4\&.85BETA8 ( https://nmap\&.org )
|
|
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\*(Aqs 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\*(Aqt 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 \*(Aqs\*(Aq
|
|
(seconds), \*(Aqm\*(Aq (minutes), or \*(Aqh\*(Aq (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 <time>: 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
|
|
SEE THE MAN PAGE (https://nmap\&.org/book/man\&.html) FOR MORE OPTIONS AND EXAMPLES
|
|
.fi
|
|
.if n \{\
|
|
.RE
|
|
.\}
|
|
.\"
|
|
.\"
|
|
.SH "ANGABE VON ZIELEN"
|
|
.\" Zielangabe
|
|
.PP
|
|
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\&.
|
|
.PP
|
|
Manchmal m\(:ochten Sie ein ganzes Netzwerk benachbarter Hosts scannen\&. Daf\(:ur unterst\(:utzt Nmap Adressen im CIDR\-Stil\&..\" CIDR (Classless Inter-Domain Routing)
|
|
Sie k\(:onnen /\fInumbits\fR
|
|
an eine IPv4\-Adresse oder einen Hostnamen anf\(:ugen, und Nmap wird alle IP\-Adressen scannen, bei denen die ersten
|
|
\fInumbits\fR
|
|
mit denen der gegebenen IP oder des gegebenen Hostnamens \(:ubereinstimmen\&. Zum Beispiel w\(:urde 192\&.168\&.10\&.0/24 die 256 Hosts zwischen 192\&.168\&.10\&.0 (bin\(:ar:
|
|
11000000 10101000 00001010 00000000) und 192\&.168\&.10\&.255 (bin\(:ar:
|
|
11000000 10101000 00001010 11111111, inklusive) scannen\&. 192\&.168\&.10\&.40/24 w\(:urde genau dieselben Ziele scannen\&. Dadurch, dass der Host
|
|
scanme\&.nmap\&.org.\" scanme.nmap.org
|
|
die IP\-Adresse 64\&.13\&.134\&.52 hat, w\(:urde 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\(:o\(sste Wert ist /32 und scannt lediglich den Host mit angegebenem Namen oder IP\-Adresse, da alle Adressen\-Bits festgelegt sind\&.
|
|
.\" Adressbereiche
|
|
.PP
|
|
Die CIDR\-Notation ist kurz, aber nicht immer flexibel genug\&. Vielleicht m\(:ochten Sie z\&.B\&. 192\&.168\&.0\&.0/16 scannen, aber IPs auslassen, die mit \&.0 oder \&.255 enden, weil sie als Unternetzwerk und Broadcast\-Adressen benutzt werden k\(:onnen\&. Nmap unterst\(:utzt das in Form einer Oktett\-Bereichsadressierung\&. Statt eine normale IP\-Adresse anzugeben, k\(:onnen Sie eine mit Kommata getrennte Liste von Zahlen oder Bereichen f\(:ur jedes Oktett angeben\&. Zum Beispiel \(:uberspringt 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\(:onnen weggelassen werden, die Standardwerte sind 0 f\(:ur die linke und 255 f\(:ur die rechte Grenze\&. Wenn Sie allein
|
|
\-
|
|
benutzen, ist das identisch mit 0\-255, aber denken Sie daran, im ersten Oktett 0\- zu benutzen, damit die Zielangabe nicht wie eine Kommandozeilenoption aussieht\&. Diese Bereiche m\(:ussen nicht auf die endg\(:ultigen Oktetts beschr\(:ankt sein: die Angabe 0\-255\&.0\-255\&.13\&.37 f\(:uhrt einen internetweiten Scan \(:uber alle IP\-Adressen aus, die mit 13\&.37 enden\&. Diese Art von breiter Abtastung kann bei Internet\-Umfragen und \-Forschungen hilfreich sein\&.
|
|
.PP
|
|
IPv6\-Adressen k\(:onnen nur durch ihre vollst\(:andige IPv6\-Adresse oder ihren Hostnamen angegeben werden\&. CIDR und Oktettbereiche werden f\(:ur IPv6 nicht unterst\(:utzt, weil sie selten n\(:utzlich sind\&.
|
|
.PP
|
|
Nmap akzeptiert in der Kommandozeile mehrere Host\-Angaben, die auch nicht vom selben Typ sein m\(:ussen\&. Der Befehl
|
|
\fBnmap scanme\&.nmap\&.org 192\&.168\&.0\&.0/8 10\&.0\&.0,1,3\-7\&.\-\fR
|
|
macht also das, was Sie erwarten w\(:urden\&.
|
|
.PP
|
|
Auch wenn Ziele normalerweise in der Kommandozeile angegeben werden, gibt es auch die folgenden Optionen, um die Zielauswahl zu steuern:
|
|
.PP
|
|
\fB\-iL \fR\fB\fIinputfilename\fR\fR (Eingabe aus einer Liste) .\" -iL .\" Zielangabe: aus Liste
|
|
.RS 4
|
|
Eine sehr lange Liste von Hosts in der Kommandozeile anzugeben ist oft sehr umst\(:andlich, kommt aber sehr h\(:aufig vor\&. Ihr DHCP\-Server z\&.B\&. exportiert vielleicht eine Liste von 10\&.000 aktuellen Adresszuweisungen (engl\&. leases), die Sie scannen m\(:ochten\&. Oder vielleicht m\(:ochten Sie alle IP\-Adressen
|
|
\fIau\(sser\fR
|
|
denjenigen scannen, um Hosts zu finden, die unautorisierte statische IP\-Adressen benutzen\&. Erzeugen Sie einfach die Liste der zu scannenden Hosts und \(:ubergeben Sie deren Dateinamen als Argument zur Option
|
|
\fB\-iL\fR
|
|
an Nmap\&. Die Eintr\(:age d\(:urfen alle Formate haben, die Nmap auf der Kommandozeile akzeptiert (IP\-Adresse, Hostname, CIDR, IPv6 oder Oktettbereiche)\&. Alle Eintr\(:age m\(:ussen durch ein oder mehrere Leerzeichen, Tabulatoren oder Zeilenumbr\(:uche getrennt sein\&. Wenn Sie einen Bindestrich (\-) als Dateinamen angeben, liest Nmap die Hosts von der Standardeingabe statt aus einer normalen Datei\&.
|
|
.RE
|
|
.PP
|
|
\fB\-iR \fR\fB\fInum hosts\fR\fR (zuf\(:allige Auswahl von Zielen) .\" -iR .\" randomisierte Ziele .\" Zielangabe: randomisiert
|
|
.RS 4
|
|
F\(:ur internetweite Umfragen und andere Forschungsaktivit\(:aten m\(:ochten Sie Ziele vielleicht zuf\(:allig ausw\(:ahlen\&. Das kann man mit der Option
|
|
\fB\-iR\fR, die als Argument die Anzahl der zu erzeugenden IPs annimmt\&. Nmap l\(:asst automatisch bestimmte unerw\(:unschte IPs aus, wie solche in privaten, Multicast\- oder unbesetzten Adressbereichen\&. F\(:ur einen endlosen Scan kann man das Argument
|
|
0
|
|
angeben\&. Denken Sie aber daran, dass manche Netzwerkadministratoren sich gegen unautorisierte Scans ihrer Netzwerke str\(:auben\&. Lesen Sie
|
|
\(Bq\(lq
|
|
sorgf\(:altig, bevor Sie \-iR benutzen\&.
|
|
.sp
|
|
Falls Sie mal an einem regnerischen Tag wirklich Langeweile haben, probieren Sie einmal den Befehl
|
|
\fBnmap \-sS \-PS80 \-iR 0 \-p 80\fR.\" -iR: Beispiel.\" -sS: Beispiel.\" -PS: Beispiel
|
|
aus, um zuf\(:allig Webserver zu finden, auf denen Sie herumst\(:obern k\(:onnen\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-exclude \fR\fB\fIhost1\fR\fR\fB[,\fIhost2\fR[,\&.\&.\&.]]\fR (Ziele ausklammern) .\" --exclude .\" Ausklammern von Zielen
|
|
.RS 4
|
|
Gibt eine mit Kommata getrennte Liste von Zielen an, die vom Scan ausgeschlossen sein sollen, selbst wenn sie in den angegebenen Netzwerkbereich fallen\&. Die \(:ubergebene Liste benutzt die normale Nmap\-Syntax und kann folglich Hostnamen, CIDR\-Netzbl\(:ocke, Oktettbereiche usw\&. enthalten\&. Das kann n\(:utzlich sein, wenn das zu scannende Netzwerk hochkritische Server und Systeme enth\(:alt, die man nicht anfassen darf, weil sie bekannterma\(ssen ung\(:unstig auf Port\-Scans reagieren, oder Unternetze, die von anderen Leuten administriert werden\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-excludefile \fR\fB\fIexclude_file\fR\fR (Liste aus Datei ausklammern) .\" --excludefile
|
|
.RS 4
|
|
Das bietet dieselbe Funktionalit\(:at wie die Option
|
|
\fB\-\-exclude\fR, mit dem Unterschied, dass die ausgeklammerten Ziele in der mit Zeilenumbr\(:uchen, Leerzeichen oder Tabulatoren getrennten Datei
|
|
\fIexclude_file\fR
|
|
statt auf der Kommandozeile angegeben werden\&.
|
|
.RE
|
|
.SH "HOST-ERKENNUNG"
|
|
.\" Host-Erkennung
|
|
.PP
|
|
Einer der allerersten Schritte bei jeder Netzwerkerkundung ist die Reduktion einer (manchmal riesigen) Menge von IP\-Bereichen auf eine Liste aktiver oder interessanter Hosts\&. Wenn man f\(:ur alle einzelnen IP\-Adressen alle Ports scannt, so ist das nicht nur langsam, sondern normalerweise auch unn\(:otig\&. Was einen Host interessant macht, h\(:angt nat\(:urlich stark vom Zweck der Untersuchung ab\&. Netzwerkadministratoren interessieren sich vielleicht nur f\(:ur Hosts, auf denen ein bestimmter Dienst l\(:auft, w\(:ahrend Sicherheitspr\(:ufer sich vielleicht f\(:ur alle Ger\(:ate interessieren, die eine IP\-Adresse haben\&. Ein Administrator ben\(:otigt vielleicht nur einen ICMP\-Ping, um Hosts in seinem internen Netzwerk zu finden, w\(:ahrend ein externer Penetrationstester vielleicht Dutzende ganz verschiedener Tests einsetzen wird, um zu versuchen, die Firewall\-Beschr\(:ankungen zu umgehen\&.
|
|
.PP
|
|
Da die Anforderungen bei der Host\-Erkennung so verschieden sind, bietet Nmap eine breite Palette von Optionen zur Anpassung der eingesetzten Verfahren\&. Trotz seines Namens geht ein Ping\-Scan weit \(:uber die einfachen ICMP Echo\-Request\-Pakete hinaus, die mit dem allgegenw\(:artigen Werkzeug
|
|
ping
|
|
verbunden sind\&. Man kann den Ping\-Schritt v\(:ollig auslassen, indem man einen List\-Scan (\fB\-sL\fR) benutzt, Ping ausschaltet (\fB\-PN\fR) oder beliebige Kombinationen von Multi Port TCP\-SYN/ACK, UDP\- und ICMP\-Testanfragen auf ein Netzwerk losl\(:asst\&. Der Zweck dieser Anfragen ist der, Antworten hervorzurufen, die zeigen, dass eine IP\-Adresse tats\(:achlich aktiv ist (d\&.h\&. von einem Host oder Ger\(:at im Netzwerk benutzt wird)\&. In vielen Netzwerken ist nur ein kleiner Prozentsatz von IP\-Adressen zu einem bestimmten Zeitpunkt aktiv\&. Das gilt besonders f\(:ur einen privaten Adressraum wie 10\&.0\&.0\&.0/8\&. Dieses Netzwerk enth\(:alt 16,8 Millionen IPs, aber ich habe auch Firmen gesehen, die es mit weniger als tausend Rechnern benutzen\&. Mit der Host\-Erkennung kann man diese sp\(:arlichen Rechnerinseln in einem Meer von IP\-Adressen finden\&.
|
|
.PP
|
|
Falls keine Optionen f\(:ur die Host\-Erkennung angegeben werden, sendet Nmap ein TCP\-ACK\-Paket an Port 80 und ein ICMP Echo\-Request an alle Zielrechner\&. Eine Ausnahme ist, dass bei allen Zielen in einem lokalen Ethernet\-Netzwerk ein ARP\-Scan benutzt wird\&. F\(:ur unprivilegierte Unix\-Shell\-Benutzer wird mit dem
|
|
\fBconnect\fR\-Systemaufruf ein SYN\-Paket statt eines ACK gesendet\&..\" Benutzer ohne Sonderrechte: Beschr\(:ankungen
|
|
Diese Standardeinstellungen sind \(:aquivalent zu den Optionen
|
|
\fB\-PA \-PE\fR\&. Diese Host\-Erkennung ist oft ausreichend, wenn man lokale Netzwerke scannt, aber f\(:ur Sicherheits\(:uberpr\(:ufungen empfiehlt sich eine umfangreichere Menge von Erkennungstestpaketen\&.
|
|
.PP
|
|
Die Optionen
|
|
\fB\-P*\fR
|
|
(die Ping\-Typen ausw\(:ahlen) lassen sich kombinieren\&. Sie k\(:onnen Ihre Chancen steigern, bei strengen Firewalls durchzukommen, indem Sie viele Testpaketarten mit verschiedenen TCP\-Ports/\-Flags und ICMP\-Codes senden\&. Beachten Sie auch, dass die ARP\-Erkennung (\fB\-PR\fR).\" -PR
|
|
bei Zielen in einem lokalen Ethernet\-Netzwerk standardm\(:a\(ssig erfolgt, selbst dann, wenn Sie andere
|
|
\fB\-P*\fR\-Optionen angeben, weil sie fast immer schneller und effizienter ist\&.
|
|
.PP
|
|
Standardm\(:a\(ssig f\(:uhrt Nmap eine Host\-Erkennung und dann einen Port\-Scan auf jedem Host aus, den es als online erkennt\&. Das gilt auch dann, wenn Sie nicht standardm\(:a\(ssige Host\-Erkennungstypen wie UDP\-Testpakete (\fB\-PU\fR) angeben\&. Lesen Sie \(:uber die Option
|
|
\fB\-sP\fR
|
|
nach, um zu lernen, wie man nur eine Host\-Erkennung durchf\(:uhrt, oder \(:uber
|
|
\fB\-PN\fR, um die Host\-Erkennung zu \(:uberspringen und einen Port\-Scan aller Zielhosts durchzuf\(:uhren\&. Folgende Optionen steuern die Host\-Erkennung:
|
|
.PP
|
|
\fB\-sL\fR (List\-Scan) .\" -sL .\" List-Scan
|
|
.RS 4
|
|
Ein List\-Scan ist eine degenerierte Form der Host\-Erkennung, die einfach jeden Host im angegebenen Netzwerk (bzw\&. den Netzwerken) auflistet, ohne Pakete an die Ziel\-Hosts zu senden\&. Standardm\(:a\(ssig f\(:uhrt Nmap immer noch eine Reverse\-DNS\-Aufl\(:osung der Hosts durch, um deren Namen zu lernen\&. Es ist oft erstaunlich, wie viel n\(:utzliche Informationen einfache Hostnamen verraten\&. Zum Beispiel ist
|
|
fw\&.chi
|
|
der Name einer Firewall einer Firma in Chicago\&.
|
|
.\" DNS: Eintr\(:age als Informationsquelle
|
|
Nmap gibt am Ende auch die gesamte Anzahl der IP\-Adressen aus\&. Ein List\-Scan ist eine gute Plausibilit\(:atspr\(:ufung, um sicherzustellen, dass Sie saubere IP\-Adressen f\(:ur Ihre Ziele haben\&. Falls die Hosts Domainnamen enthalten, die Ihnen nichts sagen, lohnt sich eine weitere Untersuchung, um zu verhindern, dass Sie das Netzwerk der falschen Firma scannen\&.
|
|
.sp
|
|
Da die Idee einfach die ist, eine Liste der Zielhosts auszugeben, lassen sich Optionen f\(:ur eine h\(:ohere Funktionalit\(:at wie z\&.B\&. Port\-Scanning, Betriebssystemerkennung oder Ping\-Scanning damit nicht kombinieren\&. Falls Sie einen Ping\-Scan abschalten und trotzdem solch h\(:ohere Funktionalit\(:at durchf\(:uhren m\(:ochten, lesen Sie bei der Option
|
|
\fB\-PN\fR
|
|
weiter\&.
|
|
.RE
|
|
.PP
|
|
\fB\-sP\fR (Ping\-Scan) .\" -sP .\" Ping-Scan
|
|
.RS 4
|
|
Diese Option verlangt, dass Nmap nur einen Ping\-Scan (Host\-Erkennung) durchf\(:uhrt und dann die verf\(:ugbaren Hosts ausgibt, die auf den Scan geantwortet haben\&. Dar\(:uber hinaus werden keine weiteren Tests (z\&.B\&. Port\-Scans oder Betriebssystemerkennung) durchgef\(:uhrt, au\(sser bei Host\-Scripts mit der Nmap Scripting Engine und traceroute\-Tests, sofern Sie diese Optionen angegeben haben\&. Das ist eine Stufe aufdringlicher als ein List\-Scan und kann oft f\(:ur dieselben Zwecke benutzt werden\&. Sie f\(:uhrt schnell eine schwache Aufkl\(:arung des Zielnetzwerks durch, ohne viel Aufmerksamkeit zu erregen\&. F\(:ur Angreifer ist es wertvoller, zu wissen, wie viele Hosts verf\(:ugbar sind, als die Liste aller IPs und Hostnamen aus einem List\-Scan zu kennen\&.
|
|
.sp
|
|
F\(:ur Systemadministratoren ist diese Option oft ebenfalls wertvoll\&. Mit ihr kann man sehr leicht die verf\(:ugbaren Rechner in einem Netzwerk z\(:ahlen oder die Server\-Verf\(:ugbarkeit \(:uberwachen\&. So etwas nennt man oft auch einen Ping\-Sweep, und es ist zuverl\(:assiger als ein Pinging auf die Broadcast\-Adresse, weil viele Hosts auf Broadcast\-Anfragen nicht antworten\&.
|
|
.sp
|
|
Die Option
|
|
\fB\-sP\fR
|
|
sendet standardm\(:a\(ssig einen ICMP Echo\-Request und ein TCP\-ACK\-Paket an Port 80\&. Bei Ausf\(:uhrung ohne Sonderrechte wird nur ein SYN\-Paket (mit einem
|
|
\fBconnect\fR\-Aufruf) an Port 80 an das Ziel gesendet\&. Wenn ein Benutzer mit Sonderrechten versucht, Ziele in einem lokalen Ethernet\-Netzwerk zu scannen, werden ARP\-Requests verwendet, es sei denn, die Option
|
|
\fB\-\-send\-ip\fR
|
|
wird angegeben\&. Die Option
|
|
\fB\-sP\fR
|
|
kann mit allen Erkennungsmethoden (die Optionen
|
|
\fB\-P*\fR, au\(sser
|
|
\fB\-PN\fR) kombiniert werden, um eine h\(:ohere Flexibilit\(:at zu erhalten\&. Falls zwischen dem Ausgangs\-Host, auf dem Nmap l\(:auft, und dem Zielnetzwerk strenge Firewalls installiert sind, empfehlen sich diese fortgeschrittenen Methoden\&. Ansonsten k\(:onnten Hosts \(:ubersehen werden, wenn die Firewall Testanfragen oder Antworten darauf verwirft
|
|
.RE
|
|
.PP
|
|
\fB\-PN\fR (Ping abschalten) .\" -PN .\" Host-Erkennung: ausschalten
|
|
.RS 4
|
|
Eine weitere M\(:oglichkeit ist die, die Erkennungsphase von Nmap v\(:ollig auszulassen\&. Normalerweise bestimmt Nmap in dieser Phase aktive Rechner, die es anschlie\(ssend st\(:arker scannt\&. Standardm\(:a\(ssig f\(:uhrt Nmap heftigere Tests wie Port\-Scans, Versions\- oder Betriebssystemerkennung bei Hosts durch, die es bereits als aktiv eingestuft hat\&. Das Ausschalten der Host\-Erkennung mit der Option
|
|
\fB\-PN\fR
|
|
bewirkt, dass Nmap versucht, die gew\(:unschten Scan\-Funktionen auf
|
|
\fIallen\fR
|
|
angegebenen Ziel\-IP\-Adresssen durchzuf\(:uhren\&. Wenn also ein Zieladressraum der Gr\(:o\(sse Klasse B (/16) auf der Kommandozeile angegeben wird, werden alle 65\&.536 IP\-Adressen gescannt\&. Eine richtige Host\-Erkennung wird wie bei einem List\-Scan \(:ubersprungen, aber statt anzuhalten und die Zielliste auszugeben, f\(:ahrt Nmap mit der Durchf\(:uhrung der gew\(:unschten Funktionen fort, so als ob jede Ziel\-IP aktiv w\(:are\&. Bei Rechnern im lokalen Ethernet\-Netzwerk wird ein ARP\-Scan weiterhin ausgef\(:uhrt (es sei denn, es wird
|
|
\fB\-\-send\-ip\fR
|
|
angegeben), da Nmap MAC\-Adressen braucht, um Zielhosts weiter zu scannen\&. Diese Option lautete fr\(:uher einaml
|
|
\fBP0\fR
|
|
(mit einer Null), wurde dann aber umbenannt, um Verwirrung mit der Option
|
|
\fBPO\fR
|
|
von Protokoll\-Pings (benutzt den Buchstaben O) zu vermeiden\&.
|
|
.RE
|
|
.PP
|
|
\fB\-PS \fR\fB\fIport list\fR\fR (TCP\-SYN\-Ping) .\" -PS .\" SYN-Ping
|
|
.RS 4
|
|
Diese Option sendet ein leeres TCP\-Paket mit gesetztem SYN\-Flag\&. Der vorgegebene Zielport ist 80 (l\(:asst sich zum Zeitpunkt des Kompilierens durch \(:Andern von
|
|
\fIDEFAULT_TCP_PROBE_PORT_SPEC\fR.\" DEFAULT_TCP_PROBE_PORT_SPEC
|
|
in
|
|
nmap\&.h
|
|
konfigurieren),.\" nmap.h
|
|
aber man kann einen alternativen Port als Parameter angeben\&. Die Syntax ist dieselbe wie bei
|
|
\fB\-p\fR, mit dem Unterschied, dass Porttypenbezeichner wie
|
|
T:
|
|
nicht erlaubt sind\&. Beispiele hierf\(:ur sind
|
|
\fB\-PS22\fR
|
|
und
|
|
\fB\-PS22\-25,80,113,1050,35000\fR\&. Beachten Sie, dass es kein Leerzeichen zwischen
|
|
\fB\-PS\fR
|
|
und der Port\-Liste geben darf\&. Falls mehrere Tests angegeben werden, werden sie parallel durchgef\(:uhrt\&.
|
|
.sp
|
|
Das SYN\-Flag bedeutet f\(:ur das entfernte System, dass Sie versuchen, eine Verbindung herzustellen\&. Normalerweise wird der Zielport geschlossen sein, und es wird ein RST\-(Reset\-)Paket zur\(:uckgeschickt\&. Falls der Port offen ist, f\(:uhrt das Ziel den zweiten Schritt eines TCP\-three\-way\-handshake
|
|
.\" Three-way-Handshake
|
|
durch, indem es mit einem SYN/ACK\-TCP\-Paket antwortet\&. Der Rechner, auf dem Nmap l\(:auft, bricht dann die entstehende Verbindung ab, indem er mit einem RST antwortet, statt ein ACK\-Paket zu senden, mit dem der three\-way handshake komplett und eine vollst\(:andige Verbindung hergestellt w\(:are\&. Das RST\-Paket wird als Antwort auf das unerwartete SYN/ACK vom Betriebssystem\-Kernel des Rechners gesendet, auf dem Nmap l\(:auft, nicht von Nmap selbst\&.
|
|
.sp
|
|
F\(:ur Nmap ist es egal, ob der Port offen oder geschlossen ist\&. Aus beiden Antworten, ob RST oder SYN/ACK, schlie\(sst Nmap, dass der Host verf\(:ugbar ist und antwortet\&.
|
|
.sp
|
|
Auf Unix\-Rechnern kann im Allgemeinen nur der mit Sonderrechten ausgestattete Benutzer
|
|
root.\" Benutzer mit Sonderrechten
|
|
rohe TCP\-Pakete senden und empfangen\&..\" rohe Pakete
|
|
Bei normalen Benutzern kommt automatisch eine Umgehungsl\(:osung zum Tragen,.\" Benutzer ohne Sonderrechte: Beschr\(:ankungen
|
|
bei der f\(:ur alle Zielports der
|
|
\fBconnect\fR\-Systemaufruf verwendet wird\&. Das bewirkt, dass an den Zielhost ein SYN\-Paket gesendet wird, mit der Absicht, eine Verbindung herzustellen\&. Falls
|
|
\fBconnect\fR
|
|
schnell ein erfolgreiches Ergebnis oder einen ECONNREFUSED\-Fehler zur\(:uckgibt, muss der darunterliegende TCP\-Stack ein SYN/ACK oder RST empfangen haben, und der Host wird als verf\(:ugbar vermerkt\&. Falls der Verbindungsversuch h\(:angenbleibt, bis eine Zeitbeschr\(:ankung erreicht ist, wird der Host als inaktiv vermerkt\&. Diese Behelfsl\(:osung wird auch bei IPv6\-Verbindungen verwendet, da Nmap den Bau roher IPv6\-Pakete noch nicht unterst\(:utzt\&..\" IPv6: Beschr\(:ankungen
|
|
.RE
|
|
.PP
|
|
\fB\-PA \fR\fB\fIport list\fR\fR (TCP\-ACK\-Ping) .\" -PA .\" ACK-Ping
|
|
.RS 4
|
|
Der TCP\-ACK\-Ping ist ziemlich \(:ahnlich zum SYN\-Ping\&. Der Unterschied ist der, dass das TCP\-ACK\-Flag statt dem SYN\-Flag gesetzt wird, was Sie sich bestimmt schon gedacht haben\&. Ein solches ACK\-Paket erweckt den Eindruck, es wolle Daten auf einer bestehenden TCP\-Vebindung best\(:atigen, w\(:ahrend eine solche Verbindung gar nicht existiert\&. Entfernte Hosts sollten darauf immer mit einem RST\-Paket antworten, wobei sie ihre Existenz verraten\&.
|
|
.sp
|
|
Die Option
|
|
\fB\-PA\fR
|
|
benutzt denselben Standard\-Port wie der SYN\-Test (80) und nimmt ebenfalls eine Liste von Zielports im selben Format an\&. Falls ein unprivilegierter Benutzer das ausprobiert oder falls ein IPv6\-Ziel angegeben wird, wird die bereits erw\(:ahnte Behelfsl\(:osung mit
|
|
\fBconnect\fR
|
|
eingesetzt\&. Diese ist nicht perfekt, da
|
|
\fBconnect\fR
|
|
tats\(:achlich ein SYN\-Paket statt eines ACK sendet\&.
|
|
.sp
|
|
Der Grund f\(:ur die Existenz sowohl von SYN\- als auch ACK\-Ping\-Tests liegt darin, die Chancen f\(:ur die Umgehung von Firewalls zu erh\(:ohen\&. Viele Administratoren konfigurieren Router und andere einfache Firewalls so, dass sie eingehende SYN\-Pakete blockieren, au\(sser bei solchen f\(:ur \(:offentliche Dienste wie bei der Website oder dem Mailserver der Firma\&. Das verhindert weitere eingehende Verbindungen zur Organisation, w\(:ahrend es den Benutzern freie Verbindungen ins Internet erlaubt\&. Dieser zustandslose Ansatz ben\(:otigt wenige Ressourcen in der Firewall bzw\&. im Router und wird von Hardware\- und Software\-Filtern weithin unterst\(:utzt\&. Die Firewall\-Software Netfilter/iptables.\" iptables
|
|
in Linux bietet die komfortable Option
|
|
\fB\-\-syn\fR, um diesen zustandslosen Ansatz zu implementieren\&. Wenn solche Firewall\-Regeln vorhanden sind, werden SYN\-Ping\-Tests (\fB\-PS\fR), die an geschlossene Zielports gesendet werden, sehr wahrscheinlich blockiert\&. In solchen F\(:allen greift der ACK\-Test, da er diese Regeln einfach kappt\&.
|
|
.sp
|
|
Eine weitere h\(:aufige Art von Firewalls verwendet zustandsbehaftete Regeln, die unerwartete Pakete verwerfen\&. Dieses Merkmal konnte man zuerst bei hochwertigen Firewalls finden, es hat sich aber mit der Zeit deutlich verbreitet\&. In Linux unterst\(:utzt das Netfilter/iptables\-System das mit der Option
|
|
\-\-state, die Pakete nach einem Verbindungszustand kategorisiert\&. In solchen F\(:allen hat der SYN\-Test eine wesentlich bessere Chance auf Erfolg, da unerwartete ACK\-Pakete im Allgemeinen als fehlerhaft erkannt und verworfen werden\&. Eine L\(:osung aus diesem Dilemma besteht darin, mit
|
|
\fB\-PS\fR
|
|
und
|
|
\fB\-PA\fR
|
|
SYN\- und ACK\-Testpakete zu senden\&.
|
|
.RE
|
|
.PP
|
|
\fB\-PU \fR\fB\fIport list\fR\fR (UDP\-Ping) .\" -PU .\" UDP-Ping
|
|
.RS 4
|
|
Eine weitere M\(:oglichkeit bei der Host\-Erkennung ist der UDP\-Ping, bei dem ein leeres (au\(sser bei Angabe von
|
|
\fB\-\-data\-length\fR) UDP\-Paket an die angegebenen Ports gesendet wird\&. Die Portliste hat dasselbe Format wie bei den weiter oben beschriebenen Optionen
|
|
\fB\-PS\fR
|
|
und
|
|
\fB\-PA\fR\&. Falls keine Ports angegeben werden, ist die Standardeinstellung 31338\&. Dieser Wert kann zum Zeitpunkt des Kompilierens d\(:urch \(:Anderung von
|
|
\fIDEFAULT_UDP_PROBE_PORT_SPEC\fR.\" DEFAULT_UDP_PROBE_PORT_SPEC
|
|
in
|
|
nmap\&.h
|
|
konfiguriert werden\&..\" nmap.h
|
|
Es wird absichtlich ein sehr unwahrscheinlicher Port verwendet, weil bei dieser bestimmten Art des Scannens das Senden an offene Ports oft unerw\(:unscht ist\&.
|
|
.sp
|
|
Trifft der UDP\-Test beim Zielrechner auf einen geschlossenen Port, so sollte dieser ein ICMP\-Paket zur\(:uckschicken, das besagt, dass der Port nicht erreichbar ist\&. Daraus schlie\(sst Nmap, dass der Rechner l\(:auft und verf\(:ugbar ist\&. Viele weitere Arten von ICMP\-Fehlern, z\&.B\&. bei unerreichbaren Hosts/Netzwerken oder \(:uberschrittener TTL (Time To Live), sind Zeichen f\(:ur einen abgeschalteten oder unerreichbaren Host\&. Auch eine ausbleibende Antwort wird so interpretiert\&. Falls ein offener Port erreicht wird, ignorieren die meisten Dienste das leere Paket einfach und geben keine Antwort zur\(:uck\&. Deswegen wird als Standardport 31338 benutzt, bei dem es sehr unwahrscheinlich ist, dass er benutzt wird\&. Einige Dienste, wie z\&.B\&. das Character Generator\-Protokoll (chargen), antworten auf ein leeres UDP\-Paket und enth\(:ullen damit Nmap gegen\(:uber, dass der Rechner zug\(:anglich ist\&.
|
|
.sp
|
|
Der Hauptvorteil dieses Scan\-Typs liegt darin, dass er Firewalls und Filter umgeht, die nur TCP \(:uberpr\(:ufen\&. Ich hatte z\&.B\&. einmal ein BEFW11S4, einen Wireless\-Breitband\-Router von Linksys\&. Die externe Schnittstelle dieses Ger\(:ats filterte standardm\(:a\(ssig alle TCP\-Ports, aber UDP\-Tests entlockten ihm weiterhin Meldungen \(:uber unerreichbare Ports und verrieten damit das Ger\(:at\&.
|
|
.RE
|
|
.PP
|
|
\fB\-PE\fR; \fB\-PP\fR; \fB\-PM\fR (ICMP\-Ping\-Arten) .\" -PE .\" -PP .\" -PM .\" ICMP-Ping
|
|
.RS 4
|
|
Zus\(:atzlich zu den genannten ungew\(:ohnlichen TCP\- und UDP\-Host\-Erkennungsarten kann Nmap auch Standardpakete senden, wie sie das allgegenw\(:artige Programm
|
|
ping
|
|
sendet\&. Nmap sendet ein ICMP Typ\-8\-Paket (Echo\-Request) an die Ziel\-IP\-Adressen und erwartet eine Typ\-0\-Antwort (Echo\-Reply) vom verf\(:ugbaren Host\&..\" ICMP Echo
|
|
Zum Leidwesen von Netzwerkerkundern blockieren viele Hosts und Firewalls heute diese Pakete, statt, wie in
|
|
\m[blue]\fBRFC 1122\fR\m[]\&\s-2\u[1]\d\s+2
|
|
verlangt, darauf zu antworten\&. Aus diesem Grund sind ICMP\-Scans allein bei unbekannten Zielen \(:uber das Internet selten zuverl\(:assig genug\&. Aber f\(:ur Systemadministratoren, die ein internes Netzwerk \(:uberwachen, kann das ein praktischer und wirksamer Ansatz sein\&. Benutzen Sie die Option
|
|
\fB\-PE\fR, um dieses Verhalten mit Echo\-Requests einzuschalten\&.
|
|
.sp
|
|
Auch wenn ein Echo\-Request die Standard\-ICMP\-Ping\-Abfrage ist, h\(:ort Nmap hier nicht auf\&. Der ICMP\-Standard (\m[blue]\fBRFC 792\fR\m[]\&\s-2\u[2]\d\s+2) spezifiziert auch Anfragepakete f\(:ur Zeitstempel, Information und Adressmaske mit den jeweiligen Codes 13, 15 und 17\&. W\(:ahrend diese Anfragen angeblich den Zweck haben, an Informationen wie Address Mask und Timestamp zu gelangen, k\(:onnen sie auch leicht f\(:ur die Host\-Erkennung benutzt werden\&. Im Moment implementiert Nmap keine Information\-Request\-Pakete, da sie nicht weit verbreitet sind (RFC 1122 besteht darauf, dass
|
|
\(Bqein Host diese Nachrichten NICHT implementieren SOLLTE\(lq)\&. Anfragen nach Timestamp und Address Mask k\(:onnen jeweils mit den Optionen
|
|
\fB\-PP\fR
|
|
und
|
|
\fB\-PM\fR
|
|
gesendet werden\&. Eine Timestamp\-Antwort (ICMP\-Code 14) oder Address\-Mask\-Antwort (Code 18) enth\(:ullt, dass der Host greifbar ist\&. Diese beiden Abfragen k\(:onnen wertvoll sein, wenn Administratoren ausdr\(:ucklich Echo\-Request\-Pakete blockieren, aber vergessen, dass man f\(:ur den gleichen Zweck auch andere ICMP\-Abfragen benutzen kann\&.
|
|
.RE
|
|
.PP
|
|
\fB\-PO \fR\fB\fIprotocol list\fR\fR (IP\-Protokoll\-Ping) .\" -PO .\" IP-Protokoll-Ping
|
|
.RS 4
|
|
Die neueste M\(:oglichkeit der Host\-Erkennung ist ein IP\-Protokoll\-Ping, der IP\-Pakete sendet, in deren IP\-Header die angegebene Protokollnummer gesetzt ist\&. Die Protokoll\-Liste hat dasselbe Format wie Portlisten bei den weiter oben vorgestellten Optionen der TCP\- und UDP\-Host\-Erkennung\&. Ohne Angabe von Protokollen werden standardm\(:a\(ssig mehrere IP\-Pakete f\(:ur ICMP (Protokoll 1), IGMP (Protokoll 2) und IP\-in\-IP (Protokoll 4) gesendet\&. Die Standardprotokolle k\(:onnen zum Zeitpunkt des Kompilierens durch Ver\(:anderung von
|
|
\fIDEFAULT_PROTO_PROBE_PORT_SPEC\fR.\" DEFAULT_PROTO_PROBE_PORT_SPEC
|
|
in
|
|
nmap\&.h
|
|
konfiguriert werden\&. Beachten Sie, dass f\(:ur ICMP, IGMP, TCP (Protokoll 6) und UDP (Protokoll 17) die Pakete mit den richtigen Protokoll\-Headern gesendet werden, w\(:ahrend andere Protokolle ohne weitere Daten \(:uber den IP\-Header hinaus gesendet werden (es sei denn, die Option
|
|
\fB\-\-data\-length\fR
|
|
wird angegeben)\&.
|
|
.sp
|
|
Diese Methode der Host\-Erkennung sucht nach Antworten, die entweder dasselbe Protokoll wie der Test haben, oder Meldungen, dass das ICMP\-Protokoll nicht erreichbar ist, was bedeutet, dass das gegebene Protokoll vom Zielhost nicht unterst\(:utzt wird\&. Beide Antworten bedeuten, dass der Zielhost am Leben ist\&.
|
|
.RE
|
|
.PP
|
|
\fB\-PR\fR (ARP\-Ping) .\" -PR .\" ARP-Ping
|
|
.RS 4
|
|
Eines der h\(:aufigsten Einsatzszenarien f\(:ur Nmap ist das Scannen eines Ethernet\-LANs\&. In den meisten LANs, besonders jenen, die durch
|
|
\m[blue]\fBRFC 1918\fR\m[]\&\s-2\u[3]\d\s+2
|
|
erteilte private Adressbereiche verwenden, wird der Gro\(ssteil der IP\-Adressen meistens nicht genutzt\&. Wenn Nmap versucht, ein rohes IP\-Paket wie z\&.B\&. ein ICMP Echo\-Request zu senden, muss das Betriebssystem die der Ziel\-IP entsprechende Hardware\-Zieladresse (ARP) bestimmen, damit es den Ethernet\-Frame korrekt adressieren kann\&. Das ist oft langsam und problematisch, da Betriebssysteme nicht in der Erwartung geschrieben wurden, dass sie in kurzer Zeit Millionen von ARP\-Anfragen bei nicht erreichbaren Hosts durchf\(:uhren m\(:ussen\&.
|
|
.sp
|
|
Beim ARP\-Scan ist Nmap mit seinen optimierten Algorithmen zust\(:andig f\(:ur ARP\-Anfragen\&. Und wenn es eine Antwort erh\(:alt, muss sich Nmap nicht einmal um die IP\-basierten Ping\-Pakete k\(:ummern, da es bereits wei\(ss, dass der Host aktiv ist\&. Das macht den ARP\-Scan viel schneller und zuverl\(:assiger als IP\-basierte Scans\&. Deswegen wird er standardm\(:a\(ssig ausgef\(:uhrt, wenn Ethernet\-Hosts gescannt werden, bei denen Nmap bemerkt, dass sie sich in einem lokalen Ethernet\-Netzwerk befinden\&. Selbst wenn verschiedene Ping\-Arten (wie z\&.B\&.
|
|
\fB\-PE\fR
|
|
oder
|
|
\fB\-PS\fR) angegeben werden, benutzt Nmap stattdessen ARP bei allen Zielen, die im selben LAN sind\&. Wenn Sie einen ARP\-Scan auf gar keinen Fall durchf\(:uhren m\(:ochten, geben Sie
|
|
\fB\-\-send\-ip\fR
|
|
an\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-traceroute\fR (Traceroutes zum Host) .\" --traceroute .\" traceroute
|
|
.RS 4
|
|
Traceroutes werden nach einem Scan mit Hilfe der Information aus den Scan\-Ergebnissen durchgef\(:uhrt, um den wahrscheinlichsten Port und das wahrscheinlichste Protokoll zu bestimmen, die zum Ziel f\(:uhren\&. Es funktioniert mit allen Scan\-Arten au\(sser Connect\-Scans (\fB\-sT\fR) und Idle\-Scans (\fB\-sI\fR)\&. Alle Traces benutzen Nmaps dynamisches Timing\-Modell und werden parallel durchgef\(:uhrt\&.
|
|
.sp
|
|
Traceroute funktioniert dadurch, dass es Pakete mit kurzer TTL (Time To Live) sendet und damit versucht, ICMP Time\-Exceeded\-Nachrichten von Sprungstellen zwischen dem Scanner und dem Zielhost hervorzurufen\&. Standardimplementationen von Traceroute fangen mit einer TTL von 1 an und inkrementieren die TTL, bis der Zielhost erreicht ist\&. Nmaps Traceroute f\(:angt mit einer hohen TTL an und verringert sie, bis sie Null erreicht\&. Durch dieses umgekehrte Vorgehen kann Nmap clevere Caching\-Algorithmen benutzen, um Traces \(:uber mehrere Hosts zu beschleunigen\&. Im Durchschnitt sendet Nmap je nach Netzwerkbedingungen 5\(en10 Pakete weniger pro Host\&. Wenn ein einziges Unternetz gescannt wird (z\&.B\&. 192\&.168\&.0\&.0/24), muss Nmap an die meisten Hosts eventuell nur ein einziges Paket senden\&.
|
|
.RE
|
|
.PP
|
|
\fB\-n\fR (keine DNS\-Aufl\(:osung) .\" -n
|
|
.RS 4
|
|
Weist Nmap an,
|
|
\fIniemals\fR
|
|
eine Reverse\-DNS\-Aufl\(:osung.\" Reverse-DNS: ausschalten mit -n
|
|
bei den gefundenen aktiven IP\-Adressen durchzuf\(:uhren\&. Da DNS selbst mit Nmaps eingebautem parallelen Stub\-Resolver langsam sein kann, kann diese Option die Scan\-Zeiten dramatisch reduzieren\&.
|
|
.RE
|
|
.PP
|
|
\fB\-R\fR (DNS\-Aufl\(:osung f\(:ur alle Ziele) .\" -R
|
|
.RS 4
|
|
Weist Nmap an,
|
|
\fIimmer\fR
|
|
eine Reverse\-DNS\-Aufl\(:osung bei den Ziel\-IP\-Adressen durchzuf\(:uhren\&. Normalerweise wird Reverse\-DNS nur bei anwortenden Hosts (die online sind) durchgef\(:uhrt\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-system\-dns\fR (verwendet DNS\-Aufl\(:osung des Systems) .\" --system-dns
|
|
.RS 4
|
|
Standardm\(:a\(ssig l\(:ost Nmap IP\-Adressen auf, indem es Anfragen direkt an die auf Ihrem Host konfigurierten Nameserver schickt und dann auf Antworten wartet\&. Um die Performance zu erh\(:ohen, werden viele Anfragen (oftmals Dutzende) parallel ausgef\(:uhrt\&. Wenn Sie diese Option angeben, verwenden Sie stattdessen die Aufl\(:osungsmethode Ihres Systems (zu jedem Zeitpunkt nur eine IP mit dem Aufruf
|
|
\fBgetnameinfo\fR
|
|
call)\&. Das ist langsam und selten n\(:utzlich, es sei denn, Sie finden einen Fehler bei der parallelen Aufl\(:osung in Nmap (bitte teilen Sie uns das mit)\&. Bei IPv6\-Scans wird immer die Aufl\(:osungsmethode des Systems verwendet\&.
|
|
.\" IPv6: Beschr\(:ankungen
|
|
.RE
|
|
.PP
|
|
\fB\-\-dns\-servers \fR\fB\fIserver1\fR\fR\fB[,\fIserver2\fR[,\&.\&.\&.]]\fR\fB \fR (Server, die f\(:ur Reverse\-DNS\-Anfragen benutzt werden) .\" --dns-servers
|
|
.RS 4
|
|
Standardm\(:a\(ssig bestimmt Nmap Ihre DNS\-Server (f\(:ur die rDNS\-Aufl\(:osung) aus Ihrer Datei resolv\&.conf (Unix) oder der Registry (Win32)\&. Mit dieser Option k\(:onnen Sie alternative Server dazu angeben\&. Diese Option bleibt unbeachtet, falls Sie
|
|
\fB\-\-system\-dns\fR
|
|
oder einen IPv6\-Scan benutzen\&. Oft ist es schneller, mehrere DNS\-Server zu benutzen, besonders dann, wenn Sie f\(:ur Ihren Ziel\-IP\-Raum ma\(ssgebende Server benutzen\&. Diese Option kann auch die Heimlichkeit erh\(:ohen, da Ihre Anfragen von fast jedem rekursiven DNS\-Server im Internet abprallen k\(:onnen\&.
|
|
.sp
|
|
Diese Option ist auch beim Scannen privater Netzwerke praktisch\&. Manchmal bieten nur einige wenige Nameserver saubere rDNS\-Information, und Sie wissen vielleicht nicht einmal, wo sie sind\&. Sie k\(:onnen das Netzwerk auf Port 53 scannen (vielleicht mit Versionserkennung), dann Nmap\-List\-Scans versuchen (\fB\-sL\fR) und dabei mit der Option
|
|
\fB\-\-dns\-servers\fR
|
|
immer nur einen Nameserver angeben, bis Sie einen finden, der funktioniert\&.
|
|
.RE
|
|
.\"
|
|
.SH "GRUNDLAGEN VON PORT-SCANS"
|
|
.PP
|
|
Nmap hat \(:uber die Jahre an Funktionalit\(:at zugelegt, aber angefangen hat es als effizienter Port\-Scanner, und das ist weiterhin seine Kernfunktion\&. Der einfache Befehl
|
|
\fBnmap \fR\fB\fItarget\fR\fR
|
|
scannt die am h\(:aufigsten verwendeten 1000 TCP\-Ports auf dem Host
|
|
\fItarget\fR
|
|
und klassifiziert jeden Port in einen der Zust\(:ande
|
|
offen,
|
|
geschlossen,
|
|
gefiltert,
|
|
ungefiltert,
|
|
offen|gefiltert
|
|
oder
|
|
geschlossen|gefiltert\&.
|
|
.PP
|
|
Diese Zust\(:ande sind keine echten Eigenschaften eines Ports selbst, sondern beschreiben, wie Nmap ihn sieht\&. Ein Nmap\-Scan z\&.B\&., bei dem Ausgangs\- und Zielnetzwerk identisch sind, k\(:onnte Port
|
|
135/tcp
|
|
als offen anzeigen, w\(:ahrend ein Scan zur selben Zeit mit denselben Optionen \(:uber das Internet diesen Port als
|
|
gefiltert
|
|
anzeigen k\(:onnte\&.
|
|
.PP
|
|
\fBDie sechs von Nmap erkannten Port\-Zust\(:ande\fR
|
|
.PP
|
|
.\" offen Portzustand offen
|
|
.RS 4
|
|
Ein Programm ist bereit, TCP\-Verbindungen oder UDP\-Pakete auf diesem Port anzunehmen\&. Beim Port\-Scanning ist es oftmals das Ziel, solche Ports zu finden\&. Sicherheitsbewusste Leute wissen, dass jeder offene Port eine breite Einfahrtstrasse f\(:ur Angriffe darstellt\&. Angreifer und Penetrationstester wollen offene Ports ausbeuten (engl\&. exploit), w\(:ahrend Administratoren versuchen, sie zu schlie\(ssen oder mit Firewalls zu sch\(:utzen, ohne legitime Benutzer zu behindern\&. Offene Ports sind auch f\(:ur Scans von Interesse, bei denen es nicht um Sicherheit geht, weil sie Dienste anzeigen, die im Netzwerk benutzt werden k\(:onnen\&.
|
|
.RE
|
|
.PP
|
|
.\" geschlossen Portzustand geschlossen
|
|
.RS 4
|
|
Ein geschlossener Port ist erreichbar (er empf\(:angt und antwortet auf Nmap\-Testpakete), aber es gibt kein Programm, das ihn abh\(:ort\&. Er kann von Nutzen sein, um zu zeigen, dass ein Host online ist und eine IP\-Adresse benutzt (Host\-Erkennung oder Ping\-Scanning), sowie als Teil der Betriebssystemerkennung\&. Weil geschlossene Ports erreichbar sind, sind sie es wert, gescannt zu werden, falls sie sp\(:ater einmal ge\(:offnet werden sollten\&. Administratoren m\(:ochten solche Ports vielleicht mit einer Firewall blockieren, damit sie im Zustand gefiltert erscheinen, der als N\(:achstes beschrieben wird\&.
|
|
.RE
|
|
.PP
|
|
.\" gefiltert Portzustand gefiltert
|
|
.RS 4
|
|
Nmap kann nicht feststellen, ob der Port offen ist, weil eine Paketfilterung verhindert, dass seine Testpakete den Port erreichen\&. Die Filterung k\(:onnte durch daf\(:ur vorgesehene Firewall\-Ger\(:ate, Router\-Regeln oder hostbasierte Firewall\-Software erfolgen\&. Weil sie so wenig Information bringen, sind diese Ports f\(:ur Angreifer frustrierend\&. Manchmal antworten sie mit ICMP\-Fehlermeldungen wie Typ 3, Code 13 (Destination Unreachable: Communication Administratively Prohibited), aber Filter, die Testpakete ohne Antwort einfach verwerfen, kommen wesentlich h\(:aufiger vor\&. Das zwingt Nmap zu mehreren wiederholten Versuchen, um auszuschlie\(ssen, dass das Testpaket wegen einer Netzwerk\(:uberlastung statt durch eine Filterung verworfen wurde\&. Diese Art der Filterung verlangsamt einen Scan dramatisch\&.
|
|
.RE
|
|
.PP
|
|
.\" ungefiltert Portzustand ungefiltert
|
|
.RS 4
|
|
Der Zustand ungefiltert bedeutet, dass ein Port zug\(:anglich ist, aber Nmap nicht feststellen kann, ob er offen oder geschlossen ist\&. Nur der ACK\-Scan, der benutzt wird, um Firewall\-Regelwerke zu bestimmen, klassifiziert Ports in diesen Zustand\&. Um festzustellen, ob ein ungefilterter Port offen ist, kann es hilfreich sein, ihn mit anderen Scan\-Methoden wie Window\-Scan, SYN\-Scan oder FIN\-Scan zu scannen\&.
|
|
.RE
|
|
.PP
|
|
.\" offen|gefiltert Portzustand offen|gefiltert
|
|
.RS 4
|
|
Nmap klassifiziert einen Port in diesen Zustand, wenn es nicht feststellen kann, ob der Port offen oder gefiltert ist\&. Das kommt bei Scan\-Methoden vor, in denen offene Ports keine Antwort geben\&. Das Fehlen einer Antwort k\(:onnte auch bedeuten, dass ein Paketfilter das Testpaket verworfen hat oder dass keine Antwort provoziert werden konnte\&. Deswegen wei\(ss Nmap nicht sicher, ob der Port offen ist oder gefiltert wird\&. Ports werden von den UDP\-, IP\-Protokoll\-, FIN\-, NULL\- und Xmas\-Scans auf diese Weise klassifiziert\&.
|
|
.RE
|
|
.PP
|
|
.\" geschlossen|gefiltert Portzustand geschlossen|gefiltert
|
|
.RS 4
|
|
Dieser Zustand wird benutzt, wenn Nmap nicht feststellen kann, ob ein Port geschlossen ist oder gefiltert wird\&. Er wird nur vom IP\-ID\-Idle\-Scan benutzt\&.
|
|
.RE
|
|
.SH "PORT-SCANNING-METHODEN"
|
|
.PP
|
|
Als Hobby\-Automechaniker kann ich mich stundenlang damit herumqu\(:alen, meine einfachsten Werkzeuge (Hammer, Klebeband, Schraubenschl\(:ussel etc\&.) an mein Problem anzupassen\&. Wenn ich dann kl\(:aglich versage und meine alte Blechkiste zu einem echten Mechaniker schleppe, fischt er immer so lange in einer riesigen Werkzeugkiste herum, bis er das perfekte Ding gefunden hat, mit dem sich die Aufgabe fast von allein l\(:ost\&. Bei der Kunst des Port\-Scannings ist es \(:ahnlich\&. Experten kennen Dutzende von Scan\-Methoden und w\(:ahlen f\(:ur jede Aufgabe die geeignete (oder eine Kombination von mehreren) aus\&. Auf der anderen Seite versuchen unerfahrene Benutzer und Script\-Kiddies,.\" Script Kiddies
|
|
jedes Problem mit dem standardm\(:a\(ssigen SYN\-Scan zu l\(:osen\&. Da Nmap gratis ist, ist Unwissen das einzige Hindernis auf dem Weg zur Meisterschaft im Port\-Scanning\&. Das ist bestimmt besser als in der Autowelt, wo man eventuell sehr viel K\(:onnen haben muss, um festzustellen, dass man einen Federbein\-Kompressor ben\(:otigt, und dann immer noch Tausende daf\(:ur bezahlen muss\&.
|
|
.PP
|
|
Die meisten Scan\-Typen stehen nur privilegierten Benutzern zur Verf\(:ugung,.\" Benutzer mit Sonderrechten
|
|
und zwar deswegen, weil sie rohe IP\-Pakete.\" rohe Pakete
|
|
senden und empfangen, wof\(:ur auf Unix\-Systemen root\-Rechte ben\(:otigt werden\&. Auf Windows empfiehlt sich ein Administrator\-Account, wenngleich auf dieser Plattform Nmap manchmal auch f\(:ur unprivilegierte Benutzer funktioniert, sofern WinPcap bereits in das Betriebssystem geladen wurde\&. Als Nmap 1997 ver\(:offentlicht wurde, war die Voraussetzung von root\-Rechten eine ernsthafte Beschr\(:ankung, da viele Benutzer nur Zugriff zu Shell\-Accounts hatten\&. Die Welt von heute ist anders\&. Computer sind billiger, wesentlich mehr Menschen verf\(:ugen \(:uber einen immer verf\(:ugbaren direkten Internet\-Zugang, und Desktop\-Unix\-Systeme (inklusive Linux und Mac OS X) sind weit verbreitet\&. Eine Windows\-Version von Nmap ist nun auch verf\(:ugbar, wodurch es nun auf noch mehr Rechnern laufen kann\&. Aus all diesen Gr\(:unden sind Benutzer nur noch selten gezwungen, Nmap von einem beschr\(:ankten Shell\-Account aus einzusetzen\&. Das ist erfreulich, denn die privilegierten Optionen machen Nmap wesentlich m\(:achtiger und flexibler\&.
|
|
.PP
|
|
Auch wenn Nmap versucht, genaue Ergebnisse zu produzieren, sollten Sie nicht vergessen, dass all seine Erkenntnisse auf Paketen basieren, die von den Zielrechnern (oder den Firewalls davor) zur\(:uckkommen\&. Solche Hosts k\(:onnen unzuverl\(:assig sein und eine Antwort senden, die Nmap verwirren oder t\(:auschen soll\&. Wesentlich h\(:aufiger sind Hosts, die nicht RFC\-konform sind und auf Testpakete von Nmap nicht so antworten, wie sie sollten\&. FIN\-, NULL\- und Xmas\-Scans sind f\(:ur dieses Problem besonders anf\(:allig\&. Solche Probleme sind spezifisch f\(:ur bestimmte Scan\-Methoden und werden daher in den jeweiligen Abschnitten er\(:ortert\&.
|
|
.PP
|
|
Dieser Abschnitt dokumentiert die etwa ein Dutzend von Nmap unterst\(:utzten Port\-Scan\-Methoden\&. Es darf immer nur eine Methode allein benutzt werden, mit der Ausnahme von UDP\-Scans (\fB\-sU\fR), die sich mit allen anderen TCP\-Scan\-Methoden kombinieren lassen\&. Hier eine Ged\(:achtnisst\(:utze: Optionen f\(:ur Port\-Scan\-Methoden haben die Form
|
|
\fB\-s\fR\fB\fIC\fR\fR, wobei
|
|
\fIC\fR
|
|
ein bedeutender Buchstabe im Scan\-Namen ist, normalerweise der erste\&. Die eine Ausnahme hiervon ist der als veraltet betrachtete FTP\-Bounce\-Scan (\fB\-b\fR)\&. Nmap f\(:uhrt standardm\(:a\(ssig einen SYN\-Scan durch, ersetzt diesen aber mit einem Connect\-Scan, falls der Benutzer nicht die n\(:otigen Rechte hat, um rohe Pakete (ben\(:otigen unter Unix root\-Rechte) zu senden, oder falls er IPv6\-Ziele angegeben hat\&. Von den in diesem Abschnitt aufgelisteten Scans d\(:urfen Benutzer ohne Sonderrechte nur den Connect\- und FTP\-Bounce\-Scan ausf\(:uhren\&.
|
|
.PP
|
|
\fB\-sS\fR (TCP\-SYN\-Scan) .\" -sS .\" SYN-Scan
|
|
.RS 4
|
|
Der SYN\-Scan ist aus gutem Grund die Standardeinstellung und die beliebteste Scan\-Methode\&. Er kann schnell durchgef\(:uhrt werden und scannt dabei Tausende von Ports pro Sekunde, wenn das Netzwerk schnell ist und nicht von einer intrusiven Firewall behindert wird\&. Der SYN\-Scan ist relativ unauff\(:allig, da er TCP\-Verbindungen niemals abschlie\(sst\&. Au\(sserdem funktioniert er auch bei allen konformen TCP\-Stacks und ist unabh\(:angig von spezifischen Eigenarten von Plattformen, wie es bei den FIN\-/NULL\-/Xmas\-, Maimon\- und Idle\-Scans in Nmap der Fall ist\&. Er erlaubt auch eine klare, zuverl\(:assige Unterscheidung zwischen den Zust\(:anden
|
|
offen,
|
|
geschlossen
|
|
und
|
|
gefiltert\&.
|
|
.sp
|
|
Diese Methode wird oft als halboffenes Scannen bezeichnet, weil keine vollst\(:andige TCP\-Verbindung hergestellt wird\&. Sie senden ein SYN\-Paket, als ob Sie eine echte Verbindung herstellen w\(:urden, und warten dann auf eine Antwort\&. Ein SYN/ACK zeigt, dass jemand auf dem Port lauscht (dass er offen ist), w\(:ahrend ein RST (Reset) anzeigt, dass niemand darauf lauscht\&. Falls nach mehreren erneuten \(:Ubertragungen keine Antwort erhalten wird, wird der Port als gefiltert markiert\&. Der Port wird auch dann als gefiltert markiert, wenn ein ICMP Unreachable\-Fehler (Typ 3, Code 1, 2, 3, 9, 10 oder 13) empfangen wird\&.
|
|
.RE
|
|
.PP
|
|
\fB\-sT\fR (TCP\-Connect\-Scan) .\" -sT .\" Connect-Scan
|
|
.RS 4
|
|
Der TCP\-Connect\-Scan ist der standardm\(:a\(ssig eingestellte TCP\-Scan\-Typ, falls der SYN\-Scan nicht m\(:oglich ist\&. Das ist dann der Fall, wenn der Benutzer kein Recht hat, rohe Pakete zu senden, oder wenn er IPv6\-Netzwerke scannt\&. Statt rohe Pakete zu schreiben, wie es die meisten anderen Scan\-Typen machen, bittet Nmap das darunterliegende Betriebssystem, eine Verbindung mit dem Zielrechner und \-port herzustellen, indem es einen Systemaufruf namens
|
|
\fBconnect\fR
|
|
benutzt\&. Das ist derselbe Systemaufruf auf h\(:oherer Ebene, den Webbrowser, P2P\-Clients und die meisten anderen netzwerkf\(:ahigen Anwendungen benutzen, um eine Verbindung herzustellen\&. Er ist Teil einer Programmierschnittstelle, die unter dem Namen Berkeley Sockets\-API bekannt ist\&. Statt Antworten in Form roher Pakete von der Leitung zu lesen, benutzt Nmap diese API, um zu jedem Verbindungsversuch eine Statusinformation zu erhalten\&.
|
|
.sp
|
|
Wenn der SYN\-Scan verf\(:ugbar ist, ist er normalerweise die bessere Wahl\&. Nmap hat weniger Einfluss auf den
|
|
\fBconnect\fR\-Systemaufruf als auf rohe Pakete, wodurch es weniger effizient wird\&. Der Systemaufruf beendet Verbindungen zu offenen Ziel\-Ports vollst\(:andig, statt sie in halboffenen Zustand zur\(:uckzusetzen, wie es der SYN\-Scan macht\&. Das dauert nicht nur l\(:anger und erfordert mehr Pakete, um an dieselbe Information zu gelangen, sondern es ist sehr viel wahrscheinlicher, dass die Zielrechner die Verbindung protokollieren\&. Ein anst\(:andiges IDS wird beides mitbekommen, aber die meisten Rechner verf\(:ugen nicht \(:uber ein solches Alarmsystem\&. Viele Dienste auf Ihrem durchschnittlichen Unix\-System f\(:ugen eine Notiz ins syslog hinzu und manchmal eine kryptische Fehlermeldung, wenn Nmap eine Verbindung herstellt und sofort wieder schlie\(sst, ohne Daten zu senden\&. Ganz armselige Dienste st\(:urzen auch ab, wenn so etwas passiert, was aber eher selten ist\&. Ein Administrator, der in seinen Protokollen einen Haufen Verbindungsversuche von einem einzelnen System aus sieht, sollte wissen, dass er Ziel eines Connect\-Scans wurde\&.
|
|
.RE
|
|
.PP
|
|
\fB\-sU\fR (UDP\-Scan) .\" -sU .\" UDP-Scan
|
|
.RS 4
|
|
Obwohl die meisten bekannten Dienste im Internet \(:uber das TCP\-Protokoll laufen, sind
|
|
\m[blue]\fBUDP\fR\m[]\&\s-2\u[4]\d\s+2\-Dienste weitverbreitet\&. Drei der h\(:aufigsten sind DNS, SNMP und DHCP (auf den registrierten Ports 53, 161/162 und 67/68)\&. Weil UDP\-Scans im Allgemeinen langsamer und schwieriger als TCP\-Scans sind, werden diese Ports von manchen Sicherheitspr\(:ufern einfach ignoriert\&. Das ist ein Fehler, denn ausbeutbare UDP\-Dienste sind recht h\(:aufig, und Angreifer ignorieren bestimmt nicht das ganze Protokoll\&. Zum Gl\(:uck kann Nmap helfen, diese UDP\-Ports zu inventarisieren\&.
|
|
.sp
|
|
Ein UDP\-Scan wird mit der Option
|
|
\fB\-sU\fR
|
|
aktiviert\&. Er kann mit einem TCP\-Scan\-Typ wie einem SYN\-Scan (\fB\-sS\fR) kombiniert werden, um beide Protokolle im gleichen Durchlauf zu pr\(:ufen\&.
|
|
.sp
|
|
Beim UDP\-Scan wird ein leerer UDP\-Header (ohne Daten) an alle Ziel\-Ports geschickt\&. Falls ein ICMP Port\-unreachable\-Fehler (Typ 3, Code 3) zur\(:uckkommt, ist der Port
|
|
geschlossen\&. Andere ICMP Unreachable\-Fehler (Typ 3, Codes 1, 2, 9, 10 oder 13) markieren den Port als
|
|
filtered\&. Gelegentlich wird ein Dienst mit einem UDP\-Paket antworten, was beweist, das er
|
|
offen
|
|
ist\&. Falls nach einigen erneuten \(:Ubertragungen keine Antwort erhalten wird, wird der Port als
|
|
offen|gefiltert
|
|
klassifiziert\&. Das hei\(sst, der Port k\(:onnte offen sein, oder aber es gibt Paketfilter, die die Kommunikation blockieren\&. Man kann eine Versionserkennung (\fB\-sV\fR) benutzen, um bei der Unterscheidung der wirklich offenen von den geschlossenen Ports zu helfen\&.
|
|
.sp
|
|
Eine gro\(sse Herausforderung beim UDP\-Scanning ist Geschwindigkeit\&. Offene und gefilterte Ports antworten nur selten, wodurch Nmap Zeitbeschr\(:ankungen \(:uberschreitet und seine Anfragen erneut sendet, f\(:ur den Fall, dass das Testpaket oder die Antwort verloren ging\&. Geschlossene Ports sind oftmals ein noch gr\(:o\(sseres Problem\&. Sie senden normalerweise eine ICMP Port\-unreachable\-Fehlermeldung zur\(:uck\&. Aber anders als die RST\-Pakete, die von geschlossenen TCP\-Ports als Antwort auf einen SYN\- oder Connect\-Scan geschickt werden, beschr\(:anken viele Hosts standardm\(:a\(ssig die Rate.\" Ratenbeschr\(:ankung
|
|
der ICMP Port\-unreachable\-Nachrichten\&. Linux und Solaris sind dabei besonders streng\&. Der Linux\-Kernel 2\&.4\&.20 z\&.B\&. beschr\(:ankt Destination\-unreachable\-Nachrichten auf eine pro Sekunde (in
|
|
net/ipv4/icmp\&.c)\&.
|
|
.sp
|
|
Nmap erkennt eine Ratenbeschr\(:ankung und verlangsamt seinen Betrieb entsprechend, um zu vermeiden, dass das Netzwerk mit nutzlosen Paketen \(:uberflutet wird, die vom Zielrechner verworfen werden\&. Ungl\(:ucklicherweise f\(:uhrt eine Beschr\(:ankung wie in Linux auf ein Paket pro Sekunde dazu, dass ein Scan von 65\&.536 Ports \(:uber 18 Stunden dauert\&. Um Ihre UDP\-Scans zu beschleunigen, k\(:onnen Sie z\&.B\&. mehr Hosts parallel scannen, zuerst nur einen schnellen Scan der beliebten Ports durchf\(:uhren, von hinter der Firewall scannen und die Option
|
|
\fB\-\-host\-timeout\fR
|
|
benutzen, um langsame Hosts auszulassen\&.
|
|
.RE
|
|
.PP
|
|
\fB\-sN\fR; \fB\-sF\fR; \fB\-sX\fR (TCP\-NULL\-, FIN\- und \-Xmas\-Scans) .\" -sN .\" -sF .\" -sX .\" NULL-Scan .\" FIN-Scan .\" Xmas-Scan
|
|
.RS 4
|
|
Diese drei Scan\-Typen (noch mehr sind mit der im n\(:achsten Abschnitt beschriebenen Option
|
|
\fB\-\-scanflags\fR
|
|
m\(:oglich) beuten ein subtiles Schlupfloch im
|
|
\m[blue]\fBTCP RFC\fR\m[]\&\s-2\u[5]\d\s+2
|
|
aus, um zwischen
|
|
offenen
|
|
und
|
|
geschlossenen
|
|
Ports zu unterscheiden\&. Seite 65 von RFC 793 besagt:
|
|
\(BqFalls der Zustand des [Ziel\-] Ports GESCHLOSSEN ist \&.\&.\&. bewirkt ein eingehendes Segment, in dem sich kein RST befindet, dass ein RST als Antwort gesendet wird\&.\(lq
|
|
Die n\(:achste Seite beschreibt dann Pakete, die ohne gesetztes SYN\-, RST\- oder ACK\-Bit an offene Ports geschickt werden, und dort hei\(sst es weiter:
|
|
\(BqEs ist unwahrscheinlich, dass Sie hierhin kommen, aber wenn doch, dann verwerfen Sie das Segment und springen Sie zur\(:uck\&.\(lq
|
|
.sp
|
|
Beim Scannen von Systemen, die konform zu diesem RFC\-Text sind, f\(:uhrt jedes Paket, das kein SYN\-, RST\- oder ACK\-Bit enth\(:alt, dazu, dass ein RST zur\(:uckgegeben wird, wenn der Port geschlossen ist, bzw\&. zu gar keiner Antwort, falls der Port offen ist\&. Solange keines dieser drei Bits gesetzt ist, sind alle Kombinationen der anderen drei (FIN, PSH und URG) okay\&. Das nutzt Nmap mit drei Scan\-Typen aus:
|
|
.PP
|
|
Null\-Scan (\fB\-sN\fR)
|
|
.RS 4
|
|
Setzt keinerlei Bits (der TCP\-Flag\-Header ist 0)\&.
|
|
.RE
|
|
.PP
|
|
FIN\-Scan (\fB\-sF\fR)
|
|
.RS 4
|
|
Setzt nur das TCP\-FIN\-Bit\&.
|
|
.RE
|
|
.PP
|
|
Xmas\-Scan (\fB\-sX\fR)
|
|
.RS 4
|
|
Setzt die FIN\-, PSH\- und URG\-Flags und beleuchtet das Paket wie einen Weihnachtsbaum (engl\&. Xmas)\&.
|
|
.RE
|
|
.sp
|
|
Diese drei Scan\-Typen haben exakt dasselbe Verhalten und unterscheiden sich nur in den TCP\-Flags ihrer Testpakete\&. Wenn ein RST\-Paket empfangen wird, wird der Port als
|
|
geschlossen
|
|
betrachtet, w\(:ahrend keine Antwort bedeutet, dass er
|
|
offen|gefiltert
|
|
ist\&. Der Port wird als
|
|
gefiltert
|
|
markiert, falls ein ICMP Unreachable\-Fehler (Type 3, Code 1, 2, 3, 9, 10 oder 13) empfangen wird\&.
|
|
.sp
|
|
Der Schl\(:usselvorteil dieser Scan\-Arten ist, dass sie sich an bestimmten zustandslosen Firewalls und paketfilternden Routern vorbeschleichen k\(:onnen\&. Ein weiterer Vorteil ist, dass diese Scan\-Arten ncoh ein wenig unauff\(:alliger sind als ein SYN\-Scan\&. Aber verlassen Sie sich nicht darauf \(en die meisten modernen IDS\-Produkte k\(:onnen so konfiguriert werden, dass sie diese Scans erkennen\&. Der gro\(sse Nachteil ist, dass nicht alle Systeme sich ganz genau an RFC 793 halten\&. Eine Reihe von Systemen sendet RST\-Antworten auf die Testpakete, unabh\(:angig davon, ob der Port offen ist oder nicht\&. Das bewirkt, dass alle Ports als
|
|
geschlossen
|
|
markiert werden\&. Hauptvertreter der Betriebssysteme, die das machen, sind Microsoft Windows, viele Cisco\-Ger\(:ate, BSDI und IBM OS/400\&. Aber auf den meisten Unix\-basierten Systemen funktioniert dieser Scan\&. Ein weiterer Nachteil dieser Scans ist, dass sie keine Unterscheidung zwischen
|
|
offenen
|
|
und bestimmten
|
|
gefilterten
|
|
Ports machen, sondern lediglich das Ergebnis
|
|
offen|gefiltert
|
|
ausgeben\&.
|
|
.RE
|
|
.PP
|
|
\fB\-sA\fR (TCP\-ACK\-Scan) .\" -sA .\" ACK-Scan
|
|
.RS 4
|
|
Dieser Scan unterscheidet sich insofern von den bisher hier vorgestellten, als er nie
|
|
offene
|
|
(oder auch nur
|
|
offene|gefilterte) Ports bestimmt\&. Er wird dazu benutzt, Firewall\-Regeln zu bestimmen, festzustellen, ob sie zustandsbehaftet sind oder nicht, und welche Ports gefiltert werden\&.
|
|
.sp
|
|
Beim Testpaket eines ACK\-Scans wird nur das ACK\-Flag gesetzt (es sei denn, Sie benutzen
|
|
\fB\-\-scanflags\fR)\&. Beim Scannen ungefilterter Systeme werden sowohl
|
|
offene
|
|
als auch
|
|
geschlossene
|
|
Ports ein RST\-Paket zur\(:uckgeben\&. Nmap markiert sie dann als
|
|
ungefiltert, d\&.h\&. sie werden vom ACK\-Paket erreicht, aber es kann nicht bestimmt werden, ob sie
|
|
offen
|
|
oder
|
|
geschlossen
|
|
sind\&. Ports, die nicht antworten oder bestimmte ICMP\-Fehlermeldungen zur\(:uckgeben (Type 3, Code 1, 2, 3, 9, 10 oder 13), werden als
|
|
gefiltert
|
|
markiert\&.
|
|
.RE
|
|
.PP
|
|
\fB\-sW\fR (TCP\-Window\-Scan) .\" -sW .\" Window-Scan
|
|
.RS 4
|
|
Der Window\-Scan ist genau derselbe wie der ACK\-Scan, nur dass er ein Implementationsdetail bestimmter Systeme zur Unterscheidung zwischen offenen und geschlossenen Ports nutzt, statt bei jedem erhaltenen RST immer nur
|
|
ungefiltert
|
|
anzugeben\&. Das geschieht durch Analyse der TCP\-Fenstergr\(:o\(sse der zur\(:uckgegebenen RST\-Pakete\&. Auf manchen Systemen benutzen offene Ports eine positive Fenstergr\(:o\(sse (sogar f\(:ur RST\-Pakete), w\(:ahrend geschlossene eine Fenstergr\(:o\(sse von Null haben\&. Statt einen Port immer als
|
|
ungefiltert
|
|
aufzulisten, wenn von dort ein RST zur\(:uckkommt, listet der Window\-Scan den Port als
|
|
offen
|
|
oder
|
|
geschlossen
|
|
auf, je nachdem, ob die TCP\-Fenstergr\(:o\(sse in diesem Reset jeweils positiv oder Null ist\&.
|
|
.sp
|
|
Dieser Scan baut auf einem Implementationsdetail einer Minderheit von Systemen im Internet auf, d\&.h\&. Sie k\(:onnen sich nicht immer darauf verlassen\&. Systeme, die es nicht unterst\(:utzen, werden normalerweise alle Ports als
|
|
geschlossen
|
|
zur\(:uckgeben\&. Nat\(:urlich ist es m\(:oglich, dass auf dem Rechner wirklich keine offenen Ports sind\&. Falls die meisten gescannten Ports
|
|
geschlossen, aber einige Ports mit gel\(:aufigen Nummern (wie 22, 25 und 53)
|
|
gefiltert
|
|
sind, dann ist das System sehr wahrscheinlich anf\(:allig\&. Gelegentlich zeigen Systeme auch genau das gegenteilige Verhalten\&. Falls Ihr Scan 1000 offene und drei geschlossene oder gefilterte Ports anzeigt, dann k\(:onnten jene drei sehr wohl die wirklich wahren offenen Ports sein\&.
|
|
.RE
|
|
.PP
|
|
\fB\-sM\fR (TCP\-Maimon\-Scan) .\" -sM .\" Maimon-Scan
|
|
.RS 4
|
|
Der Maimon\-Scan wurde nach seinem Erfinder, Uriel Maimon,.\" Maimon, Uriel
|
|
benannt\&. Er hat diese Methode im
|
|
Phrack\-Magazin, Ausgabe #49 (November 1996),.\" Phrack
|
|
beschrieben\&. Zwei Ausgaben sp\(:ater war diese Methode in Nmap enthalten\&. Sie macht genau das Gleiche wie der NULL\-, FIN\- und Xmas\-Scan, au\(sser, dass sie ein FIN/ACK\-Testpaket verwendet\&. Laut
|
|
\m[blue]\fBRFC 793\fR\m[]\&\s-2\u[5]\d\s+2
|
|
(TCP) sollte als Antwort auf solch ein Paket ein RST\-Paket erzeugt werden, egal ob der Port offen oder geschlossen ist\&. Allerdings hatte Uriel bemerkt, dass viele von BSD abgeleitete Systeme das Paket einfach verwerfen, wenn der Port offen ist\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-scanflags\fR (Benutzerdefinierter TCP\-Scan) .\" --scanflags
|
|
.RS 4
|
|
Wirklich fortgeschrittene Nmap\-Benutzer brauchen sich nicht auf die vorgefertigten Scan\-Typen zu beschr\(:anken\&. Mit der Option
|
|
\fB\-\-scanflags\fR
|
|
k\(:onnen Sie Ihren eigenen Scan entwerfen, f\(:ur den Sie beliebige TCP\-Flags angeben k\(:onnen\&..\" TCP-Flags
|
|
Lassen Sie Ihrer Kreativit\(:at freien Lauf und umgehen Sie Intrusion\-Detection\-Systeme,.\" Intrusion-Detection-Systeme: umgehen
|
|
deren Hersteller einfach die Nmap\-Manpage durchgebl\(:attert und spezifische Regeln daf\(:ur angegeben haben!
|
|
.sp
|
|
Das Argument f\(:ur
|
|
\fB\-\-scanflags\fR
|
|
kann ein numerischer Flag\-Wert wie z\&.B\&. 9 (PSH und FIN) sein, aber symbolische Namen sind einfacher zu benutzen\&. Erstellen Sie einfach eine beliebige Kombination von
|
|
URG,
|
|
ACK,
|
|
PSH,
|
|
RST,
|
|
SYN
|
|
und
|
|
FIN\&. So setzt z\&.B\&.
|
|
\fB\-\-scanflags URGACKPSHRSTSYNFIN\fR
|
|
alle Flags, auch wenn das beim Scannen nicht besonders hilfreich ist\&. Die Reihenfolge, in der Sie diese Flags angeben, spielt keine Rolle\&.
|
|
.sp
|
|
Zus\(:atzlich zu den gew\(:unschten Flags k\(:onnen Sie einen TCP\-Scan\-Typen (z\&.B\&.
|
|
\fB\-sA\fR
|
|
oder
|
|
\fB\-sF\fR) angeben\&. Dieser Basistyp sagt Nmap, wie es die Antworten interpretieren soll\&. Ein SYN\-Scan z\&.B\&. betrachtet das Fehlen einer Antwort als einen Hinweis auf einen
|
|
gefilterten
|
|
Port, w\(:ahrend ein FIN\-Scan das als einen Hinweis auf einenoffen|gefilterten
|
|
Port ansieht\&. Nmap verh\(:alt sich genauso wie beim Scan\-Basistyp, nur mit dem Unterschied, dass es die von Ihnen angegebenen TCP\-Flags benutzt\&. Ohne Angabe eines Basistyps wird ein SYN\-Scan benutzt\&.
|
|
.RE
|
|
.PP
|
|
\fB\-sI \fR\fB\fIzombie host\fR\fR\fB[:\fIprobeport\fR]\fR (Idle\-Scan) .\" -sI .\" Idle-Scan
|
|
.RS 4
|
|
Diese fortgechrittene Scan\-Methode erm\(:oglicht einen wirklich blinden TCP\-Port\-Scan des Ziels, d\&.h\&. es werden keine Pakete von Ihrer wahren IP\-Adresse an das Ziel gesendet\&. Stattdessen wird mit einem Angriff auf einem parallelen Kanal eine vorhersagbare Erzeugung von Folgen von IP\-Fragmentation\-IDs auf dem Zombie\-Host ausgebeutet, um an Information \(:uber offene Ports auf dem Ziel zu gelangen\&. IDS\-Systeme zeigen als Urheber des Scans den Zombie\-Rechner an, den Sie angeben (der aktiv sein und einige bestimmte Bedingungen erf\(:ullen muss)\&.
|
|
Da dieser faszinierende Scan\-Typ zu komplex ist, um ihn in diesem Handbuch vollst\(:andig zu beschreiben, habe ich einen Artikel mit vollst\(:andigen Details dazu geschrieben und unter \m[blue]\fB\%https://nmap.org/book/idlescan.html\fR\m[] ver\(:offentlicht\&.
|
|
.sp
|
|
Dieser Scan\-Typ ist nicht nur extrem unauff\(:allig (wegen seiner Blindheit), sondern erlaubt auch, IP\-basierte Vetrauensbeziehungen zwischen Rechnern festzustellen\&. Die Portliste zeigt offene Ports
|
|
\fIaus der Sicht des Zombie\-Hosts\fR
|
|
an\&. Also k\(:onnen Sie versuchen, ein Ziel mit verschiedenen Zombies zu scannen, von denen Sie denken, dass sie vertrauensw\(:urdig sind.\" Vertrauensbeziehungen
|
|
(\(:uber Router\-/Paketfilterregeln)\&.
|
|
.sp
|
|
Wenn Sie einen bestimmten Port auf dem Zombie auf IP\-ID\-\(:Anderungen testen m\(:ochten, k\(:onnen Sie einen Doppelpunkt gefolgt von einer Portnummer an den Zombie\-Host hinzuf\(:ugen\&. Sonst benutzt Nmap den Port, den es standardm\(:a\(ssig bei TCP\-Pings benutzt (80)\&.
|
|
.RE
|
|
.PP
|
|
\fB\-sO\fR (IP\-Protokoll\-Scan) .\" -sO .\" IP-Protokoll-Scan
|
|
.RS 4
|
|
Der IP\-Protokoll\-Scan erm\(:oglicht die Bestimmung der IP\-Protokolle (TCP, ICMP, IGMP etc\&.), die von Zielrechnern unterst\(:utzt werden\&. Rein technisch ist das kein Port\-Scan, da er \(:uber Nummern von IP\-Protokollen statt TCP\- oder UDP\-Ports vorgeht\&. Dennoch benutzt er die Option
|
|
\fB\-p\fR
|
|
f\(:ur die Auswahl der zu scannenden Protokollnummern, gibt seine Ergebnisse im normalen Port\-Tabellenformat aus und benutzt sogar dieselbe grundlegende Scan\-Engine wie die echten Port\-Scanning\-Methoden\&. Damit ist er einem Port\-Scan \(:ahnlich genug, um an dieser Stelle beschrieben zu werden\&.
|
|
.sp
|
|
Abgesehen davon, dass er schon als solcher n\(:utzlich ist, zeigt der Protokoll\-Scan die Macht von Open\-Source\-Software\&. Auch wenn die grundlegende Idee recht simpel ist, hatte ich nicht daran gedacht, ihn hinzuzuf\(:ugen, und bekam auch keine Anfragen nach einer solchen Funktionalit\(:at\&. Dann, im Sommer 2000, hatte Gerhard Rieger.\" Rieger, Gerhard
|
|
die Idee, schrieb einen exzellenten Patch als Implementation und sendete ihn an die Mailingliste
|
|
nmap\-hackers\&..\" nmap-hackers Mailingliste
|
|
Diesen Patch habe ich in den Nmap\-Baum aufgenommen und einen Tag sp\(:ater eine neue Version ver\(:offentlicht\&. Es gibt nur wenig kommerzielle Software, deren Benutzer so enthusiastisch sind, dass sie eigene Verbesserungen daf\(:ur entwerfen und beitragen!
|
|
.sp
|
|
Der Protokoll\-Scan funktioniert auf \(:ahnliche Weise wie der UDP\-Scan\&. Statt \(:uber das Portnummernfeld eines UDP\-Pakets zu iterieren, sendet er IP\-Paketheader und iteriert \(:uber das acht Bit gro\(sse IP\-Protokollfeld\&. Die Header sind normalerweise leer, enthalten keine Daten und nicht einmal den richtigen Header f\(:ur das behauptete Protokoll\&. Die drei Ausnahmen davon sind TCP, UDP und ICMP\&. F\(:ur diese werden richtige Protokoll\-Header verwendet, da manche Systeme sie sonst nicht versenden und weil Nmap bereits \(:uber die Funktionen verf\(:ugt, um sie zu erzeugen\&. Statt Nachrichten der Art ICMP Port unreachable sucht der Protokoll\-Scan nach ICMP
|
|
\fIProtocol\fR
|
|
unreachable\&. Falls Nmap zu irgendeinem Protokoll eine Antwort vom Zielhost erh\(:alt, markiert es das Protokoll als
|
|
offen\&. Bei einem ICMP Protocol\-unreachable\-Fehler (Typ 3, Code 2) wird das Protokoll als
|
|
geschlossen
|
|
markiert\&. Bei anderen ICMP Unreachable\-Fehlern (Typ 3, Code 1, 3, 9, 10 oder 13) wird das Protokoll als
|
|
gefiltert
|
|
markiert (auch wenn sie gleichzeitig beweisen, dass ICMP
|
|
offen
|
|
ist)\&. Falls nach einigen erneuten \(:Ubertragungen keine Antwort erhalten wird, wird das Protokoll als
|
|
offen|gefiltert
|
|
markiert\&.
|
|
.RE
|
|
.PP
|
|
\fB\-b \fR\fB\fIFTP relay host\fR\fR (FTP\-Bounce\-Scan) .\" -b .\" FTP-Bounce-Scan
|
|
.RS 4
|
|
Eine interessante Eigenschaft des FTP\-Protokolls (\m[blue]\fBRFC 959\fR\m[]\&\s-2\u[6]\d\s+2) ist dessen Unterst\(:utzung sogenannter Proxy\-FTP\-Verbindungen\&. Damit kann sich ein Benutzer mit einem FTP\-Server verbinden und dann verlangen, dass Dateien an einen Server einer dritten Partei gesendet werden\&. Solch eine Eigenschaft ist auf vielen Ebenen sturmreif f\(:ur Missbrauch, weswegen die meisten Server sie nicht mehr unterst\(:utzen\&. Ein solcher Missbrauch, den diese Eigenschaft erm\(:oglicht, ist, den FTP\-Server f\(:ur Port\-Scans anderer Hosts zu benutzen\&. Bitten Sie den FTP\-Server einfach, eine Datei nacheinander an alle interessanten Ports eines Zielhosts zu senden\&. Die Fehlermeldung wird beschreiben, ob der Port offen ist oder nicht\&. Das ist ein guter Weg, Firewalls zu umgehen, weil FTP\-Server von Organisationen oft an Orten platziert sind, von denen aus sie besseren Zugriff auf weitere interne Hosts haben, als es jeder alte Internet\-Host h\(:atte\&. Nmap unterst\(:utzt den FTP\-Bounce\-Scan mit der Option
|
|
\fB\-b\fR\&. Sie erwartet ein Argument der Form
|
|
\fIusername\fR:\fIpassword\fR@\fIserver\fR:\fIport\fR\&. Dabei ist
|
|
\fIServer\fR
|
|
der Name oder die IP\-Adresse eines anf\(:alligen FTP\-Servers\&. Wie bei einer normalen URL k\(:onnen Sie
|
|
\fIusername\fR:\fIpassword\fR
|
|
auch weglassen, wobei dann eine anonyme Anmeldung erfolgt (username:
|
|
anonymous
|
|
password:\-wwwuser@)\&. Die Portnummer (samt Doppelpunkt davor) k\(:onnen Sie ebenfalls weglassen, wobei dann auf
|
|
\fIserver\fR
|
|
der Standard\-FTP\-Port (21) benutzt wird\&.
|
|
.sp
|
|
Als Nmap 1997 ver\(:offentlicht wurde, war diese Schwachstelle weit verbreitet, wurde seitdem aber gr\(:o\(sstenteils behoben\&. Aber da es immer noch anf\(:allige Server gibt, lohnt sich ein Versuch, falls alles andere versagt\&. Wenn Sie eine Firewall umgehen m\(:ochten, scannen Sie das Zielnetzwerk nach einem offenen Port 21 (oder sogar nach beliebigen FTP\-Diensten, falls Sie alle Ports mit Versionserkennung scannen k\(:onnen), und probieren Sie dann f\(:ur jeden einen Bounce\-Scan aus\&. Nmap wird Ihnen sagen, ob der Host angreifbar ist oder nicht\&. Versuchen Sie lediglich, Ihre Spuren zu verwischen, dann brauchen Sie sich nicht (und tats\(:achlich sollten Sie das nicht einmal) auf Hosts im Zielnetzwerk zu beschr\(:anken\&. Bevor Sie anfangen, zuf\(:allige Internet\-Adressen nach anf\(:alligen FTP\-Servern zu scannen, bedenken Sie, dass Sysadmins keinen Gefallen daran finden werden, dass Sie ihre Server auf diese Weise missbrauchen\&.
|
|
.RE
|
|
.SH "PORT-ANGABE UND SCAN-REIHENFOLGE"
|
|
.\" Port-Angabe
|
|
.PP
|
|
Zus\(:atzlich zu all den bisher erl\(:auterten Scan\-Methoden bietet Nmap Optionen, mit denen man angibt, welche Ports gescannt werden und ob die Scan\-Reihenfolge randomisiert oder sequentiell ist\&. Nmap scannt standardm\(:a\(ssig f\(:ur jedes Protokoll die 1000 meistbenutzten Ports\&.
|
|
.\" vorgegebene Ports
|
|
.PP
|
|
\fB\-p \fR\fB\fIport ranges\fR\fR (scannt nur angegebene Ports) .\" -p
|
|
.RS 4
|
|
Diese Option gibt an, welche Ports Sie scannen m\(:ochten, und \(:uberschreibt die Voreinstellung\&. Einzelne Portnummern sind okay, ebenso wie mit einem Bindestrich getrennte Bereiche (z\&.B\&.
|
|
1\-1023)\&. Anfangs\- und/oder Endwerte eines Bereichs k\(:onnen weggelassen werden und werden von Nmap dann mit jeweils 1 bzw\&. 65535 ersetzt\&. So k\(:onnen Sie mit
|
|
\fB\-p\-\fR
|
|
alle Ports von 1 bis 65535 scannen\&. Es ist erlaubt, den Port Null.\" Port Null
|
|
zu scannen, wenn Sie ihn explizit angeben\&. Bei IP\-Protokoll\-Scans (\fB\-sO\fR) gibt diese Option die Protokollnummern an, die Sie scannen m\(:ochten (0\(en255)\&.
|
|
.sp
|
|
Wenn Sie sowohl TCP\- als auch UDP\-Ports scannen, k\(:onnen Sie ein bestimmtes Protokoll angeben, indem Sie den Portnummern ein
|
|
T:
|
|
bzw\&.
|
|
U:
|
|
voranstellen\&. Dieser Kennzeichner gilt so lange, bis Sie einen anderen angeben\&. Zum Beispiel werden bei dem Argument
|
|
\fB\-p U:53,111,137,T:21\-25,80,139,8080\fR
|
|
die UDP\-Ports 53, 111 und 137 sowie die angegebenen TCP\-Ports gescannt\&. Beachten Sie, dass Sie
|
|
\fB\-sU\fR
|
|
und mindestens einen TCP\-Scan\-Typ (z\&.B\&.
|
|
\fB\-sS\fR,
|
|
\fB\-sF\fR
|
|
oder
|
|
\fB\-sT\fR) angeben m\(:ussen, um sowohl UDP als auch TCP zu scannen\&. Falls kein Protokollkennzeichner angegeben ist, werden die Portnummern zu allen Protokolllisten hinzugef\(:ugt\&.
|
|
.\" Port-Angabe: Joker in
|
|
.\" Wildcards
|
|
Ports k\(:onnen auch mit dem Namen angegeben werden, der f\(:ur diesen Port in
|
|
nmap\-services
|
|
definiert ist\&. Sie k\(:onnen bei diesen Namen sogar die Joker * und ? verwenden\&. Um z\&.B\&. FTP und alle Ports zu scannen, deren Namen mit
|
|
\(Bqhttp\(lq
|
|
anfangen, benutzen Sie
|
|
\fB\-p ftp,http*\fR\&. Passen Sie auf eine eventuelle Erweiterung durch die Shell auf und setzen Sie das Argument von
|
|
\fB\-p\fR
|
|
in Anf\(:uhrungszeichen, wenn Sie unsicher sind\&.
|
|
.sp
|
|
Port\-Bereiche k\(:onnen in eckigen Klammern angegeben werden, um Ports innerhalb dieses Bereiches anzugeben, die in
|
|
nmap\-services
|
|
vorkommen\&. Zum Beispiel scannt Folgendes alle Ports in
|
|
nmap\-services
|
|
kleiner oder gleich 1024:
|
|
\fB\-p [\-1024]\fR\&. Passen Sie auf eine eventuelle Erweiterung durch die Shell auf und setzen Sie das Argument von
|
|
\fB\-p\fR
|
|
in Anf\(:uhrungszeichen, wenn Sie unsicher sind\&.
|
|
.RE
|
|
.PP
|
|
\fB\-F\fR (schneller (beschr\(:ankter Port\-) Scan) .\" -F .\" schneller Scan
|
|
.RS 4
|
|
Gibt an, dass Sie weniger Ports scannen m\(:ochten, als standardm\(:a\(ssig vorgesehen\&. Normalerweise scannt Nmap die 1000 am h\(:aufigsten vorkommenden Ports bei jedem gescannten Protokoll\&. Mit
|
|
\fB\-F\fR
|
|
werden diese auf 100 beschr\(:ankt\&.
|
|
.sp
|
|
Nmap ben\(:otigt die Datei
|
|
nmap\-services
|
|
mit Informationen zur H\(:aufigkeit, um zu wissen, welche Ports am h\(:aufigsten benutzt werden\&. Wenn keine Angaben \(:uber die Port\-H\(:aufigkeit verf\(:ugbar sind, vielleicht weil eine benutzerdefinierte
|
|
nmap\-services\-Datei verwendet wird, dann bedeutet
|
|
\fB\-F\fR, dass nur Ports gescannt werden, die in der Dienstedatei mit Namen vorkommen (normalerweise scannt Nmap alle benannten Ports plus die Ports 1\(en1024)\&.
|
|
.RE
|
|
.PP
|
|
\fB\-r\fR (Ports nicht randomisieren) .\" -r .\" Randomisierung von Ports
|
|
.RS 4
|
|
Standardm\(:a\(ssig randomisiert Nmap die Reihenfolge der gescannten Ports (bis auf einige allgemein zug\(:angliche Ports, die aus Effizienzgr\(:unden vorgezogen werden)\&. Diese Randomisierung ist normalerweise erw\(:unscht, aber Sie k\(:onnen stattdessen auch
|
|
\fB\-r\fR
|
|
f\(:ur einen sequentiellen Port\-Scan angeben\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-port\-ratio <decimal number between 0 and 1>\fR
|
|
.RS 4
|
|
.\" --port-ratio
|
|
Scannt alle Ports in der Datei
|
|
nmap\-services
|
|
mit einem gr\(:o\(sseren Bruchteil als die Zahl, die als Argument angegeben wird\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-top\-ports <integer of 1 or greater>\fR
|
|
.RS 4
|
|
.\" --top-ports
|
|
Scannt die N Ports mit dem h\(:ochsten Bruchteil in der Datei
|
|
nmap\-services\&.
|
|
.RE
|
|
.SH "DIENST- UND VERSIONSERKENNUNG"
|
|
.\" Versionserkennung
|
|
.PP
|
|
Lassen Sie Nmap auf einen entfernten Rechner los, und Sie erfahren z\&.B\&. dass die Ports
|
|
25/tcp,
|
|
80/tcp
|
|
und
|
|
53/udp
|
|
offen sind\&. Dank der \(:uber 2200 bekannten Dienste in seiner Datenbank in
|
|
nmap\-services.\" nmap-services
|
|
w\(:urde Nmap noch ausgeben, dass diese Ports wahrscheinlich jeweils zu einem Mailserver (SMTP), Webserver (HTTP) und Nameserver (DNS) geh\(:oren\&. Normalerweise sind diese Angaben genau \(em die \(:uberwiegende Mehrheit an Daemons, die den TCP\-Port 25 abh\(:oren, sind tats\(:achlich Mailserver\&. Allerdings sollten Sie nicht Ihre Sicherheit darauf verwetten! Manche Leute k\(:onnen nicht nur Dienste auf seltsamen Ports betreiben, sondern tun es auch\&..\" Nicht-Standard-Ports
|
|
.PP
|
|
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\&. Bei der Beurteilung der Angreifbarkeit (oder auch nur beim Erstellen einfacher Netzwerkinventare) Ihrer Firmen oder Kunden m\(:ochten Sie auch wissen, welche Mail\- und DNS\-Server und welche Versionen davon laufen\&. Eine genaue Versionsnummer hilft enorm bei der Bestimmung der Exploits, f\(:ur die ein Server anf\(:allig ist\&. Die Versionserkennung hilft Ihnen, an diese Information heranzukommen\&.
|
|
.PP
|
|
Nachdem TCP\- und/oder UDP\-Ports mit einer der anderen Scan\-Methoden entdeckt wurden, fragt die Versionserkennung diese Ports ab, um mehr dar\(:uber zu erfahren, was tats\(:achlich darauf l\(:auft\&. Die Datenbank in
|
|
nmap\-service\-probes.\" nmap-service-probes
|
|
enth\(:alt Testpakete f\(:ur die Abfrage verschiedenster Dienste und Ausdr\(:ucke f\(:ur 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\(:atetyp (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\&. Nat\(:urlich bieten die meisten Dienste nicht all diese Information\&. Falls Nmap mit OpenSSL\-Unterst\(:utzung kompiliert wurde, verbindet es sich mit SSL\-Servern, um den hinter dieser Verschl\(:usselungsebene.\" SSL: in Versionserkennung
|
|
lauschenden Dienst zu ermitteln\&. Wenn RPC\-Dienste erkannt werden, wird automatisch Nmaps RPC\-Holzhammer.\" RPC-Holzhammer
|
|
(\fB\-sR\fR).\" -sR
|
|
benutzt, um die RPC\-Programm\- und Versionsnummern zu bestimmen\&. Manche UDP\-Ports bleiben im Zustand
|
|
offen|gefiltert, nachdem ein UDP\-Port\-Scan nicht bestimmen konnte, ob der Port offen oder gefiltert ist\&. Die Versionserkennung versucht, diesen Ports eine Antwort zu entlocken (genauso wie bei offenen Ports) und den Zustand auf offen zu \(:andern, wenn das gelingt\&.
|
|
Offene|gefilterte
|
|
TCP\-Ports werden genauso behandelt\&. Beachten Sie, dass die Nmap\-Option
|
|
\fB\-A\fR
|
|
unter anderem auch die Versionserkennung einschaltet\&.
|
|
A paper documenting the workings, usage, and customization of version detection is available at \m[blue]\fB\%https://nmap.org/book/vscan.html\fR\m[]\&.
|
|
.PP
|
|
Wenn Nmap Antworten von einem Dienst erh\(:alt, aber keine \(:Ubereinstimmungen daf\(:ur in seiner Datenbank finden kann, gibt es einen speziellen Fingerprint und eine URL aus, damit Sie diese Antwort einsenden k\(:onnen, falls Sie genau wissen, was auf diesem Port l\(:auft\&. Bitte nehmen Sie sich ein paar Minuten Zeit, um sie einzusenden, damit Ihr Fund f\(:ur alle ein Gewinn sein kann\&. Dank dieser Beitr\(:age hat Nmap \(:uber 3000 Muster\(:ubereinstimmungen f\(:ur \(:uber 350 Protokolle wie SMTP, FTP, HTTP usw\&..\" Einsenden von Dienst-Fingerprints
|
|
.PP
|
|
Die Versionserkennung wird mit den folgenden Optionen aktiviert und gesteuert:
|
|
.PP
|
|
\fB\-sV\fR (Versionserkennung) .\" -sV
|
|
.RS 4
|
|
Aktiviert die Versionserkennung wie oben beschrieben\&. Alternativ dazu k\(:onnen Sie
|
|
\fB\-A\fR
|
|
benutzen, was unter anderem auch die Versionserkennung aktiviert\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-allports\fR (keine Ports von der Versionserkennung ausschlie\(ssen) .\" --allports
|
|
.RS 4
|
|
Standardm\(:a\(ssig schlie\(sst Nmaps Versionserkennung den TCP\-Port 9100 aus, weil manche Drucker einfach alles ausdrucken, was an diesen Port gesendet wird, was zu Dutzenden von Seiten mit HTTP\-GET\-Requests, bin\(:aren SSL\-Session\-Requests usw\&. f\(:uhren w\(:urde\&. Dieses Verhalten kann man \(:andern, indem man die
|
|
Exclude\-Anweisung in
|
|
nmap\-service\-probes
|
|
ver\(:andert oder entfernt, oder Sie geben
|
|
\fB\-\-allports\fR
|
|
an, um alle Port zu scannen, unabh\(:angig von einer
|
|
Exclude\-Anweisung\&.
|
|
.\" Exclude Anweisung (nmap-service-probes)
|
|
.RE
|
|
.PP
|
|
\fB\-\-version\-intensity \fR\fB\fIintensity\fR\fR (Intensit\(:at des Versions\-Scans setzen) .\" --version-intensity
|
|
.RS 4
|
|
Bei einem Versions\-Scan (\fB\-sV\fR) sendet Nmap eine Reihe von Testpaketen, die alle \(:uber einen zugeordneten Seltenheitswert zwischen eins und neun verf\(:ugen\&. Die Testpakete mit kleineren Werten sind bei einer gro\(ssen Zahl verbreiteter Dienste wirkungsvoll, w\(:ahrend die mit h\(:oheren Werten seltener n\(:utzlich sind\&. Die Intensit\(:atsstufe gibt an, welche Testpakete angewendet werden sollten\&. Je h\(:oher die Zahl, desto wahrscheinlicher wird der Dienst richtig identifiziert\&. Allerdings brauchen Scans mit hoher Intensit\(:at mehr Zeit\&. Diese Intensit\(:at muss zwischen 0 und 9 liegen\&.
|
|
.\" Versionserkennung: Intensit\(:at
|
|
Die Standardeinstellung ist 7\&.
|
|
.\" Versionserkennung: Standardintensit\(:at
|
|
Wenn ein Testpaket mit der
|
|
ports\-Anweisung in
|
|
nmap\-service\-probes
|
|
f\(:ur den Zielport registriert ist, wird dieses Testpaket ausprobiert, unabh\(:angig von der Intensit\(:atsstufe\&. Das garantiert, dass die DNS\-Testpakete bei jedem offenen Port 53 immer benutzt werden, das SSL\-Testpaket bei Port 443 usw\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-version\-light\fR (leichten Modus setzen) .\" --version-light
|
|
.RS 4
|
|
Das ist ein Alias f\(:ur
|
|
\fB\-\-version\-intensity 2\fR
|
|
aus Bequemlichkeitsgr\(:unden\&. Dieser leichte Modus macht die Versionserkennung wesentlich schneller, identifiziert die Dienste aber mit geringerer Wahrscheinlichkeit\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-version\-all\fR (benutze alle Testpakete) .\" --version-all
|
|
.RS 4
|
|
Das ist ein Alias f\(:ur
|
|
\fB\-\-version\-intensity 9\fR, der garantiert, dass jedes einzelne Testpaket bei jedem Port ausprobiert wird\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-version\-trace\fR (verfolge Aktivit\(:at des Versions\-Scans) .\" --version-trace
|
|
.RS 4
|
|
Das bewirkt, dass Nmap umfangreiche Debugging\-Information dar\(:uber ausgibt, was die Versionserkennung gerade macht\&. Das ist eine Untermenge dessen, was Sie mit
|
|
\fB\-\-packet\-trace\fR
|
|
erhalten\&.
|
|
.RE
|
|
.PP
|
|
\fB\-sR\fR (RPC\-Scan) .\" -sR .\" RPC scan .\" RPC-Holzhammer
|
|
.RS 4
|
|
Diese Methode funktioniert zusammen mit den verschiedenen Port\-Scan\-Methoden von Nmap\&. Sie nimmt alle offenen TCP\-/UDP\-Ports und \(:uberflutet sie mit NULL\-Befehlen f\(:ur das SunRPC\-Programm, in dem Versuch, festzustellen, ob es RPC\-Ports sind, und wenn ja, welches Programm und welche Versionsnummer darauf l\(:auft\&. Dadurch k\(:onnen Sie quasi dieselbe Information herausfinden wie mit
|
|
\fBrpcinfo \-p\fR, selbst wenn der Portmapper des Ziels hinter einer Firewall liegt (oder von TCP\-Wrappern gesch\(:utzt wird)\&. K\(:oder funktionieren im Moment nicht mit dem RPC\-Scan\&..\" K\(:oder: von Scans benutzte
|
|
Das wird automatisch als Teil einer Versionserkennung aktiviert (\fB\-sV\fR), wenn Sie diese verlangen\&. Da die Versionserkennung das enth\(:alt und wesentlich umfangreicher ist, wird
|
|
\fB\-sR\fR
|
|
selten ben\(:otigt\&.
|
|
.RE
|
|
.\"
|
|
.SH "BETRIEBSSYSTEM-ERKENNUNG"
|
|
.\" Betriebssystemerkennung
|
|
.PP
|
|
Eines der bekanntesten Merkmale von Nmap ist dessen Erkennung entfernter Betriebssysteme mit TCP/IP\-Stack\-Fingerprinting\&. Nmap sendet eine Reihe von TCP\- und UDP\-Paketen an den entfernten Host und untersucht praktisch jedes Bit in der Antwort\&. Nach der Durchf\(:uhrung Dutzender von Tests, wie z\&.B\&. einer TCP\-ISN\-Abtastung, Unterst\(:utzung und Reihenfolge von TCP\-Optionen, IP\-ID\-Abtastung und Pr\(:ufung der initialen Fenstergr\(:o\(sse, vergleicht Nmap die Ergebnisse mit seiner Datenbank in
|
|
nmap\-os\-db.\" nmap-os-db
|
|
von \(:uber eintausend bekannten Betriebssystem\-Fingerprints und gibt die Details zum Betriebssystem aus, wenn es eine \(:Ubereinstimmung gefunden hat\&. Jeder Fingerprint enth\(:alt eine formlose Beschreibung des Betriebssystems und eine Klassifikation, aus der der Herstellername (z\&.B\&. Sun), das eigentliche Betriebssystem (z\&.B\&. Solaris), dessen Generation (z\&.B\&. 10) und der Ger\(:atetyp (allgemein, Router, Switch, Spielkonsole usw\&.) hervorgeht\&.
|
|
.PP
|
|
Falls Nmap das Betriebssystem eines Rechner nicht erraten kann und die Umst\(:ande g\(:unstig sind (z\&.B\&. wenn mindestens ein offener und ein geschlossener Port gefunden wurde), pr\(:asentiert Nmap eine URL, unter der Sie den Fingerprint einsenden k\(:onnen, wenn Sie (ganz sicher) wissen, welches Betriebssystem auf dem Rechner l\(:auft\&. Dadurch erweitern Sie den Pool der Betriebssysteme, die Nmap kennt, wodurch es f\(:ur alle Benutzer genauer wird\&.
|
|
.PP
|
|
Die Betriebssystem\-Erkennung verwendet einige weitere Tests, die Informationen benutzen, die w\(:ahrend des Vorgangs ohnehin gesammelt werden\&. Eine davon ist die Klassifikation der Vorhersagbarkeit der TCP\-Sequenznummern\&. Sie gibt ungef\(:ahr an, wie schwer es ist, eine gef\(:alschte TCP\-Verbindung zum entfernten Host aufzubauen\&. Sie ist hilfreich zur Ausbeutung von Vertrauensbeziehungen auf Basis von Quell\-IPs (rlogin, Firewall\-Filter usw\&.) oder zum Verbergen des Ursprungs eines Angriffs\&. Diese Art von T\(:auschung wird kaum noch praktiziert, aber viele Rechner sind nach wie vor anf\(:allig daf\(:ur\&. Die eigentliche Ma\(sszahl basiert auf statistischen Abtastungen und kann schwanken\&. Im Allgemeinen ist es besser, die englische Bezeichnung wie z\&.B\&.
|
|
\(Bqworthy challenge\(lq
|
|
oder
|
|
\(Bqtrivial joke\(lq
|
|
zu benutzen\&. Das wird nur in der normalen Ausgabe im ausf\(:uhrlichen Modus (\fB\-v\fR) ausgegeben\&. Wenn dieser Modus zusammen mit
|
|
\fB\-O\fR
|
|
aktiviert ist, wird auch die IP\-ID\-Sequenzerzeugung berichtet\&. Die meisten Rechner finden sich in der Klasse
|
|
\(Bqincremental\(lq, d\&.h\&. sie inkrementieren das ID\-Feld im IP\-Header f\(:ur jedes von ihnen gesendete Paket\&. Dadurch werden sie anf\(:allig f\(:ur diverse avancierte Angriffe mittels T\(:auschung und Sammlung von Informationen\&.
|
|
.\" Betriebszeit-Sch\(:atzung
|
|
.PP
|
|
Eine weitere zus\(:atzliche Information, die die Betriebssystem\-Erkennung aktiviert, ist eine Sch\(:atzung der Betriebszeit des Zielhosts\&. Dabei wird die TCP\-Timestamp\-Option (\m[blue]\fBRFC 1323\fR\m[]\&\s-2\u[7]\d\s+2) benutzt, um zu raten, wann ein Rechner das letzte Mal neu gestartet wurde\&. Wenn der Timestamp\-Z\(:ahler nicht bei null gestartet wurde oder der Z\(:ahler \(:uberl\(:auft und wieder von vorn z\(:ahlt, kann diese Sch\(:atzung ungenau werden, weshalb sie nur im ausf\(:uhrlichen Modus ausgegeben wird\&.
|
|
.PP
|
|
A paper documenting the workings, usage, and customization of OS detection is available at \m[blue]\fB\%https://nmap.org/book/osdetect.html\fR\m[]\&.
|
|
.PP
|
|
Eingeschaltet und gesteuert wird die Betriebssystem\-Erkennung mit den folgenden Optionen:
|
|
.PP
|
|
\fB\-O\fR (Betriebssystem\-Erkennung aktivieren) .\" -O
|
|
.RS 4
|
|
Aktiviert die Betriebssystem\-Erkennung wie oben beschrieben\&. Alternativ dazu k\(:onnen Sie
|
|
\fB\-A\fR
|
|
benutzen, um eine Betriebssystem\-Erkennung zusammen mit anderen Dingen einzuschalten\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-osscan\-limit\fR (Betriebssystem\-Erkennung auf vielversprechende Ziele beschr\(:anken) .\" --osscan-limit
|
|
.RS 4
|
|
Die Betriebssystem\-Erkennung ist wesentlich effektiver, wenn mindestens ein offener und ein geschlossener TCP\-Port gefunden werden\&. Wenn Sie diese Option angeben, versucht Nmap eine Betriebssystem\-Erkennung gar nicht erst bei Hosts, die dieses Kriterium nicht erf\(:ullen\&. Das kann viel Zeit sparen, besonders bei Scans mit
|
|
\fB\-PN\fR
|
|
auf vielen Hosts\&. Diese Option gilt nur, wenn eine Betriebssystem\-Erkennung mit
|
|
\fB\-O\fR
|
|
oder
|
|
\fB\-A\fR
|
|
verlangt wird\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-osscan\-guess\fR; \fB\-\-fuzzy\fR (Ergebnisse der Betriebssystem\-Erkennung raten) .\" --osscan-guess .\" --fuzzy
|
|
.RS 4
|
|
Falls Nmap keine perfekte \(:Ubereinstimmung mit einem Betriebssystem finden kann, pr\(:asentiert es manchmal m\(:ogliche Kandidaten, die dem sehr nahe kommen\&. Damit Nmap das standardm\(:a\(ssig macht, muss die \(:Ubereinstimmung sehr hoch sein\&. Diese beiden (\(:aquivalenten) Optionen lassen Nmap aggressiver sch\(:atzen\&. Dann gibt Nmap auch unvollkommene \(:Ubereinstimmungen aus, zusammen mit einem Vertrauensgrad (in Prozent)\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-max\-os\-tries\fR (setzt die maximale Anzahl der Versuche f\(:ur eine Betriebssystem\-Erkennung bei einem Ziel) .\" --max-os-tries
|
|
.RS 4
|
|
Wenn Nmap eine Betriebssystem\-Erkennung auf einem Ziel durchf\(:uhrt und daf\(:ur keine perfekte \(:Ubereinstimmung findet, macht es normalerweise einen weiteren Versuch\&. Standardm\(:a\(ssig macht Nmap f\(:unf Versuche, wenn die Bedingungen zum Einsenden eines Betriebssystem\-Fingerprints g\(:unstig sind, und zwei, wenn sie es nicht sind\&. Die Angabe eines kleineren Wertes f\(:ur
|
|
\fB\-\-max\-os\-tries\fR
|
|
(z\&.B\&. 1) beschleunigt Nmap, auch wenn Sie Versuche auslassen, bei denen das Betriebssystem m\(:oglicherweise erkannt werden k\(:onnte\&. Alternativ dazu kann ein hoher Wert gesetzt werden, um bei g\(:unstigen Bedinungen noch mehr Versuche zu erlauben\&. Das macht man aber selten, au\(sser um bessere Fingerprints zu erzeugen, die man einsenden kann, um sie in Nmaps Betriebssystem\-Datenbank zu integrieren\&.
|
|
.RE
|
|
.\"
|
|
.SH "NMAP SCRIPTING ENGINE (NSE)"
|
|
.\" Nmap Scripting Engine (NSE)
|
|
.PP
|
|
Die Nmap Scripting Engine (NSE) ist eines der m\(:achtigsten und flexibelsten Merkmale von Nmap\&. Mit ihr k\(:onnen Benutzer einfache Scripts schreiben und weitergeben (geschrieben in der
|
|
\m[blue]\fBProgrammiersprache Lua\fR\m[]\&\s-2\u[8]\d\s+2.\" Programmiersprache Lua), um eine breite Palette von Netzwerkaufgaben zu automatisieren\&. Diese Scripts werden dann parallel mit der Geschwindigkeit und Effizienz abgearbeitet, die Sie von Nmap erwarten\&. Als Benutzer k\(:onnen Sie auf eine wachsende und vielf\(:altige Menge von Scripts vertrauen, die mit Nmap ver\(:offentlicht werden, oder eigene Scripts f\(:ur eigene Bed\(:urfnisse schreiben\&.
|
|
.PP
|
|
Zu den Aufgaben, die wir bei der Konzeption dieses Systems anvisierten, geh\(:oren die Netzwerkerkennung, eine ausgefeiltere Versionserkennung sowie eine Verwundbarkeitserkennung\&. NSE kann aber sogar bei der Ausbeutung von Schwachstellen benutzt werden\&.
|
|
.PP
|
|
Um diese verschiedenen Anwendungen widerzuspiegeln und um die Auswahl des richtigen Scripts zu vereinfachen, verf\(:ugen alle Scripts \(:uber ein Kategorie\-Feld\&. Im Moment sind folgende Kategorien definiert:
|
|
safe,
|
|
intrusive,
|
|
malware,
|
|
version,
|
|
discovery,
|
|
vuln,
|
|
auth
|
|
und
|
|
default\&. Sie alle werden
|
|
at \m[blue]\fB\%https://nmap.org/book/nse-usage.html#nse-categories\fR\m[]\&.
|
|
.PP
|
|
Die Nmap Scripting Engine wird detailliert
|
|
at \m[blue]\fB\%https://nmap.org/book/nse.html\fR\m[]
|
|
beschrieben und wird mit den folgenden Optionen gesteuert:
|
|
.PP
|
|
\fB\-sC\fR .\" -sC
|
|
.RS 4
|
|
F\(:uhrt einen Script\-Scan mit dem Standardsatz an Scripts durch\&. Das ist \(:aquivalent zu
|
|
\fB\-\-script=default\fR\&. Manche der Scripts in dieser Kategorie werden als aufdringlich betrachtet und sollten nicht ohne Genehmigung auf einem Zielnetzwerk ausgef\(:uhrt werden\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-script \fR\fB\fIscript\-categories\fR\fR\fB|\fR\fB\fIdirectory\fR\fR\fB|\fR\fB\fIfilename\fR\fR\fB|all\fR.\" --script
|
|
.RS 4
|
|
F\(:uhrt einen Script\-Scan (wie z\&.B\&.
|
|
\fB\-sC\fR) durch und benutzt dabei die mit Kommata getrennte Liste von Script\-Kategorien, individuellen Scripts oder Script\-Verzeichnissen statt des Standardsatzes\&. Zuerst versucht Nmap, die Argumente als Kategorien zu interpretieren, dann (wenn das nicht gelingt) als Datei\- oder Verzeichnisnamen\&. Ein Script oder Verzeichnis von Scripts kann als absoluter oder relativer Pfad angegeben werden\&. Absolute Pfade werden unver\(:andert benutzt\&. Relative Pfade werden an den folgenden Orten gesucht, bis sie gefunden werden:.\" Datendateien: Verzeichnis-Suchreihenfolge.\" Scripts, Orte\-\-datadir/;
|
|
$NMAPDIR/;.\" NMAPDIR Umgebungsvariable~/\&.nmap/
|
|
(wird unter Windows nicht durchsucht);.\" .nmap VerzeichnisNMAPDATADIR/ oder.\" NMAPDATADIR\&./\&. In all diesen Verzeichnissen wird au\(sserdem auch ein
|
|
scripts/\-Unterverzeichnis ausprobiert\&.
|
|
.sp
|
|
Falls ein Verzeichnis angegeben und gefunden wird, l\(:adt Nmap alle NSE\-Scripts (alle Dateinamen, die mit
|
|
\&.nse
|
|
enden) aus diesem Verzeichnis\&. Dateinamen ohne die Endung
|
|
nse
|
|
werden ignoriert\&. Nmap sucht keine Unterverzeichnisse rekursiv durch, um Scripts zu finden\&. Wenn individuelle Dateinamen angegeben werden, dann muss deren Dateierweiterung nicht
|
|
nse
|
|
lauten\&.
|
|
.sp
|
|
Nmap\-Scripts werden standardm\(:a\(ssig in einem
|
|
scripts\-Unterverzeichnis des Nmap\-Datenverzeichnisses gespeichert
|
|
(see \m[blue]\fB\%https://nmap.org/book/data-files.html\fR\m[])\&.
|
|
Aus Effizienzgr\(:unden werden Scripts in einer Datenbank indiziert, die in
|
|
scripts/script\&.db\&..\" script.db
|
|
gespeichert ist und f\(:ur jedes Script auflistet, in welche Kategorie bzw\&. Kategorien es geh\(:ort\&. Um alle Scripts in der Nmap\-Script\-Datenbank auszuf\(:uhren, geben Sie das Argument
|
|
all
|
|
an\&.
|
|
.sp
|
|
Die Scripts werden nicht in einer Sandbox ausgef\(:uhrt und k\(:onnen Ihr System somit versehentlich oder b\(:oswillig besch\(:adigen oder in Ihre Privatsph\(:are eindringen\&. Sie sollten Scripts von Dritten nur dann ausf\(:uhren, wenn Sie deren Autoren vertrauen oder sie selbst eingehend studiert haben\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-script\-args \fR\fB\fIname1\fR\fR\fB=\fR\fB\fIvalue1\fR\fR\fB,\fR\fB\fIname2\fR\fR\fB={\fR\fB\fIname3\fR\fR\fB=\fR\fB\fIvalue3\fR\fR\fB},\fR\fB\fIname4\fR\fR\fB=\fR\fB\fIvalue4\fR\fR .\" --script-args .\" Script-Argumente
|
|
.RS 4
|
|
Hiermit k\(:onnen Sie Argumente f\(:ur NSE\-Scripts angeben\&. Argumente werden als
|
|
name=value\-Paare angegeben\&. Die Argumente werden verarbeitet und in einer Lua\-Tabelle gespeichert, auf die alle Scripts Zugriff haben\&. Die Namen werden als Strings (die alphanumerische Werte sein m\(:ussen) in
|
|
argument\-table
|
|
als Schl\(:ussel gespeichert\&. Die Werte sind ihrerseits entweder Strings oder Tabellen (innerhalb von \(oq{\(cq und \(oq}\(cq)\&. Sie k\(:onnten z\&.B\&. diese mit Kommmata getrennten Argumente angeben:
|
|
user=bar,pass=foo,whois={whodb=nofollow+ripe}\&. String\-Argumente werden potenziell von mehreren Scripts benutzt, w\(:ahrend Untertabellen normalerweise nur von einem Script benutzt werden\&. In Scripts, die eine Untertabelle annehmen, wird diese Untertabelle normalerweise nach dem Script benannt (in diesem Fall z\&.B\&.
|
|
whois)\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-script\-trace\fR .\" --script-trace
|
|
.RS 4
|
|
Diese Option macht das, was
|
|
\fB\-\-packet\-trace\fR
|
|
macht, aber eine ISO\-Ebene h\(:oher\&. Wenn diese Option angegeben wird, wird die gesamte ein\- und ausgehende Kommunikation von Scripts ausgegeben\&. Die angezeigte Information enth\(:alt das Kommunikationsprotokoll, Quell\- und Zieladressen sowie die \(:ubertragenen Daten\&. Falls mehr als f\(:unf Prozent der \(:ubertragenen Daten nicht druckbar sind, werden sie stattdessen als Hexadezimal\-Auszug ausgegeben\&. Auch die Angabe von
|
|
\fB\-\-packet\-trace\fR
|
|
schaltet diese Mitverfolgung von Scripts ein\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-script\-updatedb\fR .\" --script-updatedb
|
|
.RS 4
|
|
Diese Option aktualisiert die Script\-Datenbank in
|
|
scripts/script\&.db, die von Nmap benutzt wird, um die verf\(:ugbaren Standard\-Scripts und Kategorien zu bestimmen\&. Man muss die Datenbank nur dann aktualisieren, wenn man NSE\-Scripts in das Standardverzeichnis
|
|
scripts
|
|
hinzuf\(:ugt oder von dort entfernt, oder wenn man die Kategorie eines Scripts \(:andert\&. Diese Option wird ohne Argumente benutzt:
|
|
\fBnmap \-\-script\-updatedb\fR\&.
|
|
.RE
|
|
.\"
|
|
.SH "TIMING UND PERFORMANCE"
|
|
.\" Timing
|
|
.\" Performance
|
|
.PP
|
|
Bei der Entwicklung von Nmap hatte dessen Performance immer eine der h\(:ochsten Priorit\(:aten\&. Ein Standardscan (\fBnmap \fR\fB\fIhostname\fR\fR) eines Hosts in meinem lokalen Netzwerk dauert eine F\(:unftelsekunde\&. In dieser Zeit kann man kaum blinzeln, aber wenn man Hunderte oder Tausende von Rechnern scannt, dann kommt einiges zusammen\&. Au\(sserdem k\(:onnen bestimmte Scan\-Optionen wie UDP\-Scanning und eine Versionserkennung die Scan\-Zeiten erheblich erh\(:ohen\&. Das Gleiche gilt f\(:ur bestimmte Firewall\-Konfigurationen und besonders f\(:ur die Beschr\(:ankung der Antwortrate\&. Auch wenn Nmap parallel arbeitet und viele ausgefeilte Algorithmen benutzt, um diese Scans zu beschleunigen, hat doch der Benutzer die letzte Kontrolle dar\(:uber, was Nmap genau macht\&. Experten erstellen ihre Nmap\-Befehle sehr sorgf\(:altig, um in einer beschr\(:ankten Zeit genau die gew\(:unschte Information zu bekommen\&.
|
|
.PP
|
|
Um die Scan\-Zeiten zu verbessern, kann man z\&.B\&. nicht\-kritische Tests weglassen und auf die neueste Version von Nmap aktualisieren (Performance\-Verbesserungen werden h\(:aufig gemacht)\&. Auch die Optimierung von Timing\-Parametern kann einen gro\(ssen Unterschied ausmachen\&. Diese Optionen werden im Folgenden beschrieben\&.
|
|
.PP
|
|
Manche Optionen erwarten einen
|
|
time\-Parameter\&. Dieser wird standardm\(:a\(ssig in Millisekunden angegeben, aber Sie k\(:onnen \(oqs\(cq, \(oqm\(cq oder \(oqh\(cq an den Wert anh\(:angen, um Sekunden, Minuten oder Stunden anzugeben\&. Das hei\(sst, bei
|
|
\fB\-\-host\-timeout\fR
|
|
haben die Argumente
|
|
900000,
|
|
900s
|
|
und
|
|
15m
|
|
alle denselben Effekt\&.
|
|
.PP
|
|
\fB\-\-min\-hostgroup \fR\fB\fInumhosts\fR\fR; \fB\-\-max\-hostgroup \fR\fB\fInumhosts\fR\fR (Gr\(:o\(sse der parallel gescannten Gruppen anpassen) .\" --min-hostgroup .\" --max-hostgroup
|
|
.RS 4
|
|
Nmap hat die F\(:ahigkeit, Port\-Scans oder Versions\-Scans von mehreren Hosts parallel durchzuf\(:uhren\&. Das macht Nmap, indem es den Ziel\-IP\-Adressraum in Gruppen aufteilt und dann jeweils eine Gruppe scannt\&. Im Allgemeinen sind gr\(:o\(ssere Gruppen effizienter\&. Der Nachteil daran ist, dass die Host\-Ergebnisse erst dann ausgegeben werden k\(:onnen, wenn die gesamte Gruppe fertig ist\&. Wenn Nmap mit einer Gruppengr\(:o\(sse von 50 anf\(:angt, w\(:urde der Benutzer erst dann Ergebnisse sehen (bis auf die Aktualisierungen im ausf\(:uhrlichen Modus), wenn die ersten 50 Hosts abgearbeitet sind\&.
|
|
.sp
|
|
Diesen Konflikt l\(:ost Nmap standardm\(:a\(ssig mit einem Kompromissansatz\&. Es f\(:angt mit einer kleinen Gruppengr\(:o\(sse von etwa f\(:unf an, damit die ersten Ergebnisse schnell kommen, und erh\(:oht dann die Gruppengr\(:o\(sse bis auf etwa 1024\&. Die genau vorgegebenen Zahlen h\(:angen von den benutzten Optionen ab\&. Aus Effizienzgr\(:unden benutzt Nmap gr\(:o\(ssere Gruppen bei UDP\-Scans oder bei TCP\-Scans \(:uber wenige Ports\&.
|
|
.sp
|
|
Falls mit
|
|
\fB\-\-max\-hostgroup\fR
|
|
eine maximale Gruppengr\(:o\(sse angegeben wird, wird Nmap diese nie \(:uberschreiten\&. Und wenn Sie mit
|
|
\fB\-\-min\-hostgroup\fR
|
|
eine minimale Gr\(:o\(sse angeben, versucht Nmap, die Gruppengr\(:o\(sse oberhalb dieses Wertes zu belassen\&. Falls es auf einer gegebenen Schnittstelle nicht genug Zielhosts gibt, um dieses Minimum zu erf\(:ullen, muss Nmap einen kleineren Wert benutzen\&. Es k\(:onnen auch beide gesetzt werden, um die Gruppengr\(:o\(sse in einem bestimmten Bereich zu belassen, aber das ist selten gew\(:unscht\&.
|
|
.sp
|
|
Diese Optionen haben w\(:ahrend der Host\-Entdeckungsphase eines Scans keinen Effekt\&. Dazu geh\(:oren einfache Ping\-Scans (\fB\-sP\fR)\&. Die Host\-Entdeckung funktioniert immer in gro\(ssen Gruppen von Hosts, um die Geschwindigkeit und Genauigkeit zu verbessern\&.
|
|
.sp
|
|
Der Hauptnutzen dieser Optionen liegt darin, eine hohe minimale Gruppengr\(:o\(sse anzugeben, damit der gesamte Scan schneller l\(:auft\&. H\(:aufig wird 256 gew\(:ahlt, um ein Netzwerk in Brocken der Gr\(:o\(sse von Klasse C zu scannen\&. Bei einem Scan mit vielen Ports bringt eine gr\(:o\(ssere Zahl vermutlich keine Vorteile\&. Bei Scans \(:uber nur wenige Ports k\(:onnen Gruppengr\(:o\(ssen von 2048 oder mehr hilfreich sein\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-min\-parallelism \fR\fB\fInumprobes\fR\fR; \fB\-\-max\-parallelism \fR\fB\fInumprobes\fR\fR (Parallelit\(:at von Testpaketen anpassen) .\" --min-parallelism .\" --max-parallelism
|
|
.RS 4
|
|
Diese Optionen steuern die Gesamtanzahl an Testpaketen, die f\(:ur eine Host\-Gruppe anstehen d\(:urfen\&. Sie werden beim Port\-Scanning und bei der Host\-Entdeckung benutzt\&. Abh\(:angig von der Netzwerk\-Performance berechnet Nmap standardm\(:a\(ssig eine immer wechselnde ideale Parallelit\(:at\&. Falls Pakete verworfen werden, verlangsamt sich Nmap und erlaubt weniger unerledigte Testpakete\&. Die ideale Anzahl von Testpaketen steigt mit den zunehmenden M\(:oglichkeiten des Netzwerks\&. Diese Optionen setzen minimale oder maximale Schranken f\(:ur diese Variable\&. Standardm\(:a\(ssig kann die ideale Parallelit\(:at auf eins sinken, wenn sich das Netzwerk als unzuverl\(:assig herausstellt, und im Idealfall kann sie auf mehrere hundert steigen\&.
|
|
.sp
|
|
Meistens setzt man
|
|
\fB\-\-min\-parallelism\fR
|
|
auf eine Zahl gr\(:o\(sser als eins, um Scans von langsamen Hosts oder Netzwerken zu beschleunigen\&. Aber das Spielen mit dieser Option kann gef\(:ahrlich sein, weil die Genaugkeit leiden kann, wenn man einen zu gro\(ssen Wert setzt\&. Dabei verringert sich auch Nmaps M\(:oglichkeit, die Parallelit\(:at je nach Netzwerkbedingungen dynamisch anzupassen\&. Ein Wert von zehn mag vern\(:unftig sein, auch wenn ich nur als letzter Ausweg an diesem Wert drehe\&.
|
|
.sp
|
|
Die Option
|
|
\fB\-\-max\-parallelism\fR
|
|
wird manchmal auf eins gesetzt, um zu verhindern, dass Nmap mehr als ein Testpaket auf einmal an Hosts sendet\&. In Kombination mit
|
|
\fB\-\-scan\-delay\fR
|
|
(wird sp\(:ater behandelt) kann das n\(:utzlich sein, auch wenn Letzteres diesen Zweck gut genug allein erf\(:ullt\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-min\-rtt\-timeout \fR\fB\fItime\fR\fR, \fB\-\-max\-rtt\-timeout \fR\fB\fItime\fR\fR, \fB\-\-initial\-rtt\-timeout \fR\fB\fItime\fR\fR (Timeouts von Testpaketen anpassen) .\" --min-rtt-timeout .\" --max-rtt-timeout .\" --initial-rtt-timeout
|
|
.RS 4
|
|
Nmap verwaltet einen laufenden Timeout\-Wert, der bestimmt, wie lange es auf eine Antwort zu einem Testpaket wartet, bevor es aufgibt oder das Paket erneut sendet\&. Dieser wird auf der Grundlage der Antwortzeiten bei fr\(:uheren Testpaketen berechnet\&.
|
|
|
|
Falls die Netzwerk\-Latenzzeit sich als gro\(ss genug und variabel erweist, kann dieser Timeout bis auf mehrere Sekunden wachsen\&. Er beginnt auch bei einem konservativen (hohen) Wert und kann diesen eine Weile behalten, wenn Nmap Hosts scannt, die nicht antworten\&.
|
|
.sp
|
|
Werden Werte f\(:ur
|
|
\fB\-\-max\-rtt\-timeout\fR
|
|
und
|
|
\fB\-\-initial\-rtt\-timeout\fR
|
|
angegeben, die kleiner als deren Standardwerte sind, so kann die Scan\-Zeit erheblich verk\(:urzt werden\&. Das gilt besonders f\(:ur pinglose (\fB\-PN\fR) Scans und solche von stark gefilterten Netzwerken\&. Aber verlangen Sie nicht zu viel\&. Der Scan kann am Ende l\(:anger brauchen, wenn Sie einen so kleinen Wert angeben, dass bei vielen Testpaketen der Timeout erreicht wird und sie erneut gesendet werden, w\(:ahrend die Antwort unterwegs ist\&.
|
|
.sp
|
|
Falls alle Hosts in einem lokalen Netzwerk sind, sind 100 Millisekunden ein vern\(:unftig aggressiver Wert f\(:ur
|
|
\fB\-\-max\-rtt\-timeout\fR\&. Falls ein Routing ins Spiel kommt, pingen Sie zuerst einen Host im Netzwerk, sei es mit einem ICMP\-Ping oder mit einem Programm zur Erstellung benutzerdefinierter Pakete wie
|
|
\fBhping2\fR,.\" hping2
|
|
das eine h\(:ohere Chance hat, durch eine Firewall zu kommen\&. Betrachten Sie dann die maximale Umlaufzeit bei circa zehn Paketen\&. Diese m\(:ochten Sie vielleicht f\(:ur
|
|
\fB\-\-initial\-rtt\-timeout\fR
|
|
verdoppeln und f\(:ur
|
|
\fB\-\-max\-rtt\-timeout\fR
|
|
verdrei\- oder vervierfachen\&. Im Allgemeinen setze ich die maximale RTT nicht unter 100\ \&ms, egal, welche Ping\-Zeiten ich habe\&. Und ich gehe auch nicht \(:uber 1000\ \&ms\&.
|
|
.sp
|
|
Die Option
|
|
\fB\-\-min\-rtt\-timeout\fR
|
|
wird selten benutzt, k\(:onnte aber n\(:utzlich sein, wenn ein Netzwerk so unzuverl\(:assig ist, dass selbst Nmaps Standardeinstellung zu aggressiv ist\&. Da Nmap das Timeout nur dann auf das Minimum reduziert, wenn das Netzwerk zuverl\(:assig scheint, sollte ein Bedarf hierf\(:ur eher ungew\(:ohnlich sein und sollte als Fehler auf der
|
|
nmap\-dev\-Mailingliste.\" nmap-dev Mailingliste
|
|
berichtet werden\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-max\-retries \fR\fB\fInumtries\fR\fR (gibt die maximale Anzahl erneuter Sendeversuche bei Port\-Scan\-Testpaketen an) .\" --max-retries
|
|
.RS 4
|
|
Falls Nmap keine Antwort auf ein Testpaket eines Port\-Scans erh\(:alt, k\(:onnte das hei\(ssen, dass der Port gefiltert ist\&. Oder aber das Testpaket oder die Antwort darauf ging im Netzwerk verloren\&. Es ist auch m\(:oglich, dass der Zielhost eine Ratenbeschr\(:ankung aktiviert hat, die die Antwort tempor\(:ar blockiert hat\&. Also versucht es Nmap erneut, indem es das urspr\(:ungliche Paket noch einmal sendet\&. Falls Nmap eine mangelnde Netzwerkzuverl\(:assigkeit feststellt, f\(:uhrt es eventuell viele weitere Wiederholungen durch, bevor es bei einem Port aufgibt\&. Das verbessert zwar die Genauigkeit, verl\(:angert aber auch die Scan\-Zeiten\&. Wenn es auf die Performance ankommt, kann man die Scans durch eine Beschr\(:ankung der Anzahl dieser Wiederholungen beschleunigen\&. Sie k\(:onnen sogar
|
|
\fB\-\-max\-retries 0\fR
|
|
angeben, um sie ganz zu verbieten, auch wenn sich das nur in Situationen wie formlosen \(:Uberpr\(:ufungen empfiehlt, bei denen einige verpasste Ports oder Hosts nicht so wichtig sind\&.
|
|
.sp
|
|
Der Standardwert (ohne
|
|
\fB\-T\fR\-Template) sind bis zu zehn Wiederholungen\&. Falls das Netzwerk zuverl\(:assig zu sein scheint und die Zielhosts keine Ratenbeschr\(:ankung haben, f\(:uhrt Nmap normalerweise nur eine Wiederholung durch\&. Daher sind die meisten Scans gar nicht betroffen, wenn man
|
|
\fB\-\-max\-retries\fR
|
|
z\&.B\&. auf den kleinen Wert drei verringert\&. Solche Werte k\(:onnen Scans von langsamen (ratenbeschr\(:ankten) Hosts aber erheblich beschleunigen\&. Wenn Nmap fr\(:uhzeitig bei Ports aufgibt, verlieren Sie eventuell einiges an Information, aber das kann vorteilhafter sein, als ein Timeout von
|
|
\fB\-\-host\-timeout\fR
|
|
zu erreichen und alle Informationen \(:uber das Ziel zu verlieren\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-host\-timeout \fR\fB\fItime\fR\fR (bei langsamen Zielhosts aufgeben) .\" --host-timeout
|
|
.RS 4
|
|
Bei manchen Hosts braucht es einfach
|
|
\fIlange\fR, sie zu scannen\&. Das kann an leistungsschwacher oder unzuverl\(:assiger Netzwerk\-Hardware oder \-Software, an einer Paketratenbeschr\(:ankung oder einer restriktiven Firewall liegen\&. Die langsamsten paar Prozent der gescannten Hosts k\(:onnen einen Gro\(ssteil der Scan\-Zeit verbrauchen\&. Dann ist es manchmal das Beste, die Verluste abzuschneiden und diese Hosts erst einmal wegzulassen\&. Geben Sie
|
|
\fB\-\-host\-timeout\fR
|
|
mit der gew\(:unschten maximalen Wartezeit an\&. Sie k\(:onnen z\&.B\&.
|
|
30m
|
|
angeben, um sicherzustellen, dass Nmap nicht mehr als eine halbe Stunde verschwendet, indem es auf einen einzelnen Host wartet\&. Beachten Sie, dass Nmap w\(:ahrend dieser halben Stunde auch andere Hosts scannen kann, d\&.h\&. es ist keine komplette Zeitverschwendung\&. Ein Host, der das Timeout erreicht, wird \(:ubersprungen\&. F\(:ur diesen Host werden keine Ergebnisse der Port\-Tabelle, Betriebssystem\- oder Versionserkennung ausgegeben\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-scan\-delay \fR\fB\fItime\fR\fR; \fB\-\-max\-scan\-delay \fR\fB\fItime\fR\fR (Verz\(:ogerung zwischen Testpaketen anpassen) .\" --scan-delay .\" --max-scan-delay
|
|
.RS 4
|
|
Diese Option bewirkt, dass Nmap mindestens die angegebene Zeit zwischen zwei Testpaketen an einen Host wartet\&. Das ist besonders bei einer Ratenbeschr\(:ankung.\" Ratenbeschr\(:ankung
|
|
sinnvoll\&. Solaris\-Rechner (und viele andere auch) antworten auf UDP\-Scan\-Testpakete normalerweise nur mit einer ICMP\-Nachricht pro Sekunde\&. Wenn Nmap mehr sendet, ist das Verschwendung\&. Mit einem
|
|
\fB\-\-scan\-delay\fR
|
|
von
|
|
1s
|
|
bleibt Nmap bei dieser langsamen Rate\&. Nmap versucht eine Ratenbeschr\(:ankung zu erkennen und die Scan\-Verz\(:ogerung entsprechend anzupassen, aber es schadet nicht, sie explizit anzugeben, falls Sie schon wissen, welche Rate am besten funktioniert\&.
|
|
.sp
|
|
Wenn Nmap die Scan\-Verz\(:ogerung nach oben anpasst, um mit der Ratenbeschr\(:ankung klarzukommen, verlangsamt sich der Scan dramatisch\&. Die Option
|
|
\fB\-\-max\-scan\-delay\fR
|
|
gibt die gr\(:o\(sste Verz\(:ogerung an, die Nmap erlaubt\&. Ein kleiner Wert f\(:ur
|
|
\fB\-\-max\-scan\-delay\fR
|
|
kann Nmap beschleunigen, ist aber riskant\&. Ein zu kleiner Wert kann zu verschwenderischen wiederholten Sendungen f\(:uhren und m\(:oglicherweise zu verpassten Ports, wenn das Ziel eine strenge Ratenbeschr\(:ankung implementiert\&.
|
|
.sp
|
|
Ein weiterer Einsatz von
|
|
\fB\-\-scan\-delay\fR
|
|
liegt bei der Umgehung schwellwertbasierter Intrusion\-Detection\- und \-Prevention\-Systeme (IDS/IPS)\&..\" intrusion detection systems: evading
|
|
.RE
|
|
.PP
|
|
\fB\-\-min\-rate \fR\fB\fInumber\fR\fR; \fB\-\-max\-rate \fR\fB\fInumber\fR\fR (direkte Steuerung der Scan\-Rate) .\" --min-rate .\" --max-rate
|
|
.RS 4
|
|
Nmaps dynamisches Timing findet sehr gut die passende Scan\-Geschwindigkeit\&. Aber manchmal kennen Sie vielleicht die passende Scan\-Rate f\(:ur ein Netzwerk, oder vielleicht m\(:ussen Sie garantieren, dass ein Scan bis zu einem bestimmten Zeitpunkt fertig wird\&. Oder Sie m\(:ussen Nmap vielleicht davon abhalten, zu schnell zu scannen\&. F\(:ur diese Situationen sind die Optionen
|
|
\fB\-\-min\-rate\fR
|
|
und
|
|
\fB\-\-max\-rate\fR
|
|
vorgesehen\&.
|
|
.sp
|
|
Bei der Option
|
|
\fB\-\-min\-rate\fR
|
|
versucht Nmap sein Bestes, um Pakete so schnell wie die damit angegebene Rate zu senden oder noch schneller\&. Das Argument ist eine positive Fie\(sskommazahl, die die Paketrate in Paketen pro Sekunde angibt\&. Die Angabe
|
|
\fB\-\-min\-rate 300\fR
|
|
bedeutet z\&.B\&., dass Nmap eine Rate von 300 Paketen pro Sekunde oder h\(:oher einzuhalten versucht\&. Die Angabe einer Minimalrate h\(:alt Nmap nicht davon ab, bei g\(:unstigen Bedingungen schneller zu werden\&.
|
|
.sp
|
|
Umgekehrt beschr\(:ankt
|
|
\fB\-\-max\-rate\fR
|
|
die Senderate auf das angegebene Maximum\&. Bei
|
|
\fB\-\-max\-rate 100\fR
|
|
wird sie auf 100 Pakete pro Sekunde bei einem schnellen Netzwerk beschr\(:ankt\&. Und bei
|
|
\fB\-\-max\-rate 0\&.1\fR
|
|
wird der Scan auf ein Paket pro zehn Sekunden verlangsamt\&. Mit
|
|
\fB\-\-min\-rate\fR
|
|
und
|
|
\fB\-\-max\-rate\fR
|
|
gleichzeitig k\(:onnen Sie die Rate in einem bestimmten Bereich halten\&.
|
|
.sp
|
|
Diese beiden Optionen sind global und betreffen den gesamten Scan, nicht nur einzelne Hosts\&. Sie betreffen nur Port\-Scans und Host\-Entdeckungs\-Scans\&. Andere Merkmale wie die Betriebssystemerkennung implementieren ihr eigenes Timing\&.
|
|
.sp
|
|
Unter zwei Bedingungen kann die tats\(:achliche Scan\-Rate unter das verlangte Minimum fallen\&. Die erste ist, wenn das Minimum schneller als die schnellste Rate ist, mit der Nmap senden kann, was hardwareabh\(:angig ist\&. In diesem Fall sendet Nmap Pakete einfach so schnell wie m\(:oglich, aber Sie sollten wissen, dass solch hohe Raten sehr wahrscheinlich einen Verlust an Genauigkeit bedeuten\&. Die zweite Bedingung ist, wenn Nmap nichts zu senden hat, z\&.B\&. am Ende eines Scans, nachdem die letzten Testpakete gesendet wurden und Nmap darauf wartet, dass sie einen Timeout verursachen oder beantwortet werden\&. Eine sinkende Scan\-Rate am Ende eines Scans oder zwischen Gruppen von Hosts ist normal\&. Die Senderate kann tempor\(:ar das Maximum \(:ubersteigen, um unvorhergesehene Verz\(:ogerungen auszugleichen, aber im Durchschnitt bleibt die Rate bei oder unter dem Maximum\&.
|
|
.sp
|
|
Eine minimale Rate sollte man mit Vorsicht angeben\&. Scans, die schneller sind, als das Netzwerk erlaubt, k\(:onnen zu einem Verlust von Genauigkeit f\(:uhren\&. In manchen F\(:allen kann die Wahl eines schnelleren Scans dazu f\(:uhren, dass er
|
|
\fIl\(:anger\fR
|
|
braucht als bei einer kleineren Rate\&. Das liegt daran, dass Nmaps Algorithmen f\(:ur die
|
|
adaptive retransmission
|
|
die von einer zu hohen Scan\-Rate verursachte Netzwerk\(:uberlastung erkennen und die Anzahl der Wiederholungen erh\(:ohen, um die Genauigkeit zu verbessern\&. Das hei\(sst, selbst wenn Pakete mit h\(:oherer Rate gesendet werden, werden mehr Pakete insgesamt gesendet\&. Begrenzen Sie diese Anzahl von Wiederholungen nach oben mit der Option
|
|
\fB\-\-max\-retries\fR, wenn Sie eine obere Grenze f\(:ur die gesamte Scan\-Zeit setzen m\(:ussen\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-defeat\-rst\-ratelimit\fR .\" --defeat-rst-ratelimit
|
|
.RS 4
|
|
Viele Hosts haben lange eine Ratenbeschr\(:ankung.\" Ratenbeschr\(:ankung
|
|
benutzt, um die Anzahl der von ihnen gesendeten ICMP\-Fehlermeldungen (z\&.B\&. Port\-Unreachable\-Fehler) zu reduzieren\&. Manche Systeme wenden nun \(:ahnliche Ratenbeschr\(:ankungen auf die von ihnen erzeugten RST\-(Reset\-)Pakete an\&. Das kann Nmap dramatisch verlangsamen, weil es sein Timing an diese Ratenbeschr\(:ankungen anpasst\&. Mit der Option
|
|
\fB\-\-defeat\-rst\-ratelimit\fR
|
|
k\(:onnen Sie Nmap sagen, dass es diese Ratenbeschr\(:ankungen ignorieren soll (z\&.B\&. bei Port\-Scans wie dem SYN\-Scan, die nicht\-antwortende Ports
|
|
\fInicht\fR
|
|
als
|
|
offen
|
|
behandeln)\&.
|
|
.sp
|
|
Diese Option kann die Genauigkeit reduzieren, da einige Ports nicht zu antworten scheinen, weil Nmap nicht lange genug auf eine ratenbeschr\(:ankte RST\-Antwort gewartet hat\&. Bei einem SYN\-Scan f\(:uhrt die ausbleibende Antwort dazu, dass f\(:ur den Port der Zustand
|
|
gefiltert
|
|
und
|
|
geschlossen
|
|
markiert wird, den wir sehen, wenn RST\-Pakete empfangen werden\&. Diese Option ist n\(:utzlich, wenn Sie sich nur f\(:ur offene Ports interessieren und eine Unterscheidung zwischen
|
|
geschlossenen
|
|
und
|
|
gefilterten
|
|
Ports die zus\(:atzliche Zeit nicht wert ist\&.
|
|
.RE
|
|
.PP
|
|
\fB\-T paranoid|sneaky|polite|normal|aggressive|insane\fR (setzt ein Timing\-Template) .\" -T .\" Timing-Templates
|
|
.RS 4
|
|
.\" -T0
|
|
.\" -T1
|
|
.\" -T2
|
|
.\" -T3
|
|
.\" -T4
|
|
.\" -T5
|
|
Auch wenn die feink\(:ornigen Timing\-Einstellungen im letzten Abschnitt m\(:achtig und effektiv sind, finden manche Leute sie verwirrend\&. Au\(sserdem kann die Wahl der passenden Werte manchmal mehr Zeit erfordern als der Scan, den Sie damit optimieren m\(:ochten\&. Deswegen bietet Nmap auch einen einfacheren Ansatz mit sechs Timing\-Templates\&. Diese k\(:onnen Sie mit der Option
|
|
\fB\-T\fR
|
|
und ihrer Nummer (0\(en5) oder mit ihrem Namen angeben\&. Diese Template\-Namen lauten:
|
|
\fBparanoid\fR\ \&(\fB0\fR),
|
|
\fBsneaky\fR\ \&(\fB1\fR),
|
|
\fBpolite\fR\ \&(\fB2\fR),
|
|
\fBnormal\fR\ \&(\fB3\fR),
|
|
\fBaggressive\fR\ \&(\fB4\fR) und
|
|
\fBinsane\fR\ \&(\fB5\fR)\&. Die ersten beiden sind f\(:ur die Umgehung von IDS gedacht\&. Der Polite\-Modus verlangsamt den Scan, damit er weniger Bandbreite und Ressourcen auf dem Zielrechner verbraucht\&. Der Normal\-Modus ist der Standardwert, d\&.h\&.
|
|
\fB\-T3\fR
|
|
macht gar nichts\&. Der Aggressive\-Modus beschleunigt Scans, indem er davon ausgeht, dass Sie sich in einem einigerma\(ssen schnellen und zuverl\(:assigen Netzwerk befinden\&. Und schlie\(sslich geht der Insane\-Modus.\" insane (-T5) Timing-Template
|
|
davon aus, dass sie sich in einem au\(ssergew\(:ohnlich schnellen Netzwerk befinden bzw\&. gewillt sind, f\(:ur mehr Geschwindigkeit auf etwas Genauigkeit zu verzichten\&.
|
|
.sp
|
|
Mit diesen Templates k\(:onnen Benutzer angeben, wie aggressiv sie vorgehen m\(:ochten, und trotzdem Nmap die Wahl der genauen Zeitwerte \(:uberlassen\&. Diese Templates f\(:uhren au\(sserdem auch kleine Geschwindigkeitsanpassungen aus, f\(:ur die es zur Zeit keine feink\(:ornigen Einstellungsoptionen gibt\&. Zum Beispiel verbietet
|
|
\fB\-T4\fR,.\" aggressive (-T4) Timing-Template
|
|
dass die dynamische Scan\-Verz\(:ogerung bei TCP\-Ports \(:uber 10\ \&ms ansteigt, und
|
|
\fB\-T5\fR
|
|
begrenzt diesen Wert auf 5\ \&ms\&. Templates k\(:onen auch in Kombination mit feink\(:ornigen Einstellungen benutzt werden, wobei die feink\(:ornigeren Optionen die entsprechenden allgemeinen Werte aus den Templates \(:uberschreiben\&. Ich empfehle den Einsatz von
|
|
\fB\-T4\fR
|
|
beim Scannen halbwegs moderner und zuverl\(:assiger Netzwerke\&. Wenn Sie diese Option angeben, auch dann, wenn Sie zus\(:atzliche feink\(:ornige Einstellungen benutzen, profitieren Sie von den weiteren kleinen Optimierungen, die damit verbunden sind\&.
|
|
.sp
|
|
Falls Sie eine anst\(:andige Breitband\- oder Ethernet\-Verbindung haben, w\(:urde ich empfehlen, immer
|
|
\fB\-T4\fR
|
|
zu benutzen\&. Manche Leute lieben
|
|
\fB\-T5\fR, was f\(:ur meinen Geschmack aber zu aggressiv ist\&. Manchmal geben Leute
|
|
\fB\-T2\fR
|
|
an, weil sie denken, dadurch w\(:urden Hosts weniger abst\(:urzen, oder weil sie sich selbst im Allgemeinen f\(:ur h\(:oflich halten\&. Oft realisieren sie einfach nicht, wie langsam
|
|
\fB\-T polite\fR.\" polite (-T2) Timing-Template
|
|
tats\(:achlich ist\&. Ein solcher Scan kann zehnmal mehr Zeit ben\(:otigen als ein Standard\-Scan\&. Rechnerabst\(:urze und Bandbreitenprobleme kommen mit den standardm\(:a\(ssigen Timing\-Optionen (\fB\-T3\fR) selten vor, weswegen ich das normalerweise vorsichtigen Scannern empfehle\&. Auf die Versionserkennung zu verzichten ist weit wirksamer bei der Reduktion dieser Probleme als das Herumprobieren mit Zeiteinstellungen\&.
|
|
.sp
|
|
Zwar sind
|
|
\fB\-T0\fR.\" paranoid (-T0) Timing-Template
|
|
und
|
|
\fB\-T1\fR.\" sneaky (-T1) Timing-Template
|
|
vielleicht hilfreich bei der Vermeidung von IDS\-Alarmen, ben\(:otigen aber au\(ssergew\(:ohnlich viel Zeit beim Scannen von Tausenden von Rechnern oder Ports\&. F\(:ur einen derart langen Scan m\(:ochten Sie vielleicht doch lieber die genau ben\(:otigten Zeitwerte angeben, statt sich auf die vorgefertigten Werte von
|
|
\fB\-T0\fR
|
|
und
|
|
\fB\-T1\fR
|
|
zu verlassen\&.
|
|
.sp
|
|
Die Haupteffekte von
|
|
\fBT0\fR
|
|
sind die Serialisierung des Scans, bei der immer nur ein Port gescannt wird, und eine Wartezeit von f\(:unf Minuten zwischen zwei Testpaketen\&.
|
|
\fBT1\fR
|
|
und
|
|
\fBT2\fR
|
|
sind \(:ahnlich, warten aber jeweils nur 15 bzw\&. 0,4 Sekunden zwischen zwei Testpaketen\&.
|
|
\fBT3\fR
|
|
ist die Standardeinstellung in Nmap, die eine Parallelisierung.\" normal (-T3) Timing-Template
|
|
beinhaltet\&.
|
|
\fB\-T4\fR
|
|
macht das \(:Aquivalent von
|
|
\fB\-\-max\-rtt\-timeout 1250 \-\-initial\-rtt\-timeout 500 \-\-max\-retries 6\fR
|
|
und setzt die maximale TCP\-Scan\-Verz\(:ogerung auf 10 Millisekunden\&.
|
|
\fBT5\fR
|
|
macht das \(:Aquivalent von
|
|
\fB\-\-max\-rtt\-timeout 300 \-\-min\-rtt\-timeout 50 \-\-initial\-rtt\-timeout 250 \-\-max\-retries 2 \-\-host\-timeout 15m\fR
|
|
und setzt die maximale TCP\-Scan\-Verz\(:ogerung auf 5\ \&ms\&.
|
|
.RE
|
|
.\"
|
|
.\"
|
|
.SH "FIREWALL-/IDS-UMGEHUNG UND -T\(:AUSCHUNG"
|
|
.\" Firewalls: umgehen
|
|
.\" Intrusion-Detection-Systeme: umgehen
|
|
.PP
|
|
Viele Internet\-Pioniere hatten die Vision eines globalen, offenen Netzwerks, in dem ein universeller IP\-Adressraum virtuelle Verbindungen zwischen zwei beliebigen Knoten erlaubt\&. Dadurch k\(:onnen Hosts als echte, gleichberechtigte Partner agieren und Information untereinander senden und empfangen\&. Die Menschen k\(:onnten von ihrer Arbeitsstelle auf all ihre Systeme daheim zugreifen, die Einstellungen der Klimaanlage \(:andern oder die T\(:uren f\(:ur verfr\(:uhte G\(:aste aufsperren\&. Diese Vision einer universellen Konnektivit\(:at wurde durch eine Verknappung im Adressraum und Sicherheitsbedenken abgew\(:urgt\&. In den fr\(:uhen 1990er Jahren begannen Organisationen mit der Aufstellung von Firewalls mit dem ausdr\(:ucklichen Zweck einer Reduktion der Konnektivit\(:at\&. Riesige Netzwerke wurden mit Anwendungs\-Proxies, NAT (Network Address Translation)\-Ger\(:aten und Paketfiltern vom ungefilterten Internet abgeriegelt\&. Der ungehinderte Fluss von Informationen hat einer strengen Regulierung von zugelassenen Kommunikationskan\(:alen und der dar\(:uber ausgetauschten Inhalte Platz gemacht\&.
|
|
.PP
|
|
Netzwerkhindernisse wie Firewalls k\(:onnen die Analyse eines Netzwerks au\(sserordentlich schwer machen\&. Und leichter wird es nicht werden, da das Verhindern von Aussp\(:ahungen oft ein Schl\(:usselziel beim Einsatz dieser Ger\(:ate ist\&. Trotzdem bietet Nmap viele Eigenschaften, um beim Verst\(:andnis dieser komplexen Netzwerke zu helfen und um zu \(:uberpr\(:ufen, dass diese Filter arbeiten wie gew\(:unscht\&. Es bietet sogar Mechanismen zur Umgehung schlechter Abwehrstrategien\&. Eine der besten Methoden, Ihre Lage in puncto Netzwerksicherheit zu verstehen, ist die, sie anzugreifen\&. Versetzen Sie sich selbst in die Denkweise eines Angreifers und wenden Sie Verfahren aus diesem Kapitel gegen Ihr Netzwerk an\&. Starten Sie einen FTP\-Bounce\-Scan, Idle\-Scan, Fragmentierungsangriff, oder versuchen Sie durch einen Ihrer eigenen Proxies zu tunneln\&.
|
|
.PP
|
|
Zus\(:atzlich zur Beschr\(:ankung der Netzwerkaktivit\(:at \(:uberwachen Firmen ihren Datenverkehr immer mehr mit Intrusion\-Detection\-Systemen (IDS)\&. Alle wichtigen IDS werden mit Regeln ausgeliefert, die entworfen wurden, um Nmap\-Scans zu erkennen, weil Scans manchmal Vorboten von Angriffen sind\&. Viele dieser Produkte haben sich in Intrusion\-\fIPrevention\fR\-Systeme (IPS).\" Intrusion-Prevention-Systeme
|
|
verwandelt, die f\(:ur b\(:oswillig gehaltenen Datenverkehr aktiv blockieren\&. Dummerweise ist es f\(:ur Netzwerkadministratoren und IDS\-Hersteller eine sehr schwierige Aufgabe, b\(:oswillige Absichten durch die Analyse von Paketdaten zuverl\(:assig zu erkennen\&. Angreifer mit Geduld, Geschick und der Hilfe bestimmter Nmap\-Optionen k\(:onnen meist unerkannt an einem IDS vorbeikommen\&. W\(:ahrenddessen m\(:ussen Administratoren mit riesigen Mengen falscher positiver Ergebnisse k\(:ampfen, bei denen eine nicht b\(:oswillige Aktivit\(:at fehldiagnostiziert wird und Alarm schl\(:agt oder blockiert wird\&.
|
|
.PP
|
|
Ab und zu schlagen Leute vor, dass Nmap keine Eigenschaften f\(:ur die Umgehung von Firewallregeln oder IDS enthalten sollte\&. Ihr Argument ist, dass diese Eigenschaften genauso wahrscheinlich von Angreifern missbraucht werden wie von Administratoren, die die Sicherheit verbessern\&. Das Problem bei dieser Logik ist, dass diese Methoden trotzdem von Angreifern benutzt w\(:urden, die einfach andere Werkzeuge finden oder die Funktionalit\(:at in Nmap einbauen w\(:urden\&. Zugleich w\(:are es f\(:ur Administratoren sehr viel schwerer, ihren Job zu machen\&. Das Aufstellen nur moderner, gepatchter FTP\-Server ist eine wesentlich bessere Verteidigung als der Versuch, die Verbreitung von Werkzeugen zu verhindern, die einen FTP\-Bounce\-Angriff implementieren\&.
|
|
.PP
|
|
Es gibt keine Wunderl\(:osung (oder Nmap\-Option) zur Erkennung und Umgehung von Firewalls und IDS\-Systemen\&. Es braucht Kompetenz und Erfahrung\&. Eine Anleitung dazu w\(:urde den Rahmen dieses Referenz\-Handbuches sprengen, das nur die wichtigsten Optionen auflistet und beschreibt, was sie machen\&.
|
|
.PP
|
|
\fB\-f\fR (Pakete fragmentieren); \fB\-\-mtu\fR (benutzt angegebene MTU) .\" -f .\" --mtu
|
|
.RS 4
|
|
Die Option
|
|
\fB\-f\fR
|
|
bewirkt, dass der gew\(:unschte Scan (inklusive Ping\-Scans) winzig fragmentierte IP\-Pakete benutzt\&. Die Idee dabei ist, den TCP\-Header \(:uber mehrere Pakete aufzuteilen, um es Paketfiltern, Intrusion\-Detection\-Systemen und anderen \(:Argernissen schwerer zu machen, Ihre Aktivit\(:aten zu durchschauen\&. Seien Sie dabei vorsichtig! Manche Programme haben M\(:uhe, mit diesen winzigen Paketen umzugehen\&. Ein Sniffer alter Schule namens Sniffit ist beim Erhalt des ersten Fragments sofort mit einem Segmentation\-Fault\-Fehler abgest\(:urzt\&. Wenn Sie diese Option einmal angeben, spaltet Nmap die Pakete in acht Bytes oder weniger nach dem IP\-Header auf\&. Das hei\(sst, ein 20 Byte langer TCP\-Header w\(:urde in drei Pakete aufgeteilt, zwei mit acht Bytes des TCP\-Headers und eines mit den restlichen vier\&. Nat\(:urlich hat jedes Fragment auch einen IP\-Header\&. Geben Sie erneut
|
|
\fB\-f\fR
|
|
an, um 16 Bytes pro Fragment zu benutzen (was die Anzahl der Fragmente verkleinert)\&..\" -f: zweimal angeben
|
|
Oder Sie geben eine eigene Offset\-Gr\(:o\(sse mit der Option
|
|
\fB\-\-mtu\fR
|
|
(f\(:ur engl\&. maximum transmission unit) an\&. Wenn Sie
|
|
\fB\-\-mtu\fR
|
|
angeben, sollten Sie nicht auch
|
|
\fB\-f\fR
|
|
angeben\&. Das Offset muss ein Vielfaches von acht sein\&. Zwar kommen fragmentierte Pakete nicht durch Paketfilter und Firewalls durch, die alle IP\-Fragmente in eine Warteschlange stellen, wie z\&.B\&. die Option
|
|
\fICONFIG_IP_ALWAYS_DEFRAG\fR
|
|
im Linux\-Kernel, aber einige Netzwerke k\(:onnen sich den damit verbundenen Performance\-Einbruch nicht leisten und lassen sie folglich deaktiviert\&. Andere k\(:onnen sie nicht aktivieren, weil die Fragmente auf verschiedenen Routen in ihre Netzwerke kommen k\(:onnten\&. Manche Quellsysteme defragmentieren hinausgehende Pakete im Kernel\&. Ein Beispiel daf\(:ur ist Linux mit dem Verbindungsmodul iptables\&..\" iptables
|
|
F\(:uhren Sie einen Scan aus, w\(:ahrend ein Sniffer wie z\&.B\&.
|
|
Wireshark.\" Wireshark
|
|
l\(:auft, um sicherzustellen, dass die gesendeten Pakete fragmentiert sind\&. Falls Ihr Host\-Betriebssystem Probleme macht, probieren Sie die Option
|
|
\fB\-\-send\-eth\fR.\" --send-eth
|
|
aus, um die IP\-Schicht zu umgehen und rohe Ethernet\-Rahmen zu schicken\&.
|
|
.sp
|
|
Eine Fragmentierung wird von Nmap nur f\(:ur rohe Pakete unterst\(:utzt, die man mit TCP\- und UDP\-Port\-Scans (au\(sser beim Connect\-Scan und FTP\-Bounce\-Scan) und der Betriebssystemerkennung benutzen kann\&. Merkmale wie die Versionserkennung und die Nmap Scripting Engine unterst\(:utzen im Allgemeinen keine Fragmentierung, weil sie sich auf den TCP\-Stack Ihres Hosts verlassen, um mit anderen Zielen zu kommunizieren\&.
|
|
.RE
|
|
.PP
|
|
\fB\-D \fR\fB\fIdecoy1\fR\fR\fB[,\fIdecoy2\fR]\fR\fB[,ME]\fR\fB[,\&.\&.\&.]\fR (verdeckt einen Scan mit K\(:odern) .\" -D .\" K\(:oder
|
|
.RS 4
|
|
F\(:uhrt einen Decoy\-Scan durch, was f\(:ur den entfernten Host den Anschein erweckt, dass der oder die Hosts, die Sie als K\(:oder angeben, das Zielnetzwerk ebenfalls scannen\&. Deren IDS kann also 5\(en10 Port\-Scans von eindeutigen IP\-Adressen verzeichnen, aber es wei\(ss nicht, welche IP sie gescannt hat und welche unschuldige K\(:oder waren\&. Das kann man zwar bek\(:ampfen, indem man Router\-Pfade mitverfolgt, Antworten verwirft oder weitere aktive Mechanismen anwendet, aber im Allgemeinen ist es eine wirksame Methode zum Verbergen Ihrer IP\-Adresse\&.
|
|
.sp
|
|
Trennen Sie alle K\(:oder mit Kommata voneinander, wobei Sie optional
|
|
ME.\" ME (K\(:oder-Adresse)
|
|
als einen der K\(:oder angeben k\(:onnen, um die Position Ihrer echten IP\-Adresse zu bestimmen\&. Falls Sie
|
|
ME
|
|
an sechster Stelle oder sp\(:ater setzen, zeigen einige verbreitete Port\-Scan\-Detektoren (wie z\&.B\&. der hervorragende Scanlogd.\" Scanlogd
|
|
von Solar Designer.\" Solar Designer) Ihre IP\-Adresse wahrscheinlich \(:uberhaupt nicht an\&. Wenn Sie kein
|
|
ME
|
|
angeben, setzt es Nmap an eine zuf\(:allig gew\(:ahlte Position\&. Sie k\(:onnen auch
|
|
RND.\" RND (K\(:oder-Adresse)
|
|
benutzen, um eine zuf\(:allige, nicht\-reservierte IP\-Adresse zu erzeugen, oder
|
|
RND:\fInumber\fR, um
|
|
\fInumber\fR
|
|
Adressen zu erzeugen\&.
|
|
.sp
|
|
Beachten Sie, dass die Hosts, die Sie als K\(:oder benutzen, eingeschaltet sein sollten, sonst k\(:onnten Sie versehentlich einen SYN\-Flood\-Angriff auf Ihre Ziele ausl\(:osen\&. Au\(sserdem l\(:asst sich der scannende Host sehr einfach bestimmen, wenn nur einer davon im Netzwerk eingeschaltet ist\&. Vielleicht m\(:ochten Sie IP\-Adressen statt \-Namen benutzen (damit die K\(:oder\-Netzwerke Sie nicht in ihren Nameserver\-Protokollen sehen)\&.
|
|
.sp
|
|
K\(:oder werden sowohl im initialen Ping\-Scan (mit ICMP, SYN, ACK oder was auch immer) als auch w\(:ahrend der eigentlichen Port\-Scan\-Phase benutzt\&. Auch bei der Erkennung entfernter Betriebssysteme (\fB\-O\fR) werden K\(:oder benutzt\&. Bei der Versionserkennung oder beim TCP\-Connect\-Scan funktionieren K\(:oder jedoch nicht\&. Falls eine Scan\-Verz\(:ogerung stattfindet, wird sie zwischen zwei Stapeln vorget\(:auschter Testpakete erzwungen, nicht zwischen einzelnen Testpaketen\&. Weil K\(:oder stapelweise auf einmal gesendet werden, k\(:onnen sie vor\(:ubergehend die Beschr\(:ankungen der \(:Uberlastungssteuerung verletzen\&.
|
|
.sp
|
|
Man sollte hierbei noch erw\(:ahnen, dass beim Einsatz von zu vielen K\(:odern Ihr Scan sich verlangsamen und sogar ungenauer werden kann\&. Manche ISPs filtern au\(sserdem Ihre vorget\(:auschten Pakete, aber viele beschr\(:anken solche vorget\(:auschten IP\-Pakete in keinster Weise\&.
|
|
.RE
|
|
.PP
|
|
\fB\-S \fR\fB\fIIP_Address\fR\fR (Quelladresse vort\(:auschen) .\" -S .\" Vort\(:auschen der Quelladresse
|
|
.RS 4
|
|
Unter gewissen Umst\(:anden kann Nmap eventuell Ihre Quelladresse nicht bestimmen (wenn dem so ist, dann sagt Ihnen Nmap Bescheid)\&. Benutzen Sie in diesem Fall
|
|
\fB\-S\fR
|
|
mit der IP\-Adresse der Schnittstelle, \(:uber die Sie die Pakete senden m\(:ochten\&.
|
|
.sp
|
|
Eine weitere m\(:ogliche Anwendung dieses Flags ist eine Vort\(:auschung des Scans, um die Ziele glauben zu machen, dass
|
|
\fIjemand anderes\fR
|
|
sie scannt\&. Stellen Sie sich eine Firma vor, die wiederholt von einem Mitbewerber gescannt wird! Bei dieser Art von Anwendung werden im Allgemeinen die Optionen
|
|
\fB\-e\fR
|
|
und
|
|
\fB\-PN\fR
|
|
ben\(:otigt\&. Beachten Sie, dass Sie normalerweise Antwortpakete zur\(:uckbekommen (sie werden an die IP adressiert, die Sie vort\(:auschen), d\&.h\&. Nmap kann keinen sinnvollen Bericht produzieren\&.
|
|
.RE
|
|
.PP
|
|
\fB\-e \fR\fB\fIinterface\fR\fR (angegebene Schnittstelle benutzen) .\" -e .\" interface
|
|
.RS 4
|
|
Sagt Nmap, auf welcher Schnittstelle es Pakete senden und empfangen soll\&. Nmap sollte das automatisch erkennen k\(:onnen, sagt Ihnen aber Bescheid, wenn nicht\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-source\-port \fR\fB\fIportnumber\fR\fR\fB;\fR \fB\-g \fR\fB\fIportnumber\fR\fR (Quell\-Portnummer vort\(:auschen) .\" --source-port .\" -g .\" Quellportnummer
|
|
.RS 4
|
|
Eine Fehlkonfiguration, die \(:uberraschend h\(:aufig vorkommt, ist es, dem Netzwerkverkehr allein auf Basis der Quell\-Portnummer zu vertrauen\&. Wie das zustande kommt, kann man leicht verstehen\&. Ein Administrator setzt eine gl\(:anzende neue Firewall auf und wird sofort mit Beschwerden von undankbaren Benutzern \(:uberflutet, deren Anwendungen nicht mehr laufen\&. Vor allem DNS k\(:onnte einen Aussetzer haben, weil die UDP\-DNS\-Antworten von externen Servern nicht l\(:anger ins Netzwerk hineinkommen\&. Ein weiteres h\(:aufiges Beispiel ist FTP\&. Bei aktiven FTP\-\(:Ubertragungen versucht der entfernte Server, eine Verbindung zur\(:uck zum Client herzustellen, um die gew\(:unschte Datei zu \(:ubertragen\&.
|
|
.sp
|
|
F\(:ur diese Probleme existieren sichere L\(:osungen, oftmals in Form von Proxies auf Anwendungsebene oder Protokoll\-parsenden Firewall\-Modulen\&. Leider gibt es auch einfachere, unsichere L\(:osungen\&. Viele Administratoren haben beobachtet, dass DNS\-Antworten von Port 53 und aktive FTP\-Antworten von Port 20 kommen, und sind in die Falle getappt, eingehenden Datenverkehr nur von diesen Ports zu erlauben\&. Oft gehen sie davon aus, dass kein Angreifer solche Firewall\-Lecks bemerken und ausbeuten w\(:urde\&. In anderen F\(:allen betrachten das Administratoren als kurzfristige \(:Uberbr\(:uckungsma\(ssnahme, bis sie eine sicherere L\(:osung implementieren k\(:onnen\&. Und dann vergessen sie diese Sicherheitsaktualisierung\&.
|
|
.sp
|
|
Aber nicht nur \(:uberarbeitete Netzwerkadministratoren tappen in diese Falle\&. Zahlreiche Produkte wurden mit diesen unsicheren Regeln ausgeliefert\&. Sogar Microsoft hat sich schuldig gmacht\&. Die IPsec\-Filter, die mit Windows 2000 und Windows XP ausgeliefert wurden, enthalten eine implizite Regel, die jeden TCP\- oder UDP\-Datenverkehr von Port 88 (Kerberos) erlaubt\&. Ein weiterer bekannter Fall sind Versionen der Zone Alarm Personal\-Firewall bis 2\&.1\&.25, die alle empfangenen UDP\-Pakete vom Quell\-Port 53 (DNS) oder 67 (DHCP) erlauben\&.
|
|
.sp
|
|
Nmap bietet die Optionen
|
|
\fB\-g\fR
|
|
und
|
|
\fB\-\-source\-port\fR
|
|
(sind \(:aquivalent), um diese Schw\(:achen auszunutzen\&. Geben Sie einfach eine Portnummer an, und Nmap wird, wenn m\(:oglich, Pakete von diesem Port senden\&. Damit es richtig funktioniert, muss Nmap f\(:ur bestimmte Betriebssystemerkennungstests verschiedene Portnummern benutzen, und DNS\-Anfragen ignorieren das
|
|
\fB\-\-source\-port\fR\-Flag, weil Nmap sich bei ihnen auf System\-Bibliotheken verl\(:asst\&. Die meisten TCP\-Scans, inklusive dem SYN\-Scan, unterst\(:utzen die Option vollst\(:andig, ebenso wie der UDP\-Scan\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-data\-length \fR\fB\fInumber\fR\fR (Zufallsdaten an gesendete Pakete anf\(:ugen) .\" --data-length
|
|
.RS 4
|
|
Normalerweise sendet Nmap minimale Pakete, die nur einen Header enthalten\&. Daher haben seine TCP\-Pakete im Allgemeinen nur 40 Bytes und die ICMP Echo\-Requests nur 28\&. Mit dieser Option sagen Sie Nmap, dass es die angegebene Anzahl von zuf\(:alligen Bytes an die meisten gesendeten Pakete hinzuf\(:ugen soll\&. Pakete f\(:ur die Betriebssystemerkennung (\fB\-O\fR) sind davon nicht betroffen,.\" --data-length: kein Effekt in der Betriebssystemerkennung
|
|
weil dort aus Genauigkeitsgr\(:unden konsistente Pakete verlangt werden, aber die meisten Ping\- und Port\-Scan\-Pakete unterst\(:utzen das\&. Das kann den Scan etwas verlangsamen, aber auch etwas unauff\(:alliger machen\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-ip\-options \fR\fB\fIS|R [route]|L [route]|T|U \&.\&.\&. \fR\fR\fB;\fR \fB\-\-ip\-options \fR\fB\fIhex string\fR\fR (sendet Pakete mit angegebenen IP\-Optionen) .\" --ip-options .\" IP-Optionen
|
|
.RS 4
|
|
Laut
|
|
\m[blue]\fBIP\-Protokoll\fR\m[]\&\s-2\u[9]\d\s+2
|
|
k\(:onnen in den Paket\-Headern mehrere Optionen enthalten sein\&. Anders als die allgegenw\(:artigen TCP\-Optionen sieht man IP\-Optionen aus Gr\(:unden der praktischen Anwendbarkeit und Sicherheit nur selten\&. Tats\(:achlich blockieren die meisten Internet\-Router die gef\(:ahrlichsten Optionen wie Source Routing sogar\&. Dennoch k\(:onnen diese Optionen in manchen F\(:allen n\(:utzlich sein, um die Netzwerk\-Route zu Zielrechnern zu bestimmen und zu manipulieren\&. Sie k\(:onnen z\&.B\&. vielleicht die Option Record Route dazu benutzen, einen Pfad zum Ziel sogar dann zu bestimmen, wenn traditionellere, traceroute\-artige Ans\(:atze versagen\&. Oder wenn Ihre Pakete von einer bestimmten Firewall verworfen werden, k\(:onnen Sie mit den Optionen Strict oder Loose Source Routing m\(:oglicherweise eine andere Route angeben\&.
|
|
.sp
|
|
Die meisten M\(:oglichkeiten bei der Angabe von IP\-Optionen hat man, wenn man einfach Werte als Argumente f\(:ur
|
|
\fB\-\-ip\-options\fR
|
|
angibt\&. Stellen Sie vor jede Hex\-Zahl ein
|
|
\ex
|
|
und zwei Ziffern\&. Einzelne Zeichen k\(:onnen Sie wiederholen, indem Sie ihnen ein Sternchen und dann die Anzahl der Wiederholungen nachstellen\&. So ist z\&.B\&.
|
|
\ex01\ex07\ex04\ex00*36\ex01
|
|
ein Hex\-String mit 36 NUL\-Bytes\&.
|
|
.sp
|
|
Nmap bietet auch einen verk\(:urzten Mechanismus f\(:ur die Angabe von Optionen\&. Geben Sie einfach die Buchstaben
|
|
R,
|
|
T
|
|
oder
|
|
U
|
|
an, um jeweils Record Route,.\" Record-Route-IP-Option
|
|
Record Timestamp.\" Record-Timestamp-IP-Option
|
|
oder beide Optionen gemeinsam anzugeben\&. Loose oder Strict Source Routing.\" Source Routing
|
|
kann man mit
|
|
L
|
|
bzw\&.
|
|
S, gefolgt von einem Leerzeichen und einer mit Leerzeichen getrennten Liste von IP\-Adressen angeben\&.
|
|
.sp
|
|
Wenn Sie die Optionen in den gesendeten und empfangenen Paketen sehen m\(:ochten, geben Sie
|
|
\fB\-\-packet\-trace\fR
|
|
an\&. Mehr Informationen und Beispiele zum Einsatz von IP\-Optionen mit Nmap finden Sie unter
|
|
\m[blue]\fB\%http://seclists.org/nmap-dev/2006/q3/0052.html\fR\m[]\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-ttl \fR\fB\fIvalue\fR\fR (setzt IP\-Time\-to\-live\-Feld) .\" --ttl .\" Time-To-Live (TTL)
|
|
.RS 4
|
|
Setzt bei IPv4 das Time\-to\-live\-Feld in gesendeten Paketen auf den angegebenen Wert\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-randomize\-hosts\fR (randomisiert Reihenfolge der Zielhosts) .\" --randomize-hosts .\" Randomisierung von Hosts
|
|
.RS 4
|
|
Verlangt von Nmap, dass es alle Gruppen von bis zu 16\&.384 Hosts durcheinanderw\(:urfelt, bevor es sie scannt\&. Das kann den Scan f\(:ur verschiedene Netzwerk\-\(:Uberwachungssysteme weniger offensichtlich machen, besonders dann, wenn Sie ihn mit einer langsamen Timing\-Option kombinieren\&. Wenn Sie gr\(:o\(ssere Gruppen randomisieren m\(:ochten, m\(:ussen Sie
|
|
\fIPING_GROUP_SZ\fR.\" PING_GROUP_SZ
|
|
in
|
|
nmap\&.h.\" nmap.h
|
|
erh\(:ohen und neu kompilieren\&. Eine alternative L\(:osung ist es, die Liste der Ziel\-IPs mit einem List\-Scan (\fB\-sL \-n \-oN \fR\fB\fIfilename\fR\fR) zu erzeugen, dann z\&.B\&. mit einem Perl\-Script zu randomisieren, um sie schlie\(sslich als Ganzes mit
|
|
\fB\-iL\fR.\" -iL: Hosts randomisieren mit
|
|
an Nmap zu \(:ubergeben\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-spoof\-mac \fR\fB\fIMAC address, prefix, or vendor name\fR\fR (MAC\-Adresse vort\(:auschen) .\" --spoof-mac .\" Vort\(:auschen einer MAC-Adresse
|
|
.RS 4
|
|
Verlangt von Nmap, dass es in allen gesendeten rohen Ethernet\-Rahmen die angegebene MAC\-Adresse.\" MAC-Adresse
|
|
benutzt\&. Diese Option impliziert
|
|
\fB\-\-send\-eth\fR,.\" --send-eth: impliziert von --spoof-mac
|
|
um sicherzustellen, dass Nmap tats\(:achlich Pakete auf Ethernet\-Ebene sendet\&. Die MAC\-Adresse kann in mehreren Formaten angegeben werden\&. Wenn es einfach die Zahl
|
|
0
|
|
ist, w\(:ahlt Nmap eine v\(:ollig zuf\(:allige MAC\-Adresse f\(:ur diese Sitzung\&. Falls der angegebene String aus einer geraden Anzahl von Hexadezimalziffern besteht (in dem Paare optional mit Doppelpunkten getrennt sein k\(:onnen), benutzt Nmap diese als MAC\&. Werden weniger als 12 Hexadezimalziffern angegeben, dann f\(:ullt Nmap die restlichen sechs Bytes mit zuf\(:alligen Werten\&. Falls das Argument weder null noch ein Hex\-String ist, schaut Nmap in
|
|
nmap\-mac\-prefixes
|
|
nach, um einen Herstellernamen zu finden, der den angegebenen String enth\(:alt (unabh\(:angig von der Schreibweise)\&. Wird eine \(:Ubereinstimmung gefunden, benutzt Nmap die OUI dieses Herstellers (einen drei Byte langen Pr\(:afix).\" Organizationally Unique Identifier (OUI)
|
|
und f\(:ullt die verbleibenden drei Bytes mit Zufallswerten\&. G\(:ultige Beispiele f\(:ur Argumente von
|
|
\fB\-\-spoof\-mac\fR
|
|
sind
|
|
Apple,
|
|
0,
|
|
01:02:03:04:05:06,
|
|
deadbeefcafe,
|
|
0020F2
|
|
und
|
|
Cisco\&. Diese Option betrifft nur Scans mit rohen Paketen wie den SYN\-Scan oder die Betriebssystemerkennung, keine verbindungsorientierten Merkmale wie die Versionserkennung oder die Nmap Scripting Engine\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-badsum\fR (sendet Pakete mit falschen TCP/UDP\-Pr\(:ufsummen) .\" --badsum .\" TCP-Pr\(:ufsumme .\" Pr\(:ufsummen
|
|
.RS 4
|
|
Verlangt von Nmap, bei den an Zielhosts gesendeten Paketen ung\(:ultige TCP\- oder UDP\-Pr\(:ufsummen zu benutzen\&. Da so gut wie alle Host\-IP\-Stacks solche Pakete verwerfen, kommen eventuelle Antworten sehr wahrscheinlich von einer Firewall oder einem IDS, das sich nicht die M\(:uhe macht, die Pr\(:ufsumme zu \(:uberpr\(:ufen\&. Mehr Details zu dieser Methode finden Sie unter
|
|
\m[blue]\fB\%https://nmap.org/p60-12.html\fR\m[]\&.
|
|
.RE
|
|
.\"
|
|
.\"
|
|
.SH "AUSGABE"
|
|
.\" Ausgabeformate
|
|
.PP
|
|
Alle Sicherheitswerkzeuge sind nur so gut wie die Ausgabe, die sie erzeugen\&. Komplexe Tests und Algorithmen haben einen geringen Wert, wenn sie nicht auf \(:ubersichtliche und verst\(:andliche Weise dargestellt werden\&. Da Nmap auf vielf\(:altige Weise von verschiedenen Leuten und anderer Software benutzt wird, kann kein Format allein es allen recht machen\&. Daher bietet Nmap mehrere Formate, darunter den interaktiven Modus, den Menschen direkt lesen k\(:onnen, und XML, das von Software leicht geparst werden kann\&.
|
|
.PP
|
|
Zus\(:atzlich zu verschiedenen Ausgabeformaten bietet Nmap Optionen zur Steuerung der Ausf\(:uhrlichkeit dieser Ausgabe sowie Debugging\-Meldungen\&. Die Ausgaben k\(:onnen an die Standardausgabe oder an benannte Dateien gehen, die Nmap \(:uberschreiben bzw\&. an die es seine Ausgabe anf\(:ugen kann\&. Mit den Ausgabedateien k\(:onnen au\(sserdem abgebrochene Scans fortgesetzt werden\&.
|
|
.PP
|
|
Nmap erzeugt seine Ausgabe in f\(:unf verschiedenen Formaten\&. Das Standardformat hei\(sst
|
|
interaktive Ausgabe.\" interaktive Ausgabe
|
|
und wird an die Standardausgabe (stdout).\" Standardausgabe
|
|
gesendet\&. Es gibt auch die
|
|
normale Ausgabe,.\" normale Ausgabe
|
|
die \(:ahnlich zur interaktiven Ausgabe ist, au\(sser dass sie weniger Laufzeitinformation und Warnungen ausgibt, weil man davon ausgeht, dass sie erst nach Abschluss des Scans analysiert wird und nicht, w\(:ahrend er noch l\(:auft\&.
|
|
.PP
|
|
Die
|
|
XML\-Ausgabe.\" 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\&.
|
|
.PP
|
|
Die zwei verbleibenden Ausgabeformate sind die einfache
|
|
grepbare Ausgabe,.\" grepbare Ausgabe
|
|
in der die meiste Information \(:uber einen Zielhost in einer einzigen Zeile enthalten ist, und
|
|
sCRiPt KiDDi3 0utPUt.\" scR1pT kIddI3-Ausgabe
|
|
f\(:ur Benutzer, die sich selbst als |<\-r4d sehen\&.
|
|
.PP
|
|
Die interaktive Ausgabe ist standardm\(:a\(ssig vorgegeben und verf\(:ugt \(:uber keine eigenen Kommandozeilenoptionen, aber die anderen vier Formate benutzen dieselbe Syntax\&. Sie erwarten ein Argument, den Namen der Datei, in der die Ergebnisse gespeichert werden sollen\&. Es k\(:onnen mehrere Formate angegeben werden, aber jedes nur einmal\&. Vielleicht m\(:ochten Sie z\&.B\&. eine normale Ausgabe f\(:ur eine eigene Untersuchung speichern und eine XML\-Ausgabe desselben Scans f\(:ur eine programmbasierte Analyse\&. Das erreichen Sie mit den Optionen
|
|
\fB\-oX myscan\&.xml \-oN myscan\&.nmap\fR\&. Auch wenn in diesem Kapitel der K\(:urze wegen einfache Namen wie
|
|
myscan\&.xml
|
|
benutzt werden, empfehlen sich im Allgemeinen aussagekr\(:aftigere Namen\&. Welche Namen Sie w\(:ahlen, ist Geschmackssache, aber ich benutze lange Namen, die das Scandatum und ein oder zwei Worte \(:uber den Scan enthalten, in einem Verzeichnis, das den Namen der gescannten Firma enth\(:alt\&.
|
|
.PP
|
|
Auch wenn diese Optionen Ergebnisse in Dateien speichern, gibt Nmap weiterhin die interaktive Ausgabe wie \(:ublich auf die Standardausgabe aus\&. Zum Beispiel speichert der Befehl
|
|
\fBnmap \-oX myscan\&.xml target\fR
|
|
XML in
|
|
myscan\&.xml
|
|
und f\(:ullt die Standardausgabe mit demselben interaktiven Ergebnis, wie es auch ohne Angabe von
|
|
\fB\-oX\fR
|
|
der Fall w\(:are\&. Das k\(:onnen Sie \(:andern, indem Sie ein Minuszeichen als Argument f\(:ur eines der Formate angeben\&. Dann schaltet Nmap die interaktive Ausgabe ab und gibt stattdessen Ergebnisse im gew\(:unschten Format auf den Standardausgabestrom aus\&. Das hei\(sst, der Befehl
|
|
\fBnmap \-oX \- target\fR
|
|
schreibt nur die XML\-Ausgabe auf die Standardausgabe\&..\" Ausgabe: auf stdout mit -
|
|
Ernste Fehler werden weiterhin auf den normalen Standardfehlerstrom, stderr,.\" Standardfehlerausgabe
|
|
ausgegeben\&.
|
|
.PP
|
|
Anders als bei anderen Nmap\-Argumenten ist das Leerzeichen zwischen dem Options\-Flag f\(:ur eine Ausgabedatei (z\&.B\&.
|
|
\fB\-oX\fR) und dem Dateinamen oder Minuszeichen obligatorisch\&. Falls Sie die Leerzeichen weglassen und Argumente wie z\&.B\&.
|
|
\fB\-oG\-\fR
|
|
oder
|
|
\fB\-oXscan\&.xml\fR
|
|
angeben, erzeugt Nmap aus Gr\(:unden der R\(:uckw\(:artskompatibilit\(:at Ausgabedateien im
|
|
\fInormalen Format\fR, die jeweils die Namen
|
|
G\-
|
|
und
|
|
Xscan\&.xml
|
|
haben\&.
|
|
.PP
|
|
All diese Argumente unterst\(:utzen
|
|
\fBstrftime\fR\-\(:ahnliche.\" strftime Konvertierungen in Dateinamen
|
|
Umwandlungen im Dateinamen\&.
|
|
%H,
|
|
%M,
|
|
%S,
|
|
%m,
|
|
%d,
|
|
%y
|
|
und
|
|
%Y
|
|
sind alle exakt gleich wie in
|
|
\fBstrftime\fR\&.
|
|
%T
|
|
entspricht
|
|
%H%M%S,
|
|
%R
|
|
entspricht
|
|
%H%M
|
|
und
|
|
%D
|
|
entspricht
|
|
%m%d%y\&. Ein
|
|
%, dem ein anderes Zeichen folgt, ergibt nur genau dieses Zeichen (%%
|
|
ergibt ein Prozentzeichen)\&. Also erzeugt
|
|
\fB\-oX \*(Aqscan\-%T\-%D\&.xml\*(Aq\fR
|
|
eine XML\-Datei in der Form
|
|
scan\-144840\-121307\&.xml\&.
|
|
.PP
|
|
Nmap bietet auch Optionen zur Steuerung der Scan\-Ausf\(:uhrlichkeit und Optionen, um an Ausgabedateien anzuh\(:angen, statt sie zu \(:uberschreiben\&. All diese Optionen werden unten beschrieben\&.
|
|
.PP
|
|
\fBNmap\-Ausgabeformate\fR
|
|
.PP
|
|
\fB\-oN \fR\fB\fIfilespec\fR\fR (normale Ausgabe) .\" -oN .\" normale Ausgabe
|
|
.RS 4
|
|
Verlangt, dass eine
|
|
normale Ausgabe
|
|
in der angegebenen Datei gespeichert wird\&. Wie oben erw\(:ahnt, unterscheidet sich das leicht von der
|
|
interaktiven Ausgabe\&.
|
|
.RE
|
|
.PP
|
|
\fB\-oX \fR\fB\fIfilespec\fR\fR (XML\-Ausgabe) .\" -oX .\" XML-Ausgabe
|
|
.RS 4
|
|
Verlangt, dass eine
|
|
XML\-Ausgabe
|
|
in der angegebenen Datei gespeichert wird\&. Nmap f\(:ugt eine DTD (Document Type Definition) hinzu, mit der XML\-Parser Nmaps XML\-Ausgabe validieren k\(:onnen\&. Diese ist vor allem f\(:ur die Benutzung durch Programme gedacht, kann aber auch Menschen bei der Interpretation von Nmaps XML\-Ausgabe helfen\&. Die DTD definiert die g\(:ultigen Elemente des Formats und z\(:ahlt an vielen Stellen die daf\(:ur erlaubten Attribute und Werte auf\&. Die neueste Version ist immer unter
|
|
\m[blue]\fB\%https://nmap.org/data/nmap.dtd\fR\m[]
|
|
verf\(:ugbar\&.
|
|
.sp
|
|
XML bietet ein stabiles Format, das man mit Software leicht parsen kann\&. Solche XML\-Parser sind f\(:ur alle wichtigen Programmiersprachen wie C/C++, Perl, Python und Java gratis verf\(:ugbar\&. Manche Leute haben sogar Anbindungen f\(:ur die meisten dieser Sprachen geschrieben, um speziell die Ausgabe und Ausf\(:uhrung von Nmap zu steuern\&. Beispiele sind
|
|
\m[blue]\fBNmap::Scanner\fR\m[]\&\s-2\u[10]\d\s+2.\" Nmap::Scanner
|
|
und
|
|
\m[blue]\fBNmap::Parser\fR\m[]\&\s-2\u[11]\d\s+2.\" Nmap::Parser
|
|
f\(:ur Perl in CPAN\&. In fast allen F\(:allen, in denen eine nicht\-triviale Anwendung eine Schnittstelle zu Nmap benutzt, ist XML das bevorzugte Format\&.
|
|
.sp
|
|
Die XML\-Ausgabe verweist auf ein XSL\-Stylesheet, mit dem man die Ergebnisse als HTML formatieren kann\&. Am einfachsten benutzt man das, indem man einfach die XML\-Ausgabe in einem Webbrowser wie Firefox oder IE l\(:adt\&. Standardm\(:a\(ssig funktioniert das nur auf dem Rechner, auf dem Sie Nmap ausgef\(:uhrt haben (oder auf einem, der \(:ahnlich konfiguriert ist), weil der Pfad zu
|
|
nmap\&.xsl
|
|
darin festkodiert ist\&. Um portable XML\-Dateien zu erzeugen, die auf allen mit dem Web verbundenen Rechnern als HTML angezeigt werden, k\(:onnen Sie die Optionen
|
|
\fB\-\-webxml\fR
|
|
oder
|
|
\fB\-\-stylesheet\fR
|
|
benutzen\&.
|
|
.RE
|
|
.PP
|
|
\fB\-oS \fR\fB\fIfilespec\fR\fR (ScRipT KIdd|3\-Ausgabe) .\" -oS .\" scR1pT kIddI3-Ausgabe
|
|
.RS 4
|
|
Die Script\-Kiddie\-Ausgabe ist \(:ahnlich zur interaktiven Ausgabe, mit dem Unterschied, dass sie nachbearbeitet ist, um die \*(Aql33t HaXXorZ besser anzusprechen! Vorher haben sie wegen dessen konsistent richtiger Schreibweise und Buchstabierung auf Nmap herabgesehen\&. Humorlose Menschen sollten wissen, dass diese Option sich \(:uber Script Kiddies lustig macht, bevor sie mich daf\(:ur angreifen, dass ich
|
|
\(Bqihnen helfe\(lq\&.
|
|
.RE
|
|
.PP
|
|
\fB\-oG \fR\fB\fIfilespec\fR\fR (grepbare Ausgabe) .\" -oG .\" grepbare Ausgabe
|
|
.RS 4
|
|
Dieses Ausgabeformat wird zum Schluss beschrieben, weil es als \(:uberholt gilt\&. Das XML\-Ausgabeformat ist wesentlich leistungsst\(:arker und f\(:ur erfahrene Benutzer fast genauso bequem\&. XML ist eim Standard, f\(:ur den Dutzende hervorragender Parser verf\(:ugbar sind, w\(:ahrend die grepbare Ausgabe nur mein eigener einfacher Hack ist\&. XML ist erweiterbar und kann neue Nmap\-Eigenschaften unterst\(:utzen, die ich beim grepbaren Format aus Platzgr\(:unden oft weglassen muss\&.
|
|
.sp
|
|
Dessen ungeachtet ist die grepbare Ausgabe immer noch recht beliebt\&. Es ist ein einfaches Format, das pro Zeile einen Host auflistet und das mit Unix\-Standardwerkzeugen wie grep, awk, cut, sed, diff und auch mit Perl auf triviale Weise durchsucht und geparst werden kann\&. Selbst ich benutze es f\(:ur einmalige schnelle Tests in der Kommandozeile\&. Zum Beispiel kann man alle Hosts, auf denen der SSH\-Port offen ist oder auf denen Solaris l\(:auft, auf einfache Weise mit einem grep bestimmen, das die Hosts findet, umgeleitet in einen awk\- oder cut\-Befehl, der die gew\(:unschten Felder ausgibt\&.
|
|
.sp
|
|
Die grepbare Ausgabe besteht aus Kommentaren (Zeilen, die mit einem # anfangen).\" grepbare Ausgabe: Kommentare in
|
|
sowie aus Zielzeilen\&. Eine Zielzeile enth\(:alt eine Kombination aus sechs benannten Feldern, durch Tabulatoren getrennt, gefolgt von einem Doppelpunkt\&. Diese Felder lauten
|
|
Host,
|
|
Ports,
|
|
Protocols,
|
|
Ignored State,
|
|
OS,
|
|
Seq Index,
|
|
IP ID
|
|
und
|
|
Status\&.
|
|
.sp
|
|
Das wichtigste dieser Felder ist im Allgemeinen
|
|
Ports, das Details zu einem interessanten Port enth\(:alt\&. Es ist eine mit Kommata getrennte Liste von Port\-Eintr\(:agen, wobei jeder Eintrag einen interessanten Port darstellt und aus sieben mit Schr\(:agstrichen (/) getrennten Unterfeldern besteht\&. Diese Unterfelder lauten:
|
|
Port number,
|
|
State,
|
|
Protocol,
|
|
Owner,
|
|
Service,
|
|
SunRPC info
|
|
und
|
|
Version info\&.
|
|
.sp
|
|
Wie bei der XML\-Ausgabe kann diese Manpage auch hier nicht das vollst\(:andige Format dokumentieren\&. Eine detailliertere Betrachtung des grepbaren Ausgabeformats in Nmap finden Sie
|
|
from \m[blue]\fB\%https://nmap.org/book/output-formats-grepable-output.html\fR\m[]\&.
|
|
.RE
|
|
.PP
|
|
\fB\-oA \fR\fB\fIbasename\fR\fR (Ausgabe in allen Formaten) .\" -oA
|
|
.RS 4
|
|
Aus Gr\(:unden der Bequemlichkeit k\(:onnen Sie Scan\-Ergebnisse mit
|
|
\fB\-oA \fR\fB\fIbasename\fR\fR
|
|
gleichzeitig in normalem, in XML\- und in grepbarem Format speichern\&. Sie werden jeweils in
|
|
\fIbasename\fR\&.nmap,
|
|
\fIbasename\fR\&.xml
|
|
und
|
|
\fIbasename\fR\&.gnmap, gespeichert\&. Wie in den meisten Programmen k\(:onnen Sie vor den Dateinamen ein Pr\(:afix mit einem Verzeichnispfad darin setzen, z\&.B\&.
|
|
~/nmaplogs/foocorp/
|
|
unter Unix oder
|
|
c:\ehacking\esco
|
|
unter Windows\&.
|
|
.RE
|
|
.PP
|
|
\fBOptionen f\(:ur Ausf\(:uhrlichkeit und Debugging\fR
|
|
.PP
|
|
\fB\-v\fR (gr\(:o\(ssere Ausf\(:uhrlichkeit) .\" -v .\" Ausf\(:uhrlichkeit
|
|
.RS 4
|
|
Erh\(:oht die Ausf\(:uhrlichkeit, d\&.h\&. Nmap gibt mehr Informationen \(:uber den laufenden Scan aus\&. Offene Ports werden angezeigt, direkt nachdem sie gefunden werden, und es werden Sch\(:atzungen f\(:ur die Dauer bis zur Fertigstellung angegeben, falls Nmap meint, dass ein Scan mehr als ein paar Minuten ben\(:otigt\&. Noch mehr Information erhalten Sie, wenn Sie diese Option zweimal oder noch \(:ofter angeben\&.
|
|
.\" -v: mehrmals angeben
|
|
.sp
|
|
Die meisten \(:Anderungen betreffen nur die interaktive Ausgabe, manche betreffen auch die normale und die Script\-Kiddie\-Ausgabe\&. Die anderen Ausgabearten sind f\(:ur die Weiterverarbeitung durch Maschinen gedacht, d\&.h\&. Nmap kann in diesen Formaten standardm\(:a\(ssig alle Details angeben, ohne einen menschlichen Leser zu erm\(:uden\&. Allerdings gibt es in den anderen Modi einige \(:Anderungen, bei denen die Ausgabegr\(:o\(sse durch Weglassen einiger Details erheblich reduziert werden kann\&. Zum Beispiel wird eine Kommentarzeile in der grepbaren Ausgabe, die eine Liste aller gescannten Ports enth\(:alt, nur im wortreichen Modus ausgegeben, weil sie ziemlich lang werden kann\&.
|
|
.RE
|
|
.PP
|
|
\fB\-d [level]\fR (erh\(:ohe oder setze Debugging\-Stufe) .\" -d .\" Debugging
|
|
.RS 4
|
|
Wenn nicht einmal der wortreiche Modus genug Daten f\(:ur Sie liefert, k\(:onnen Sie beim Debugging noch wesentlich mehr davon bekommen! Wie bei der Ausf\(:uhrlichkeits\-Option (\fB\-v\fR) wird auch das Debugging mit einem Kommandozeilen\-Flag eingeschaltet (\fB\-d\fR), und die Debug\-Stufe kann durch eine mehrfache Angabe gesteigert werden\&..\" -d: mehrmals angeben
|
|
Alternativ dazu k\(:onnen Sie eine Debug\-Stufe auch als Argument an
|
|
\fB\-d\fR
|
|
\(:ubergeben\&. So setzt z\&.B\&.
|
|
\fB\-d9\fR
|
|
die Stufe neun\&. Das ist die h\(:ochste verf\(:ugbare Stufe, die Tausende von Zeilen produziert, sofern Sie keinen sehr einfachen Scan mit sehr wenigen Ports und Zielen ausf\(:uhren\&.
|
|
.sp
|
|
Eine Debugging\-Ausgabe ist sinnvoll, wenn Sie einen Fehler in Nmap vermuten oder wenn Sie einfach verwirrt dar\(:uber sind, was und warum Nmap etwas genau macht\&. Da dieses Merkmal \(:uberwiegend f\(:ur Entwickler gedacht ist, sind Debug\-Zeilen nicht immer selbsterkl\(:arend\&. Vielleicht bekommen Sie etwas wie:
|
|
Timeout vals: srtt: \-1 rttvar: \-1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000\&. Wenn Sie eine Zeile nicht verstehen, ist Ihre einzige Zuflucht, sie zu ignorieren, im Quellcode nachzuschauen oder Hilfe auf der Entwicklerliste (nmap\-dev)\&..\" nmap-dev Mailingliste
|
|
zu erfragen\&. Manche Eintr\(:age sind selbsterkl\(:arend, aber je h\(:oher die Debug\-Stufe ist, desto obskurer werden die Meldungen\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-reason\fR (Gr\(:unde f\(:ur Host\- und Portzust\(:ande) .\" --reason .\" Angabe von Gr\(:unden
|
|
.RS 4
|
|
Gibt die Gr\(:unde an, warum ein Port auf einen bestimmten Zustand gesetzt wurde und warum ein Host als ein\- oder ausgeschaltet betrachtet wird\&. Diese Option zeigt die Paketart an, die einen Port\- oder Hostzustand ermittelt hat, z\&.B\&. ein
|
|
RST\-Paket von einem geschlossenen Port oder ein Echo Reply von einem eingeschalteten Host\&. Die Information, die Nmap angeben kann, h\(:angt von der Art des Scans oder Pings ab\&. Der SYN\-Scan und der SYN\-Ping (\fB\-sS\fR
|
|
und
|
|
\fB\-PS\fR) sind sehr detailliert, aber der TCP\-Connect\-Scan (\fB\-sT\fR) wird durch die Implementierung des
|
|
\fBconnect\fR\-Systemaufrufs beschr\(:ankt\&. Dieses Merkmal wird automatisch von der Debug\-Option (\fB\-d\fR).\" --reason: impliziert von -d
|
|
aktiviert, und die Ergebnisse werden auch dann in XML\-Protokolldateien gespeichert, wenn diese Option gar nicht angegeben wird\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-stats\-every \fR\fB\fItime\fR\fR (periodische Timing\-Statistik ausgeben) .\" --stats-every
|
|
.RS 4
|
|
Gibt periodisch eine Timing\-Statusmeldung nach einem Intervall der L\(:ange
|
|
\fItime\fR
|
|
aus\&. Dabei kann diese Zeitangabe beschrieben werden, wie in
|
|
\(BqTIMING UND PERFORMANCE\(lq
|
|
dargestellt, d\&.h\&. Sie k\(:onnen z\&.B\&.
|
|
\fB\-\-stats\-every 10s\fR
|
|
benutzen, um alle 10 Sekunden eine Statusaktualisierung zu erhalten\&. Diese erscheint in der interaktiven Ausgabe (auf dem Bildschirm) und in der XML\-Ausgabe\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-packet\-trace\fR (gesendete und empfangene Pakete und Daten mitverfolgen) .\" --packet-trace
|
|
.RS 4
|
|
Bewirkt, dass Nmap f\(:ur jedes gesendete oder empfangene Paket eine Zusammenfassung ausgibt\&. Das wird bei der Fehlersuche oft gemacht, ist aber auch eine willkommene Methode f\(:ur Neulinge, um genau zu verstehen, was Nmap unter der Oberfl\(:ache macht\&. Um zu verhindern, dass Tausende von Zeilen ausgegeben werden, m\(:ochten Sie vielleicht eine beschr\(:ankte Anzahl zu scannender Ports angeben, z\&.B\&. mit
|
|
\fB\-p20\-30\fR\&. Wenn Sie nur wissen m\(:ochten, was im Versionserkennungssubsystem vor sich geht, benutzen Sie stattdessen
|
|
\fB\-\-version\-trace\fR\&. Wenn Sie nur an einer Script\-Mitverfolgung interessiert sind, geben Sie
|
|
\fB\-\-script\-trace\fR
|
|
an\&. Mit
|
|
\fB\-\-packet\-trace\fR
|
|
erhalten Sie all das zusammen\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-open\fR (zeige nur offene (oder m\(:oglicherweise offene) Ports an) .\" --open
|
|
.RS 4
|
|
Manchmal interessieren Sie sich nur f\(:ur Ports, mit denen Sie tats\(:achlich eine Verbindung herstellen k\(:onnen (offene
|
|
Ports), und wollen Ihre Ergebnisse nicht mit anderen Ports \(:uberh\(:aufen, die
|
|
geschlossen,
|
|
gefiltert
|
|
und
|
|
geschlossen|gefiltert
|
|
sind\&. Die Ausgabe wird normalerweise nach dem Scan mit Werkzeugen wie
|
|
grep,
|
|
awk
|
|
und
|
|
Perl
|
|
angepasst, aber dieses Merkmal wurde auf \(:uberw\(:altigend vielfachen Wunsch hinzugef\(:ugt\&. Geben Sie
|
|
\fB\-\-open\fR
|
|
an, um nur
|
|
offene,
|
|
offene|gefilterte
|
|
und
|
|
ungefilterte
|
|
Ports zu sehen\&. Diese drei Ports werden ganz wie gew\(:ohnlich behandelt, d\&.h\&. dass
|
|
offen|gefiltert
|
|
und
|
|
ungefiltert
|
|
in Z\(:ahlungen zusammengefasst werden, wenn es eine sehr gro\(sse Anzahl davon gibt\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-iflist\fR (liste Schnittstellen und Routen auf) .\" --iflist
|
|
.RS 4
|
|
Gibt die Liste der Schnittstellen und Systemrouten aus, die Nmap entdeckt hat\&. Das ist hilfreich bei der Fehlersuche bei Routing\-Problemen oder fehlerhaften Ger\(:atebeschreibungen (z\&.B\&. wenn Nmap eine PPP\-Verbindung als Ethernet behandelt)\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-log\-errors\fR (protokolliere Fehler/Warnungen in eine Datei im normalen Ausgabeformat) .\" --log-errors
|
|
.RS 4
|
|
Von Nmap ausgegebene Warnungen und Fehlermeldungen gehen normalerweise nur auf den Bildschirm (interaktive Ausgabe), was die Ordnung aller Ausgabedateien im normalen Format (\(:ublicherweise mit
|
|
\fB\-oN\fR
|
|
angegeben) nicht st\(:ort\&. Wenn Sie diese Meldungen in den angegebenen normalen Ausgabedateien wirklich sehen m\(:ochten, k\(:onnen Sie diese Option benutzen\&. Diese ist dann hilfreich, wenn Sie die interaktive Ausgabe nicht \(:ubersehen oder wenn Sie Fehler beim Debugging speichern m\(:ochten\&. Die Fehlermeldungen und Warnungen werden auch im interaktiven Modus weiterhin erscheinen\&. Bei den meisten Fehlern bez\(:uglich schlechter Kommandozeilenargumente wird das nicht funktionieren, da Nmap seine Ausgabedateien eventuell noch nicht initialisiert hat\&. Au\(sserdem benutzen einige Nmap\-Fehlermeldungen und \-Warnungen ein anderes System, das diese Option noch nicht unterst\(:utzt\&.
|
|
.sp
|
|
Eine Alternative zu
|
|
\fB\-\-log\-errors\fR
|
|
ist die Umleitung der interaktiven Ausgabe (inklusive des Standardfehlerstroms) in eine Datei\&. Die meisten Unix\-Shells machen einem diesen Ansatz leicht, aber auf Windows kann er schwierig sein\&.
|
|
.RE
|
|
.PP
|
|
\fBWeitere Ausgabeoptionen\fR
|
|
.PP
|
|
\fB\-\-append\-output\fR (an Ausgabedateien hinzuf\(:ugen, statt sie zu \(:uberschreiben) .\" --append-output
|
|
.RS 4
|
|
Wenn Sie einen Dateinamen f\(:ur ein Ausgabeformat wie z\&.B\&.
|
|
\fB\-oX\fR
|
|
oder
|
|
\fB\-oN\fR
|
|
angeben, wird diese Datei standardm\(:a\(ssig \(:uberschrieben\&. Wenn Sie deren Inhalt lieber behalten und die neuen Ergebnisse anh\(:angen m\(:ochten, benutzen Sie die Option
|
|
\fB\-\-append\-output\fR\&. Dann wird bei allen angegebenen Ausgabedateinamen dieses Nmap\-Aufrufs an die Dateien angeh\(:angt, statt sie zu \(:uberschreiben\&. Mit XML\-Scandaten (\fB\-oX\fR) funktioniert das nicht so gut, da die erzeugte Datei im Allgemeinen nicht mehr sauber geparst wird, es sei denn, Sie reparieren sie von Hand\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-resume \fR\fB\fIfilename\fR\fR (abgebrochenen Scan fortsetzen) .\" --resume .\" Scans fortsetzen
|
|
.RS 4
|
|
Manche umfangreichen Nmap\-L\(:aufe ben\(:otigen sehr viel Zeit \(en in der Gr\(:o\(ssenordnung von Tagen\&. Solche Scans laufen nicht immer bis zum Ende\&. Vielleicht gibt es Beschr\(:ankungen, die verhindern, dass man Nmap w\(:ahrend der normalen Arbeitszeit ausf\(:uhren kann, das Netzwerk k\(:onnte abst\(:urzen, der Rechner, auf dem Nmap l\(:auft, k\(:onnte einen geplanten oder ungeplanten Neustart erleben oder Nmap selbst k\(:onnte abst\(:urzen\&. Der Administrator, der Nmap ausf\(:uhrt, k\(:onnte es auch aus irgendeinem anderen Grund abbrechen, indem er
|
|
ctrl\-C
|
|
eingibt\&. Und den ganzen Scan von vorne neu zu starten, ist eventuell nicht w\(:unschenswert\&. Wenn ein normales (\fB\-oN\fR) oder ein grepbares (\fB\-oG\fR) Protokoll gef\(:uhrt wurde, kann der Benutzer Nmap jedoch bitten, den Scan bei dem Ziel fortzusetzen, an dem es beim Abbruch gearbeitet hat\&. Geben Sie einfach die Option
|
|
\fB\-\-resume\fR
|
|
an und \(:ubergeben Sie die normale/grepbare Ausgabedatei als Argument\&. Andere Argumente sind nicht erlaubt, da Nmap die Ausgabedatei parst, um dieselben Argumente zu benutzen, die zuvor benutzt wurden\&. Rufen Sie Nmap einfach als
|
|
\fBnmap \-\-resume \fR\fB\fIlogfilename\fR\fR
|
|
auf\&. Nmap f\(:ugt neue Ergebnisse dann an die Datendateien an, die im vorherigen Lauf angegeben wurden\&. Diese Fortsetzung funktioniert nicht aus XML\-Ausgabedateien, weil es schwierig w\(:are, die zwei L\(:aufe in einer g\(:ultigen XML\-Datei zu kombinieren\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-stylesheet \fR\fB\fIpath or URL\fR\fR (setze XSL\-Stylesheet, um eine XML\-Ausgabe zu transformieren) .\" --stylesheet
|
|
.RS 4
|
|
Die Nmap\-Distribution enth\(:alt ein XSL\-Stylesheet.\" XSL.\" Stylesheet
|
|
namens
|
|
nmap\&.xsl.\" nmap.xsl
|
|
zum Betrachten oder \(:Ubersetzen einer XML\-Ausgabe nach HTML\&.
|
|
.\" HTML aus XML-Ausgabe
|
|
Die XML\-Ausgabe enth\(:alt eine
|
|
xml\-stylesheet\-Anweisung, die auf
|
|
nmap\&.xml
|
|
an der Stelle verweist, wo es von Nmap urspr\(:unglich installiert wurde (oder im aktuellen Arbeitsverzeichnis unter Windows)\&. Laden Sie einfach Nmaps XML\-Ausgabe in einem modernen Webbrowser, und er sollte
|
|
nmap\&.xsl
|
|
im Dateisystem finden und benutzen, um die Ergebnisse darzustellen\&. Wenn Sie ein anderes Stylesheet benutzen m\(:ochten, geben Sie es als Argument f\(:ur
|
|
\fB\-\-stylesheet\fR
|
|
an\&. Dabei m\(:ussen Sie den vollst\(:andigen Pfadnamen oder die URL angeben\&. Sehr h\(:aufig wird
|
|
\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR
|
|
benutzt\&. Das sagt einem Browser, dass er die neueste Version des Stylesheets von Nmap\&.Org laden soll\&. Die Option
|
|
\fB\-\-webxml\fR
|
|
macht dasselbe, verlangt aber weniger Tipparbeit und Merkf\(:ahigkeit\&. Wenn man das XSL von Nmap\&.Org l\(:adt, wird es einfacher, die Ergebnisse auf einem Rechner anzuschauen, auf dem kein Nmap (und folglich auch kein
|
|
nmap\&.xsl) installiert ist\&. Daher ist die URL oft n\(:utzlicher, doch aus Datenschutzgr\(:unden wird standardm\(:a\(ssig das
|
|
nmap\&.xsl
|
|
im lokalen Dateisystem benutzt\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-webxml\fR (lade Stylesheet von Nmap\&.Org) .\" --webxml
|
|
.RS 4
|
|
Diese bequeme Option ist nur ein Alias f\(:ur
|
|
\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-no\-stylesheet\fR (lasse XSL\-Stylesheet\-Deklaration im XML weg) .\" --no-stylesheet
|
|
.RS 4
|
|
Geben Sie diese Option an, wenn Nmap in seiner XML\-Ausgabe auf keinerlei XSL\-Stylesheet verweisen soll\&. Die
|
|
xml\-stylesheet\-Anweisung wird dann weggelassen\&.
|
|
.RE
|
|
.\"
|
|
.SH "VERSCHIEDENE OPTIONEN"
|
|
.PP
|
|
Dieser Abschnitt beschreibt einige wichtige (und weniger wichtige) Optionen, f\(:ur die es keinen anderen richtig passenden Ort gibt\&.
|
|
.PP
|
|
\fB\-6\fR (schaltet IPv6\-Scans ein) .\" -6 .\" IPv6
|
|
.RS 4
|
|
Seit 2002 unterst\(:utzt Nmap bei seinen beliebtesten Features IPv6\&. Insbesondere das Ping\-Scanning (nur f\(:ur TCP), Connect\-Scanning und die Versionserkennung unterst\(:utzen IPv6\&. Die Befehlssyntax ist die \(:ubliche, nur dass man auch die Option
|
|
\fB\-6\fR
|
|
angibt\&. Nat\(:urlich m\(:ussen Sie die IPv6\-Syntax angeben, wenn Sie eine Adresse statt eines Hostnamens angeben\&. Eine Adresse k\(:onnte wie folgt aussehen:
|
|
3ffe:7501:4819:2000:210:f3ff:fe03:14d0, d\&.h\&. es empfehlen sich Hostnamen\&. Die Ausgabe sieht genauso aus wie \(:ublich\&. Nur die IPv6\-Adresse in der Zeile der
|
|
\(Bqinteressanten Ports\(lq
|
|
deutet auf IPv6\&.
|
|
.sp
|
|
Zwar hat IPv6 die Welt nicht gerade im Sturm erobert, aber in einigen (besonders asiatischen) L\(:andern wird es stark eingesetzt, und von den meisten modernen Betriebssystemen wird es unterst\(:utzt\&. Um Nmap mit IPv6 zu benutzen, m\(:ussen sowohl die Quelle als auch das Ziel Ihres Scans f\(:ur IPv6 konfiguriert sein\&. Falls Ihnen Ihr ISP (so wie die meisten) keine IPv6\-Adressen bereitstellt, gibt es frei verf\(:ugbare sogenannte Tunnel\-Broker,.\" IPv6-Tunnel-Broker
|
|
die mit Nmap funktionieren\&. Weitere Tunnel\-Broker sind
|
|
\m[blue]\fBin Wikipedia aufgelistet\fR\m[]\&\s-2\u[12]\d\s+2\&. Ein weiterer freier Ansatz sind 6to4\-Tunnels\&.
|
|
.RE
|
|
.PP
|
|
\fB\-A\fR (aggressive Scan\-Optionen) .\" -A
|
|
.RS 4
|
|
Diese Option schaltet zus\(:atzlich erweiterte und aggressive Optionen ein\&. Ich habe noch nicht entschieden, wof\(:ur sie genau steht\&. Im Moment schaltet sie die Betriebssystemerkennung (\fB\-O\fR), die Versionserkennung (\fB\-sV\fR), das Scannen mit Scripts (\fB\-sC\fR) und traceroute (\fB\-\-traceroute\fR) ein\&.
|
|
.\" -A: eingeschaltete Merkmale von
|
|
In der Zukunft kommen vielleicht noch weitere Eigenschaften hinzu\&. Ziel ist es, einen umfassenden Satz von Scan\-Optionen zu aktivieren, ohne dass man sich viele Flags merken muss\&. Weil aber das scriptbasierte Scannen mit dem Standardsatz als aufdringlich betrachtet wird, sollten Sie
|
|
\fB\-A\fR
|
|
nicht ohne Genehmigung auf Zielnetzwerke loslassen\&. Diese Option aktiviert nur Eigenschaften, aber keine Optionen f\(:ur das Timing (z\&.B\&.
|
|
\fB\-T4\fR) oder die Ausf\(:uhrlichkeit (\fB\-v\fR), die Sie eventuell auch benutzen m\(:ochten\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-datadir \fR\fB\fIdirectoryname\fR\fR (gibt benutzerdefinierten Ort f\(:ur Nmap\-Datendateien an) .\" --datadir
|
|
.RS 4
|
|
Nmap erh\(:alt einige spezielle Daten zur Laufzeit aus Dateien namens
|
|
nmap\-service\-probes,
|
|
nmap\-services,
|
|
nmap\-protocols,
|
|
nmap\-rpc,
|
|
nmap\-mac\-prefixes
|
|
und
|
|
nmap\-os\-db\&. Falls der Ort einer dieser Dateien angegeben wurde (mit den Optionen
|
|
\fB\-\-servicedb\fR
|
|
oder
|
|
\fB\-\-versiondb\fR), wird dieser Ort f\(:ur diese Datei benutzt\&. Danach sucht Nmap diese Dateien im Verzeichnis, das mit der Option
|
|
\fB\-\-datadir\fR
|
|
angegeben wurde (sofern vorhanden)\&. Dateien, die dort nicht gefunden werden, werden in einem Verzeichnis gesucht, das durch die Umgebungsvariable NMAPDIR angegeben wird.\" NMAPDIR Umgebungsvariable\&. Danach kommt
|
|
~/\&.nmap.\" .nmap Verzeichnis
|
|
f\(:ur echte und effektive UIDs (nur bei POSIX\-Systemen) oder der Ort des ausf\(:uhrbaren Nmap\-Programms (nur unter Win32) und dann ein bei der Kompilierung angegebener Ort wie z\&.B\&.
|
|
/usr/local/share/nmap
|
|
oder
|
|
/usr/share/nmap\&. Als letzte Rettung sucht Nmap im aktuellen Arbeitsverzeichnis\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-servicedb \fR\fB\fIservices file\fR\fR (gibt benutzerdefinierte Dienstedatei an) .\" --servicedb
|
|
.RS 4
|
|
Verlangt von Nmap, die angegebene Dienstedatei zu benutzen statt der Datendatei
|
|
nmap\-services, die in Nmap enthalten ist\&. Bei dieser Option wird au\(sserdem auch ein schneller Scan (\fB\-F\fR) benutzt\&. Weitere Details zu Nmaps Datendateien finden Sie in der Beschreibung zu
|
|
\fB\-\-datadir\fR\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-versiondb \fR\fB\fIservice probes file\fR\fR (gibt benutzerdefinierte Dienstepakete an) .\" --versiondb
|
|
.RS 4
|
|
Verlangt von Nmap, die angegebene Dienstepaketedatei zu benutzen statt der Datendatei
|
|
nmap\-service\-probes, die in Nmap enthalten ist\&. Weitere Details zu Nmaps Datendateien finden Sie in der Beschreibung zu
|
|
\fB\-\-datadir\fR\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-send\-eth\fR (sendet rohe Ethernet\-Pakete) .\" --send-eth
|
|
.RS 4
|
|
Verlangt von Nmap, Pakete auf der rohen Ethernet\-(Datenlink\-)Schicht zu schicken, statt auf der h\(:oheren IP\-(Netzwerk\-)Schicht\&. Nmap w\(:ahlt standardm\(:a\(ssig diejenige, die im Allgemeinen die beste f\(:ur die gegebene Plattform ist\&. Rohe Sockets (IP\-Schicht).\" rohe Sockets
|
|
sind im Allgemeinen auf Unix\-Rechnern am effizientesten, w\(:ahrend unter Windows Ethernet\-Rahmen ben\(:otigt werden, da Microsoft keine rohen Sockets unterst\(:utzt\&. Trotz dieser Option benutzt Nmap rohe IP\-Pakete unter Unix, wenn es keine andere Wahl hat (z\&.B\&. Verbindungen \(:uber etwas anderes als Ethernet)\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-send\-ip\fR (sendet auf der rohen IP\-Schicht) .\" --send-ip
|
|
.RS 4
|
|
Verlangt von Nmap, Pakete \(:uber rohe IP\-Sockets zu senden, statt \(:uber low\-level Ethernet\-Rahmen\&. Diese Option ist das Komplement zur weiter oben beschriebenen Option
|
|
\fB\-\-send\-eth\fR\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-privileged\fR (nimmt an, dass der Benutzer alle Sonderrechte genie\(sst) .\" --privileged
|
|
.RS 4
|
|
Sagt Nmap, dass es davon ausgehen soll, dass es \(:uber gen\(:ugend Rechte verf\(:ugt, um \(:uber rohe Sockets zu senden, Paket\-Sniffing und \(:ahnliche Operationen zu betreiben, die auf Unix\-Rechnern normalerweise root\-Rechte.\" Benutzer mit Sonderrechten.\" autorisierte Benutzer
|
|
ben\(:otigen\&. Standardm\(:a\(ssig terminiert Nmap, wenn solche Operationen verlangt werden, aber
|
|
\fBgeteuid\fR
|
|
nicht null ist\&.
|
|
\fB\-\-privileged\fR
|
|
ist n\(:utzlich bei Linux\-Kernel\-Capabilities und \(:ahnlichen Systemen, die so konfiguriert sein k\(:onnen, dass sie Benutzern ohne Sonderrechte erlauben, rohe Paket\-Scans durchzuf\(:uhren\&. Vergewissern Sie sich, dass Sie diese Option vor weiteren Optionen angeben, die Sonderrechte ben\(:otigen (SYN\-Scan, Betriebssystemerkennung usw\&.)\&. Als \(:aquivalente Alternative zur Option
|
|
\fB\-\-privileged\fR
|
|
kann die Umgebungsvariable
|
|
\fBNMAP_PRIVILEGED\fR.\" NMAP_PRIVILEGED Umgebungsvariable
|
|
gesetzt werden\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-unprivileged\fR (nimmt an, dass der Benutzer keine Sonderrechte f\(:ur rohe Sockets genie\(sst) .\" --unprivileged .\" Benutzer ohne Sonderrechte
|
|
.RS 4
|
|
Diese Option ist das Gegenteil von
|
|
\fB\-\-privileged\fR\&. Sie sagt Nmap, dass es den Benutzer so behandeln soll, als gen\(:osse er keine Sonderrechte f\(:ur rohe Sockets und Sniffing\&. Das ist n\(:utzlich beim Testen, Debugging oder falls die M\(:oglichkeiten des rohen Netzwerkzugriffs auf Ihrem Betriebssystem vor\(:ubergehend irgendwie defekt sind\&. Als \(:aquivalente Alternative zur Option
|
|
\fB\-\-unprivileged\fR
|
|
kann die Umgebungsvariable
|
|
\fBNMAP_UNPRIVILEGED\fR.\" NMAP_UNPRIVILEGED Umgebungsvariable
|
|
gesetzt werden\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-release\-memory\fR (gibt Speicher vor Terminierung frei) .\" --release-memory
|
|
.RS 4
|
|
Diese Option ist nur bei der Suche nach Speicherlecks n\(:utzlich\&. Sie bewirkt, dass Nmap den von ihm belegten Speicher direkt vor seiner Terminierung freigibt, damit man echte Speicherlecks einfacher finden kann\&. Normalerweise macht Nmap das nicht, weil es das Betriebssystem ohnehin macht, wenn es den Prozess terminiert\&.
|
|
.RE
|
|
.PP
|
|
\fB\-V\fR; \fB\-\-version\fR (gibt Versionsnummer aus) .\" -V .\" --version
|
|
.RS 4
|
|
Gibt Nmaps Versionsnummer aus und terminiert\&.
|
|
.RE
|
|
.PP
|
|
\fB\-h\fR; \fB\-\-help\fR (gibt zusammengefasste Hilfeseite aus) .\" -h .\" --help
|
|
.RS 4
|
|
Gibt eine kurze Hilfeseite mit den am meisten benutzten Optionen aus\&. Sie kommt auch dann, wenn man Nmap ganz ohne Argumente startet\&.
|
|
.RE
|
|
.SH "LAUFZEIT-INTERAKTION"
|
|
.PP
|
|
W\(:ahrend der Ausf\(:uhrung von Nmap wird jeder Tastendruck abgefangen\&. Das erm\(:oglicht Ihnen, mit dem Programm zu interagieren, ohne es abzubrechen und neu zu starten\&. Bestimmte Spezialtasten \(:andern Optionen, w\(:ahrend alle anderen Tasten eine Statusmeldung \(:uber den Scan ausgeben\&. Konvention ist, dass der Ausgabeumfang durch
|
|
\fIKleinbuchstaben vergr\(:o\(ssert\fR
|
|
und durch
|
|
\fIGro\(ssbuchstaben verkleinert\fR
|
|
wird\&. Sie k\(:onnen auch \(oq\fI?\fR\(cq dr\(:ucken, um eine Hilfe zu erhalten\&.
|
|
.PP
|
|
\fBv\fR / \fBV\fR
|
|
.RS 4
|
|
Vergr\(:o\(ssert/verkleinert die Ausf\(:uhrlichkeit
|
|
.RE
|
|
.PP
|
|
\fBd\fR / \fBD\fR
|
|
.RS 4
|
|
Vergr\(:o\(ssert/verkleinert die Debugging\-Stufe
|
|
.RE
|
|
.PP
|
|
\fBp\fR / \fBP\fR
|
|
.RS 4
|
|
Schaltet Paketverfolgung ein/aus
|
|
.RE
|
|
.PP
|
|
\fB?\fR
|
|
.RS 4
|
|
Gibt einen Hilfeschirm zur Laufzeit\-Interaktion aus
|
|
.RE
|
|
.PP
|
|
Alles andere
|
|
.RS 4
|
|
Gibt eine Statusmeldung wie die folgende aus:
|
|
.sp
|
|
Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan
|
|
.sp
|
|
Service scan Timing: About 28\&.00% done; ETC: 16:18 (0:00:15 remaining)
|
|
.RE
|
|
.SH "BEISPIELE"
|
|
.PP
|
|
Hier sind einige Anwendungsbeispiele f\(:ur Nmap, von einfachen und routinem\(:a\(ssigen bis zu etwas komplexeren und esoterischen\&. Um die Sache etwas konkreter zu machen, werden einige echte IP\-Adressen und Domainnamen benutzt\&. Diese sollten Sie mit Adressen/Namen aus
|
|
\fIIhrem eigenen Netzwerk\fR
|
|
ersetzen\&. Auch wenn ich nicht der Meinung bin, dass Port\-Scans anderer Netzwerke illegal sind oder sein sollten, m\(:ogen manche Netzwerkadministratoren es nicht, wenn ihre Netzwerke unverlangt gescannt werden, und k\(:onnten sich beschweren\&. Der beste Ansatz ist der, sich zuerst eine Genehmigung zu verschaffen\&.
|
|
.PP
|
|
Zu Testzwecken haben Sie die Genehmigung, den Host
|
|
scanme\&.nmap\&.org
|
|
zu scannen\&. Diese Genehmigung gilt nur f\(:ur das Scannen mit Nmap und nicht f\(:ur das Testen von Exploits oder Denial\-of\-Service\-Angriffen\&. Bitte f\(:uhren Sie nicht mehr als ein Dutzend Scans pro Tag auf diesem Host durch, um die Bandbreite nicht zu ersch\(:opfen\&. Falls diese freie Dienstleistung missbraucht wird, wird sie abgeschaltet, und Nmap wird dann
|
|
Failed to resolve given hostname/IP: scanme\&.nmap\&.org
|
|
ausgeben\&. Diese Genehmigung gilt auch f\(:ur die Hosts
|
|
scanme2\&.nmap\&.org,
|
|
scanme3\&.nmap\&.org
|
|
usw\&., auch wenn diese Hosts noch nicht existieren\&.
|
|
.PP
|
|
.\" -v: Beispiel\fBnmap \-v scanme\&.nmap\&.org\fR
|
|
.PP
|
|
Diese Option scannt alle reservierten TCP\-Ports auf dem Rechner
|
|
scanme\&.nmap\&.org\&. Die Option
|
|
\fB\-v\fR
|
|
schaltet den ausf\(:uhrlichen Modus an\&.
|
|
.PP
|
|
.\" -sS: Beispiel.\" -O: Beispiel\fBnmap \-sS \-O scanme\&.nmap\&.org/24\fR
|
|
.PP
|
|
Startet einen Stealth\-SYN\-Scan auf allen aktiven Rechnern unter den 256 IPs im Netzwerk der Gr\(:o\(sse
|
|
\(BqKlasse C\(lq, in dem Scanme sitzt\&. Es versucht auch herauszufinden, welches Betriebssystem auf jedem aktiven Host l\(:auft\&. Wegen des SYN\-Scans und der Betriebssystemerkennung sind dazu root\-Rechte notwendig\&.
|
|
.PP
|
|
.\" -p: Beispiel\fBnmap \-sV \-p 22,53,110,143,4564 198\&.116\&.0\-255\&.1\-127\fR
|
|
.PP
|
|
Startet eine Host\-Auflistung und einen TCP\-Scan in der ersten H\(:alfte von allen 255 m\(:oglichen acht\-Bit\-Unternetzen im Klasse\-B\-Adressraum 198\&.116\&. Dabei wird getestet, ob die Systeme SSH, DNS, POP3 oder IMAP auf ihren Standardports laufen haben oder irgendetwas auf Port 4564\&. Falls einer dieser Ports offen ist, wird eine Versionserkennung benutzt, um festzustellen, welche Anwendung darauf l\(:auft\&.
|
|
.PP
|
|
.\" -iR: Beispiel.\" -PN: Beispiel\fBnmap \-v \-iR 100000 \-PN \-p 80\fR
|
|
.PP
|
|
Verlangt von Nmap, 100\&.000 Hosts zuf\(:allig auszuw\(:ahlen und sie nach Webservern (Port 80) zu scannen\&. Eine Host\-Auflistung wird mit
|
|
\fB\-PN\fR
|
|
unterbunden, weil es Verschwendung ist, zuerst eine Reihe von Testpaketen zu senden, um festzustellen, ob ein Host aktiv ist, wenn Sie auf jedem Zielhost ohnehin nur einen Port testen\&.
|
|
.PP
|
|
.\" -oX: Beispiel.\" -oG: Beispiel\fBnmap \-PN \-p80 \-oX logs/pb\-port80scan\&.xml \-oG logs/pb\-port80scan\&.gnmap 216\&.163\&.128\&.20/20\fR
|
|
.PP
|
|
Das scannt 4096 IPs nach Webservern (ohne sie anzupingen) und speichert die Ausgabe im grepbaren und im XML\-Format\&.
|
|
.SH "DAS NMAP-BUCH"
|
|
.PP
|
|
Auch wenn dieser Reference Guide alle wesentlichen Nmap\-Optionen genau beschreibt, kann er nicht vollst\(:andig zeigen, wie man diese Features anwendet, um Aufgaben der realen Welt zu l\(:osen\&. Zu diesem Zweck haben wir das Buch
|
|
Nmap Network Scanning: The Official Nmap Project Guide to Network Discovery and Security Scanning\&.
|
|
Es zeigt, wie man Firewalls und Intrusion Detection\-Systeme unterwandert, die Performance von Nmap optimiert, und wie man h\(:aufige Netzwerkaufgaben mit der Nmap Scripting Engine automatisiert\&. Au\(sserdem enth\(:alt es Tipps und Anleitungen f\(:ur h\(:aufige Nmap\-Aufgaben wie die Netzwerkinventarisierung, Penetrationstests, die Erkennung schurkischer Wireless Access Points und das Verhindern von Wurmausbr\(:uchen im Netzwerk\&. Dabei zeigt es mit Beispielen und Diagrammen, wie die Kommunikation auf der Leitung aussieht\&. Mehr als die H\(:alfte des Buches ist online frei verf\(:ugbar\&. Weitere Informationen finden Sie unter
|
|
\m[blue]\fB\%https://nmap.org/book\fR\m[]\&.
|
|
.PP
|
|
Die deutsche \(:Ubersetzung dieses Buches von Dinu Gherman ist im Mai 2009 unter dem Titel
|
|
\m[blue]\fBNmap: Netzwerke scannen, analysieren und absichern\fR\m[]\&\s-2\u[14]\d\s+2
|
|
im
|
|
\m[blue]\fBOpen Source Press\fR\m[]\&\s-2\u[15]\d\s+2\-Verlag erschienen\&.
|
|
.SH "FEHLER"
|
|
.\" Fehlerberichte
|
|
.PP
|
|
Wie sein Autor ist auch Nmap selbst nicht perfekt\&. Aber Sie k\(:onnen helfen, es zu verbessern, indem Sie Fehlerberichte schicken oder sogar Patches schreiben\&. Falls Nmap sich nicht wie erwartet verh\(:alt, sollten Sie zuerst auf die neueste Version aktualisieren, die unter
|
|
\m[blue]\fB\%https://nmap.org\fR\m[]
|
|
verf\(:ugbar ist\&. Wenn das Problem anh\(:alt, versuchen Sie herauszufinden, ob es bereits erkannt und bearbeitet wurde\&. Suchen Sie nach der Fehlermeldung auf unserer Suchseite unter
|
|
\m[blue]\fB\%http://insecure.org/search.html\fR\m[]
|
|
oder bei Google\&. St\(:obern Sie in den
|
|
nmap\-dev\-Archiven unter
|
|
\m[blue]\fB\%http://seclists.org/\fR\m[]\&..\" nmap-dev Mailingliste
|
|
Lesen Sie auch diese Manpage vollst\(:andig\&. Wenn Sie keine L\(:osung finden, schicken Sie einen Fehlerbericht per E\-Mail an
|
|
<dev@nmap\&.org>\&. Beschreiben Sie darin bitte alles, was Sie \(:uber das Problem wissen, inklusive der Nmap\-Version und der Betriebssystemversion, unter der Sie Nmap einsetzen\&. Berichte von Problemen und Fragen zur Anwendung von Nmap werden sehr viel wahrscheinlicher beantwortet, wenn sie an
|
|
<dev@nmap\&.org>
|
|
geschickt werden statt direkt an Fyodor\&. Wenn Sie sich erst auf der nmap\-dev\-Liste eintragen, bevor Sie Ihre E\-Mail schicken, entgeht Ihre Nachricht auch der Moderation und kommt schneller an\&. Eintragen k\(:onnen Sie sich unter
|
|
\m[blue]\fB\%https://nmap.org/mailman/listinfo/dev\fR\m[]\&.
|
|
.PP
|
|
Code\-Patches zur Behebung von Fehlern sind noch besser als Fehlerberichte\&. Eine einfache Anweisung f\(:ur die Erstellung von Patch\-Dateien mit Ihren \(:Anderungen ist unter
|
|
\m[blue]\fB\%https://nmap.org/data/HACKING\fR\m[]
|
|
verf\(:ugbar\&. Patches k\(:onnen an
|
|
nmap\-dev
|
|
(empfohlen) oder direkt an Fyodor geschickt werden\&.
|
|
.SH "AUTOR"
|
|
.PP
|
|
Fyodor
|
|
<fyodor@nmap\&.org>
|
|
(\m[blue]\fB\%http://insecure.org\fR\m[])
|
|
.PP
|
|
\(:Uber die Jahre haben hunderte von Menschen wertvolle Beitr\(:age zu Nmap geleistet\&. Sie sind detailliert in der Datei
|
|
CHANGELOG.\" changelog
|
|
aufgef\(:uhrt, die mit dem Nmap\-Quellcode verbreitet wird und auch unter
|
|
\m[blue]\fB\%https://nmap.org/changelog.html\fR\m[]
|
|
verf\(:ugbar ist\&.
|
|
.SH ""
|
|
.PP
|
|
Sorry, this section has not yet been translated to German\&. Please see the
|
|
\m[blue]\fBEnglish version\fR\m[]\&\s-2\u[16]\d\s+2\&.
|
|
.SH "FU\(ssNOTEN"
|
|
.IP " 1." 4
|
|
RFC 1122
|
|
.RS 4
|
|
\%http://www.rfc-editor.org/rfc/rfc1122.txt
|
|
.RE
|
|
.IP " 2." 4
|
|
RFC 792
|
|
.RS 4
|
|
\%http://www.rfc-editor.org/rfc/rfc792.txt
|
|
.RE
|
|
.IP " 3." 4
|
|
RFC 1918
|
|
.RS 4
|
|
\%http://www.rfc-editor.org/rfc/rfc1918.txt
|
|
.RE
|
|
.IP " 4." 4
|
|
UDP
|
|
.RS 4
|
|
\%http://www.rfc-editor.org/rfc/rfc768.txt
|
|
.RE
|
|
.IP " 5." 4
|
|
TCP RFC
|
|
.RS 4
|
|
\%http://www.rfc-editor.org/rfc/rfc793.txt
|
|
.RE
|
|
.IP " 6." 4
|
|
RFC 959
|
|
.RS 4
|
|
\%http://www.rfc-editor.org/rfc/rfc959.txt
|
|
.RE
|
|
.IP " 7." 4
|
|
RFC 1323
|
|
.RS 4
|
|
\%http://www.rfc-editor.org/rfc/rfc1323.txt
|
|
.RE
|
|
.IP " 8." 4
|
|
Programmiersprache Lua
|
|
.RS 4
|
|
\%http://lua.org
|
|
.RE
|
|
.IP " 9." 4
|
|
IP-Protokoll
|
|
.RS 4
|
|
\%http://www.rfc-editor.org/rfc/rfc791.txt
|
|
.RE
|
|
.IP "10." 4
|
|
Nmap::Scanner
|
|
.RS 4
|
|
\%http://sourceforge.net/projects/nmap-scanner/
|
|
.RE
|
|
.IP "11." 4
|
|
Nmap::Parser
|
|
.RS 4
|
|
\%http://nmapparser.wordpress.com/
|
|
.RE
|
|
.IP "12." 4
|
|
in Wikipedia aufgelistet
|
|
.RS 4
|
|
\%http://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers
|
|
.RE
|
|
.IP "13." 4
|
|
Nmap Network Scanning: The Official
|
|
Nmap Project Guide to Network Discovery and Security
|
|
Scanning
|
|
.RS 4
|
|
\%https://nmap.org/book/
|
|
.RE
|
|
.IP "14." 4
|
|
Nmap: Netzwerke scannen, analysieren und absichern
|
|
.RS 4
|
|
\%https://www.opensourcepress.de/index.php?26&backPID=178&tt_products=270
|
|
.RE
|
|
.IP "15." 4
|
|
Open Source Press
|
|
.RS 4
|
|
\%http://www.opensourcepress.de
|
|
.RE
|
|
.IP "16." 4
|
|
English version
|
|
.RS 4
|
|
\%https://nmap.org/book/man-legal.html
|
|
.RE
|