Nmap network security scanner man page (German translation)
NMAP(1) NMAP(1)
NAME
nmap - Auswertungstool fuer Netzwerke und Security Scanner
SYNTAX
nmap [Scan-Typ(en)] [Optionen] <Host oder Netz #1 ...
[#N]>
BESCHREIBUNG
Nmap wurde entwickelt, um Systemadministratoren und
kuriosen Individuen die Moeglichkeit zu geben, ansprech
bare Systeme und die durch sie bereitgestellten Dienste in
grossen Netzwerken zu identifizieren. nmap unterstuetzt
eine Vielzahl verschiedener Scanning-Techniken, wie zum
Beispiel UDP, TCP connect(), TCP SYN (half open), FTP-
Proxy (bounce attack), Reverse-ident, ICMP (Ping-Such
lauf), FIN, ACK-Suchlauf, Xmas-Tree, SYN-Suchlauf, IP-Pro
tocol und Null-Scan. Siehe Absatz Scan-Typen fuer mehr
Informationen. Ebenso ermoeglicht nmap eine Vielzahl von
zusaetzlichen Moeglichkeiten, wie das Erkennen von
Betriebssystemen mittels TCP/IP-Fingerprinting, Stealth-
Scanning, dynamische Verzoegerungen und Uebertra
gungswiederholungs-Berechnungen, paralleles Scanning, Ent
decken abgeschalteter Systeme mittels parallelem Scanning,
Decoy-Scanning, entdecken von Port-Filtering, direktes
RPC-Scanning (ohne Portmapper), fragmentiertes Scanning
sowie flexible Ziel und Port Spezifizierung.
Ein Grossteil der Arbeit wurde in die Moeglichkeiten fuer
non-root Benutzer investiert. Leider benoetigen viele exo
tische Techniken (z.B. die Kernel-nahen raw sockets) root-
Privilegien. Aus diesem Grund sollte nmap stets als root
genutzt werden, sofern dies moeglich ist (natuerlich kein
setuid root).
Das Resultat eines nmap-Durchlaufs ist normalerweise eine
Liste saemtlicher interessanter Ports der gescannten Ger
aete (falls vorhanden). Sofern eine Zuweisung stattfinden
kann, benennt nmap die well-known Ports direkt mit ihrem
Service-Namen, Portnummer, Status und Protokoll. Der Sta
tus ist entweder 'open', 'filtered' oder 'unfiltered'.
Open (dt. offen) bedeutet, dass das Zielsystem auf diesem
Port Verbindungen anzunehmen in der Lage ist. Filtered
(dt. gefiltert) weist darauf hin, dass ein dediziertes
Firewall-System, TCP/IP-Filter oder Netzwerk-Element die
Arbeit von nmap behindert und somit keine verlaesslichen
Rueckschluesse gemacht werden koennen. Unfiltered (dt.
ungefiltert) heisst, dass nmap den Port kennt, jedoch beim
Zugriff keinerlei Filter-Mechanismen ausgemacht werden
konnten. Der ungefilterte Status wird in den meisten aller
Faelle vorhanden sein, weshalb ein solcher nur immer dann
ausgwiesen wird, wenn die meisten der gescannten Ports
gefiltert (engl. filtered) sind.
Jenachdem, welche Optionen angewandt wurden, ist nmap in
der Lage Auskunft ueber die folgenden Charakteristiken des
Zielsystems zu geben: Genutztes Betriebssystem, TCP-
Sequenznummern, Benutzername der an die Ports gebundene
Software, DNS-Name, ob es sich um ein Smurf-System handelt
und viele mehr.
OPTIONEN
Das Zusammenspiel verschiedener Optionen ist immer dann
moeglich, wenn dies auch Sinn macht. Einige Parameter
koennen nur in Verbindung mit spezifischen Scan-Methoden
genutzt werden. nmap versucht unlogische und nicht unter
stuetzte Kombinationen von Parametern abzufangen und den
Benutzer entsprechend zu warnen.
Falls Sie ungeduldig sind, koennen Sie den Abschnitt
Beispiele ueberspringen. Darin werden typische Befehl
seingaben gezeigt. Ebenso kann nmap -h ausgefuehrt werden,
um eine kurze Optionsreferenz ausgeben zu lassen.
SCAN-TYPEN
-sS TCP SYN-Scan: Diese Technik wird oft als "halb-
offen" (engl. "half-open") bezeichnet, da keine
volle TCP-Verbindung zustande kommt. Der Scanner
schickt ein TCP-Datagramm mit gesetzter SYN-Flagge
an das Zielsystem, so wie dies im Rahmen des Drei-
Wege-Handschlags von TCP normalerweise auch der
Fall ist. Nun wird auf eine positive Rueckmeldung
des Zielsystems gewartet. Kommt ein Paket mit
gesetzter SYN/ACK-Flagge zurueck, so wird der Ziel
port als im Status LISTENING (dt. abhoerend) iden
tifiziert. Im Gegenzug deutet ein RST-Datangramm
auf einen geschlossenen Port (engl. closed) hin.
Wird ein SYN/ACK-Datagramm entgegengenommen,
schickt nmap (bzw. der Betriebssystem-Kernel)
automatisch ein RST zurueck, um den Verbindungsauf
bau zu abzubrechen. Der primaere Vorteil dieser
Vorgehensweise ist, dass viele Systeme solcherlei
Zugriffe nicht protokollieren (Die meisten Applika
tionen interessieren sich nur fuer vollstaendig
etablierte Verbindungen). Leider setzt diese Scan-
Technik root-Privilegien voraus, da eine Gener
ierung verhaeltnismaessig exotischer Paket-Sequen
zen von Noeten ist. Dies ist die standardmaessige
Scan-Methode fuer priviligierte Benutzer.
-sT TCP connect()-Scan: Dies ist die klassische Form
des TCP-Portscannings. Der connect()-System-Call,
der das Betriebssystem zur Verfuegung stellt, wird
immer dann genutzt, wenn eine Verbindung zum Port
eines Zielsystems hergestellt werden soll. Befindet
sich der Zielport im Status LISTENING, so wird der
connect()-Zugriff erfolgreich ausfallen. Der
entscheidende Vorteil dieser Methode ist, dass
keine erweiterten Rechte zur Durchfuehrung
erforderlich sind. Jeder Benutzer der meisten UNIX-
Systeme ist in der Lage solcherlei Zugriffe
durchzufuehren.
Diese Scan-Technik ist einfach zu entdecken und
wird mit groesster Wahrscheinlichkeit in den Pro
tokoll-Dateien des Zielsystems auftauchen. Dies ist
der standardmaessig aktivierte Scan-Typ fuer
unprivilegierte Anwender.
-sF -sX -sN
Stealth FIN-, Xmas-Tree- oder Null-Scan-Modis: Es
gibt Momente, wo SYN-Scans nicht heimlich genug
ausfallen. Einige Firewall-Systeme (z.B. Packet-
Filter) sind in der Lage verdaechtige SYN-Aktivi
taeten zu erkennen; ebenso koennen Programme wie
Synlogger oder Courtney die SYN-Portscans als
solche ausweisen. Diese erweiterten Scan-Techniken
koennen somit in manchen Faellen ungehindert die
gewuenschten Resultate liefern.
Die Idee ist, dass geschlossene Ports auf solcher
lei Zugriffe mit einem RST-Datagramm antworten
muessten, waehrend ansprechbare Ports die Anfragen
ignorieren sollten (siehe RFC 793, S. 64). Der FIN-
Scan nutzt ein TCP-Datagramm mit gesetzter FIN-
Flagge, waehrend der Xmas-Tree-Scan die TCP-Flaggen
FIN, URG und PSH aktiviert. Der Null-Scan schaltet
alle optionalen Flags ab. Leider ignoriert einmal
mehr Microsoft die gaengigen Standards und reagiert
auf die exotischen Scan-Techniken ganz unerwartet.
Dies bedeutet, dass diese Scanning-Methoden nicht
gegen Windows 9x, ME, NT, 2000 und XP funktion
ieren. Auf der anderen Seite ist dies natuerlich
hervorragend, wenn es um das Identifizieren der
TCP/IP-Implementierung von Microsoft geht: Findet
einer dieser Scans einen offenen Port, so kann
davon ausgegangen werden, dass es sich beim Ziel
system nicht um ein Windows handelt - Im Gegenzug
deuten unrealistisch viele offene Ports auf eine
Windows-Maschine hin. Es gilt sich jedoch noch die
Meinung einer klassischen Scan-Methode (z.B. SYN)
einzuholen. Es gibt noch einige andere Betrieb
ssysteme, die sich aehnlich demjenigen von
Microsoft verhalten. Dies sind zum Beispiel Cisco,
BSDI, HP/UX, MVS und IRIX. All diese retournieren
ein Reset, auch wenn es sich um einen ansprechbaren
Port handelt. Mittlerweile ist diese knifflige
Unterscheidungs-Arbeit mittels exotischer Scanning-
Techniken eher weniger wichtig, da nmap eine
erweiterte Methode fuer das Erkennen des eingeset
zten Betriebssystems mitbringt.
-sP Ping-Scanning: Manchmal ist es lediglich gefragt,
welche Hosts in einem Netzwerk aktiv sind. nmap
kann diese Frage beantworten, indem eine ICMP echo
request-Anfrage an jede IP-Adresse im spezi
fizierten Netzwerk geschickt wird. Hosts, die mit
einer ICMP echo reply antworten, koennen als aktiv
ausgewiesen werden. Viele gewissenhafte Firewall-
und Systemadministratoren filtern bzw. verwerfen
unnoetigen ICMP-Verkehr. nmap greift sodann auf
eine andere Technik zurueck. Es wird ein TCP-Data
gramm mit gesetzter ACK-Flagge an einen potentiell
offenen Port des Zielsystems geschickt (standard
maessig TCP-Port 80). Wird ein RST zurueck
geschickt, so ist das Zielsystem vorhanden und
ansprechbar. Eine dritte Technik greift auf ein
SYN-Datagramm zurueck, das auf ein RST oder SYN/ACK
wartet. Alle non-root Benutzer fuehren einen con
nect()-Zugriff durch.
Standardmaessig (bei root-Benutzern) fuehrt nmap
beides - ICMP- und ACK-Technik - parallel durch.
Dies kann durch das Heranziehen der spaeter noch
detaillierter beschriebenen Option -P geaendert
werden.
Wichtig ist zu wissen, dass der Ping-Zugriff stan
dardmaessig stets erfolgt. Abhaengig der Erreich
barkeit eines Systems wird ein solches dann ges
cannt. Benutzen Sie diese Option lediglich dann,
wenn es um das Durchfuehren eines Ping-Suchlaufs (
ohne Portscan) geht.
-sU UDP-Scans: Diese Methode wird stets dann herangezo
gen, wenn es um das Identifizieren der offenen UDP-
Ports (siehe RFC 768) eines Systems geht. Diese
Technik basiert darauf, dass ein UDP-Datagramm mit
0 Byte an Nutzdaten an jeden Port des Zielsystems
geschickt wird. Erhalten wir eine ICMP port
unreachable-Nachricht, so ist der Zielport
geschlossen. Andererseits handelt es sich um einen
offenen Port.
Einige Leute denken, dass UDP-Scanning sinnlos ist.
Ich moechte in diesem Zusammenhang auf die Luecke
in Solaris' rpcbind hinweisen. rpcbind kann an
einem undokumentierten UDP-Port ueber 32770 gefun
den werden. Bei diesem Angriff und der vorangehen
den Auswertung ist es sodann zu einem hohen Grad
irrelevant, ob Port 111 durch eine Firewall block
iert wird oder nicht. Ebenso existiert das popu
laere, von cDc entwickelte Backdoor namens Back
Orifice, das durch einen frei waehlbaren UDP-Port
Windows-Maschinen kontrollieren laesst. Und nicht
zu vergessen die vielen potentiell verwundbaren
Dienste, die auf UDP zurueckgreifen: SNMP, TFTP,
NFS, etc.
Traurigerweise ist UDP-Scanning in den meisten
Faellen schmerzhaft langsam, seitdem viele Betrieb
ssystem-Entwickler der Empfehlung von RFC 1812
(Absatz 4.3.2.8) nachgekommen sind, die Anzahl aus
gehender ICMP-Fehlernachrichten zu limitieren. Zum
Beispiel definiert der Linux-Kernel (in
net/ipv4/icmp.h) die Anzahl ausgehender ICMP desti
nation unreachable-Fehlermeldungen auf 80 fuer 4
Sekunden, mit einer 1/4 Sekunde Zusatz fuer jeden
Uebertritt. Solaris weist einiges striktere Limi
tierungen auf (2 Nachrichten pro Sekunde), weshalb
ein UDP-Portscan gegen ein Solaris-System sehr
lange dauert. nmap ist in der Lage solcherlei Lim
itierungen zu erkennen und mit einem dynamischen
Verlangsamen der Geschwindigkeit zu reagieren. Dies
verhindert das Verstopfen des Netzwerks mit
unnoetigen Paketen, die sowieso vom Zielsystem
ignoriert werden wuerden.
Einmal mehr typisch, ignoriert Microsoft die
Empfehlungen des RFCs, weshalb eine Einschraenkung
ausgehender ICMP-Fehlermeldungen gaenzlich bei der
TCP/IP-Implementierung auf Windows 9x und NT fehlt.
Das scannen saemtlicher UDP-Ports auf einer Win
dows-Maschine ist somit kein groesseres Problem.
-sO IP protocol-Scans: Diese Methode kommt dann zum
Tragen, wenn herausgefunden werden will, welche IP-
Protokolle vom Zielsystem unterstuetzt werden.
Diese Technik basiert darauf, dass fuer jedes IP-
Protokoll ein RAW IP-Paket mit fehlendem Protokoll-
Header an das Zielsystem geschickt wird. Erhalten
wir eine ICMP protocol unreachable-Fehlermeldung,
so koennen wir davon ausgehen, dass das besagte
Protokoll nicht unterstuetzt wird. Faellt das
Resultat anders aus, kann mit einer Protokoll-
Unterstuetzung gerechnet werden. Es ist wichtig zu
bemerken, dass einige Betriebssysteme (z.B. AIX,
HP-UX und Digital UNIX) und Firewall-Loesungen auf
das Versenden der ICMP protocol unreachable-Fehler
meldungen gaenzlich verzichten. Das Resultat eines
solchen Verhaltens ist die durch nmap generierte
Ausgabe, dass saemtliche Protokolle "offen" sind.
Aufgrund dessen, dass diese Scan-Methode in ihren
Grundzuegen auf den Prinzipien des UDP-Portscan
nings aufbaut, spielt die Rate der potentiell
generierten ICMP-Fehlermeldungen eine beachtliche
Wichtigkeit. Da das IP-Protokoll Feld nur 8 Bits
hat, muessen lediglich 256 Protokolle gescannt wer
den, was sich in einem angemessenen Zeitrahmen
erledigen laesst.
-sI <Zombie-Host[:Zielport]>
Idlescan: Diese erweiterte Scan-Technik ermoeglicht
ein blindes Scannen der TCP-Port eines Ziels (dies
bedeutet, dass keinerlei Pakete mit der richtigen
IP-Absenderadresse verschickt werden). Stattdessen
wird eine einzigartige Attacke angewandt, die die
Berechenbarkeit der IP Fragmentation ID eines Zom
bie-Hosts ausnutzt. Intrusion Detection-Systeme
werden den Scan-Versuch dem spezifizierte Zombie-
System zuschreiben (welches ansprechbar sein und
bestimmte Kriterien erfuellen muss). Ich habe eine
Publikation zu diesem Thema verfasst, die sich
unter http://www.insecure.org/nmap/idlescan.html
findet.
Neben der vollkommenen Sicherheit, nicht direkt
erkannt werden zu koennen, ermoeglicht dieser Scan-
Typ das Erkennen von IP-basierenden Vertrauens
beziehungen zwischen Geraeten. Das Port-Listing
zeigt die offenen Ports aus der Sicht des Zombie-
Systems. Es ist sodann Moeglich das effektive
Zielsystem durch verschiedene Zombies scannen zu
lassen, die eine bestehende Vertrauensbeziehung
haben (via Router- oder Packetfilter-Regeln). Ganz
offensichtlich ist dies eine gewichtige Informa
tion, wenn es um das Priorisieren von Angriffszie
len geht. Andererseits muessten Penetration Tester
zuerst muehsam ein System kompromittieren, bis ver
laesslich gesagt werden kann, ob ueberhaupt die
erforderliche Vertrauensbeziehung besteht.
Durch einen Doppelpunkt laesst sich die Portnummer
des Zombiesystems definieren. Ohne diese Angabe
waehlt nmap den Standardport, der auch bei TCP-
Pings Verwendung findet (TCP-Port 80).
-sA ACK-Scan: Auf diese erweiterte Scan-Technik wird
normalerweise immer dann zurueckgegriffen, wenn es
um das Identifizieren eines Firewall-Regelwerks
geht. Zusaetzlich kann diese Methode eine Deter
minierung des Vorhandenseins einer Stateful Inspec
tion, die eingehende SYN-Pakete blockt,
ermoeglichen.
Dieser Scan-Typ schickt ein ACK-Paket (mit zufael
lig gewaehlten Bestaetigungs-/Sequenznummern) an
den spezifizierten Zielport. Kommt ein RST zurueck,
wird der besagte Port als "unfiltered" (dt. unge
filtert) eingestuft. Erhalten wir keine Rueckant
wort (oder kommt ein ICMP unreachable zurueck), so
weist nmap den Port als "filtered" (dt. gefiltert)
aus. Wichtig ist, dass nmap normalerweise keine
"unfiltered" ausgibt. So sind keine Ports in der
Ausgabe ein Indiz dafuer, dass alle Zugriffe
durchgekommen sind (und ein RST verursacht haben).
Dieser Scan wird die Ports nie in einem "open" (dt.
offenen) Status zeigen.
-sW Window-Scan: Diese erweiterte Scan-Technik ist dem
ACK-Scan sehr aehnlich. Ausser, dass hiermit
manchmal auch offene, ungefilterte und gefilterte
Ports durch eine Anomalie in der durch die Betrieb
ssysteme gewaehlten TCP window size entdeckt werden
koennen. Systeme, die gegen diese Attacke verwund
bar sind, sind einige Versionen von AIX, Amiga,
BeOS, BSDI, Cray, Tru64 UNIX, DG/UX, OpenVMS, Digi
tal UNIX, FreeBSD, HP-UX, OS/2, IRIX, MacOS,
NetBSD, OpenBSD, OpenStep, QNX, Rhapsody, SunOS
4.x, Ultrix, VAX and VxWorks. Siehe das Archiv der
nmap-Hackers Mailingliste fuer eine vollstaendige
Auflistung.
-sR RPC-Scan: Diese Methode arbeitet in Kombination mit
den meisten moeglichen Scan-Typen von nmap zusam
men. Jeder als offen identifizierte TCP- und UDP-
Port wird mit einer Vielzahl von SunRPC-Nullkomman
dos ueberflutet, um eine Identifizierung von RPC-
Ports vorzunehmen. Falls ein solcher gefunden
wurde, wird der Programmname und die Version ausge
lesen, sofern diese Information zur Verfuegung
gestellt wird. Diese Vorgehensweise ist ebenso mit
dem Heranziehen von 'rpcinfo -p' moeglich; beson
ders dann, wenn des Zielsystems Portmapper hinter
einer restriktiven Firewall steht oder durch einen
TCP-Wrapper geschuetzt wird. Decoy-Scans arbeiten
zur Zeit nicht mit RPC-Scans zusammen. Irgendwann
wird vielleicht Decoy-Scanning im Zusammenhang mit
UDP-RPC-Scans moeglich sein.
-sL List-Scan: Diese simple Methode generiert eine
Liste aller IP-Adressen und Hostnamen, ohne die
Zielsysteme direkt anzusprechen (Ping oder
Portscan). Eine Namensaufloesung ueber DNS findet
stets statt, sofern dies nicht durch das Her
anziehen von -n unterbunden wird.
-b <FTP-Relay Host>
FTP-Bounce Attacke: Ein interessantes "Feature" des
File Transport Protocols (RFC 959) ist die Unter
stuetzung von "Proxy"-FTP-Verbindungen. Mit anderen
Worten ist es moeglich, sich von boese.com auf
ziel.com zu verbinden und eine Datei ueberall hin
zu schicken. Nun, dies hat wohl ausgezeichnet funk
tioniert, als 1985 das besagte RFC geschrieben
wurde. In der heutigen Zeit ist es nicht mehr ohne
weiteres Moeglich, sich auf fremde FTP-Server zu
verbinden und nach Belieben Dateien zu versenden.
*Hobbit* schrieb 1995 folgendes zu dieser Schwach
stelle: "[This protocol flaw] can be used to post
virtually untraceable mail and news, hammer on
servers at various sites, fill up disks, try to hop
firewalls, and generally be annoying and hard to
track down at the same time." Bei dieser Scanning-
Methode wird ein als Proxy fungierender FTP-Server
genutzt, um die offenen Ports eines Zielsystems
ausfindig zu machen. Beispielsweise kann dadurch zu
einem hinter einer Firewall positionierten FTP-
Server verbunden werden, um danach interne, durch
das Firewall-Element gegen externe Zugriffe
geschuetzte Ports (z.B. die NetBIOS-Ports)
anzusprechen. Falls auf dem FTP-Server ein Verze
ichnis existiert, bei dem sowohl Lese- als auch
Schreibrechte vorhanden sind (z.B. /incoming),
kann eine semi-manuelle Uebergabe von Daten an die
Zielports durchgefuehrt werden (nmap nimmt einem
diese Arbeit nicht ab).
Das mit der Option '-b' uebergebene Argument, spez
ifiziert den als Proxy gewollten Host, wobei die
standard URL-Notation gilt. Das Format lautet
Benutzername:Passwort@Server:Port. Alles, ausser
Server ist optional. Wie eine Determinierung der
gegen diese Zugriffsform verwundbare Server
vorgenommen werden kann, kann in meinem Artikel in
Phrack 51 nachgelesen werden. Eine aktualisierte
Version ist auf der nmap Webseite (http://www.inse
cure.org/nmap) verfuegbar.
GENERELLE OPTIONEN
Keine der folgenden Optionen ist erforderlich.
Einige von ihnen koennen jedoch nuetzlich sein.
-P0 Verhindert das Pingen eines Hosts, bevor er ges
cannt wird. Dies ermoeglicht das Scannen von Netzw
erken, die keine ICMP echo requests (oder
responses) aufgrund einer restriktiv konfigurierten
Firewall zulassen. microsoft.com ist ein Beispiel
fuer ein solches Netzwerk, in dem diese Funktion
stets genutzt werden sollte. Gebrauchen Sie -P0
oder -PT80 wenn ein Portscan gegen microsoft.com
durchgefuehrt werden soll.
-PT Benutzt einen TCP-Ping, um die Erreichbarkeit eines
Hosts zu verifizieren. Anstatt ICMP echo request-
Abfragen zu verschicken und auf die entsprechenden
ICMP echo reply-Rueckantworten zu warten, wird auf
ein TCP-Datagramm mit gesetzter ACK-Flagge gesetzt.
Ansprechbare Systeme sollten mit einem RST
antworten. Diese Funktion ist immer dann anzuwen
den, wenn Systeme oder Netzwerke gescannt werden
sollen, die keine Erreichbarkeitsueberpruefung mit
tels ICMP zulassen und trotzdem zuerst die Erreich
barkeit identifiziert werden soll. Bei non-root
Benutzern wird connect() angewandt. Um den Zielport
des Zugriffs zu spezifizieren, kann -PT<Portnummer>
herangezogen werden. Der Standardport ist einmal
mehr TCP/80 (HTTP), da dieser eher selten durch
einen Filter gedeckt wird.
-PS Diese Option benutzt fuer root-Benutzer SYN
(Verbindungsanforderungen) anstatt ACK-Pakete.
Ansprechbare Hosts sollten mit einem RST (oder in
seltenen Faellen mit einem SYN/ACK) antworten. Das
Setzen des Zielports kann auf die selbe Art wie
beim zuvor erlaeuterten -PT umgesetzt werden.
-PI Diese Option nutzt einen klassischen Ping (ICMP
echo request), um die Erreichbarkeit von Systemen
und Broadcast-Adressen von Subnetzen zu identi
fizieren. Letztere sind extern erreichbare IP-
Adressen, die eine Umwandlung zu einem internen
Broadcast des Subnetzes durchfuehren. Solcherlei
sollten verhindert werden, denn sie sind Vorausset
zung fuer eine Reihe von Denial of Service-Attacken
(Smurf ist die bekannteste Variante).
-PP Benutzt eine ICMP timestamp-Anfrage (Typ 13, Code
0), um ansprechbare Hosts zu finden.
-PM Das Gleiche wie -PI und -PP , ausser, dass eine
ICMP address mask request (Typ 17, Code 0) zum Tra
gen kommt.
-PB Dies ist der standardmaessig gewaehlte Ping-Typus.
Er benutzt beide Techniken, ACK ( -PT ) und ICMP
echo requests ( -PI ), die jeweils parallel
durchgefuehrt werden. Auf diese Weise koennen Fire
wall-Elemente ausgetrickst werden, die eine der
beiden Protokolle (nicht beide) filtern. Der Ziel
port fuer den TCP-Zugriff kann auf die gleiche
Weise gesetzt werden, wie im zuvor erklaerten -PT.
-O Diese Option aktiviert das Identifizieren des am
Zielsystem eingesetzten Betriebssystems anhand des
TCP/IP-Fingerabdrucks (engl. TCP/IP fingerprint).
Es wird eine Anzahl spezifischer Tests umgesetzt,
die das typische Verhalten der jeweiligen TCP/IP-
Implementierungen erkennen koennen sollen. Die
gegebenen Informationen stellen quasi einen 'Fin
gerabdruck' dar, der mit der Datenbank der bekan
nten Betriebssystem-Fingerabdrucke (die nmap-os-
fingerprints Datei) verglichen wird.
Falls nmap nicht in der Lage ist, eine mehr oder
weniger eindeutige Identifikation des am Zielsystem
eingesetzten Betriebssystems vorzunehmen und die
gegebenen Bedingungen gut sind (mindestens ein
ansprechbarer Port), gibt nmap eine URL aus, bei
der neu gefundene Fingerprints eingesendet werden
koennen. Dies setzt natuerlich voraus, dass Sie
sich eindeutig im Klaren darueber sind, um was fuer
ein Betriebssystem es sich handelt. Durch diesen
Schritt koennen Sie aktiv an der Erweiterung der
Datenbank mithelfen, wodurch sie attraktiver fuer
saemtliche Benutzer wird. Falls Sie beim Einsenden
des neuen Fingerabdrucks die IP-Adresse des Ziel
systems mitangeben, muessen Sie damit rechnen, dass
es von uns zu Ueberpruefungszwecken gescannt wird.
Die Option -O aktiviert ebenso einige weitere
Tests. Einer dieser ist das Messen der "Uptime".
Hierzu wird das Timestamp-Feature von TCP genutzt
(RFC 1323), um erkennen zu koennen, wann das Ziel
system das letzte mal neu gestartet wurde. Diese
Funktionalitaet wird natuerlich nur dann genutzt
werden koennen, wenn das Zielsystem diese Informa
tion auch entsprechend bereitstellt.
Ein anderer Check, der durch die Option -O
aktiviert wird, ist die Klassifizierung der
Berechenbarkeit der TCP-Sequenznummer des Zielsys
tems. Das Ergebnis dieses Tests sagt aus, wie
schwer es ist, eine bestehende Verbindung des Ziel
systems zu uebernehmen. Dies ist dann nuetzlich,
wenn auf IP-Adressen basierende Vertrauensbeziehun
gen (z.B. rlogin und Firewall-Filter) missbraucht
oder die Quelle eines Angriffs versteckt werden
sollen. Die mitgelieferte Difficulty-Number ist
statistisch berechnet und kann jeweils leicht abwe
ichen. Zusaetzlich wird in knappen Worten (z.B.
"worthy challenge" or "trivial joke") der Zustand
beschrieben. All dies wird nur dann ausgegeben,
wenn der Parameter -v mitangegeben wurde.
Wenn die Option -O zusammen mit dem Verbose-Modus
(-v) genutzt wird, wird ebenso die Sequenz-Gener
ierung der IPID ausgewiesen. Die meisten Geraete
werden als "incremental" klassifiziert, was
bedeutet, dass sie fuer jedes verschickte Paket
eine Inkrementierung des ID-Felds im IP-Header
vornehmen. Ein solches Verhalten macht sie ver
wundbar gegen eine Reihe verschiedener Auswertungs-
und Spoofing-Attacken.
-6 Diese Option aktiviert die IPv6-Unterstuetzung.
Saemtliche Ziele muessen mit IPv6 zurecht kommen,
sofern diese Option genutzt werden soll. Das Spezi
fizieren der Ziele kann ganz normal ueber den DNS-
Namen (AAAA record) oder IPv6-Adresse (z.B.
3ffe:501:4819:2000:210:f3ff:fe03:4d0) geschehen.
Momentan sind TCP connect()- und Ping-Scans von
nmap unterstuetzt. Falls UDP- oder andere Scan-
Typen genutzt werden sollen, lohnt sich ein Blick
auf http://nmap6.sourceforge.net/ .
-I Hiermit wird das TCP reverse ident-Scanning
aktiviert. Wie Dave Goldsmith in einem Bugtraq-
Posting aus dem Jahre 1996 publiziert hat,
ermoeglicht das ident-Protokoll (RFC 1413) das
Identifizieren des Besitzers eines TCP-Dienstes. So
kann zum Beispiel eine Verbindung zum HTTP-Port des
Zielsystems hergestellt werden, um danach mittels
ident herauszufinden, ob der Webserver als root
laeuft. Dies kann nur mit der Hilfe eines full-con
nect TCP-Portscans (-sT) geschehen. Wenn -I
aktiviert wird, wird der identd des Zielsystems
fuer jeden als offen identifizierten Port abge
fragt. Logischerweise funktioniert diese ganze
Prozedur nicht, wenn das Zielsystem keinen identd
aktiv hat.
-f Diese Option erreicht, dass der durchgefuehrte
SYN-, FIN-, Xmas- oder Null-Scan mit fragmentierten
IP-Paketen arbeitet. Die Idee ist, dass der TCP-
Header ueber mehrere Pakete verteilt werden soll,
wodurch eine Inspizierung durch Firewall- oder
Intrusion Detection-Systeme erschwert wird. Bei
dieser Funktion ist Vorsicht geboten, denn viele
der verbreiteten Netzwerkanwendungen kommen mit
derlei Datenverkehr nicht klar. Beispielsweise
erhielt ich bei meinem liebsten Sniffer ein segem
tation fault, nachdem das erste 36-byte Fragment
eingelesen wurde. Danach kam gar ein 24-byte Paket!
Waehrend diese Methode keinen Erfolg bei Elementen
verspricht, die eine Warteschlange fuer IP-Frag
mente haben (wie dies mittels der Option CON
FIG_IP_ALWAYS_DEFRAG unter Linux normalerweise der
Fall ist), koennen andere Umgebungen den enormen
Aufwand fuer eine solche Analyse nicht tragen,
verzichten darauf und koennen deshalb ausgetrickst
werden.
Es bleibt zu bemerken, dass diese Option nicht auf
allen Betriebssystemen einwandfrei genutzt werden
kann. Es arbeitet ohne Zwischenfaelle auf meinem
Linux, FreeBSD und OpenBSD; einige Leute berichten
gar, dass es auch auf anderen *NIX funktioniert.
-v Verbose-Modus: Diese, eine sehr zu empfehlende
Option, ermoeglicht eine erweiterte Ausgabe von
Informationen. Eine doppelte Nutzung ergibt einen
doppelt so grossen Effekt. Ebenso kann -d einige
Male aktiviert werden, falls Sie wirklich vor einem
ueberlasteten Bildschirm verrueckt werden wollen!
-h Diese handliche Funktion zeigt eine Kurzreferenz
der nmap-Parameter. Wie Sie vielleicht gemerkt
haben, handelt es sich bei dieser man-Page nicht
unbedingt um eine 'handliche Kurzreferenz' :)
-oN <Protokoll-Dateiname>
Dies protokolliert die Resultate des Scans in einem
normalen, fuer Menschen lesbaren Format in eine
durch ein Argument spezifizierte Datei.
-oX <Protokoll-Dateiname>
Dies protokolliert die Resultate des Scans als XML
in die durch ein Argument spezifizierte Datei.
Dadurch koennen andere Programme unkompliziert die
durch nmap generierten Informationen auswerten und
verarbeiten. Durch das Argument '-' (ohne
Anfuehrungszeichen) kann die Ausgabe auf stdout
(fuer Pipeline-Verarbeitung, etc.) umgeleitet wer
den. In diesem Fall wird die normale Bildschirmaus
gabe unterdrueckt. Achtung vor Fehlermeldungen
(diese werden nach wie vor nach stderr geschickt).
Ebenso ist wichtig, dass '-v' in den meisten
Faellen einige zusaetzliche Informationen
gewaehrleisten koennen wird. Die Dokumententypen
definition (engl. Document Type Definition, abk.
DTD), die fuer die XML-Ausgabe genutzt wird, steht
unter http://www.insecure.org/nmap/nmap.dtd bereit.
-oG <Protokoll-Dateiname>
Dies protokolliert die Resultate des Scans in eine
grepbare Form in eine durch ein Argument spezi
fizierte Datei. Dadurch wird ein simples Format
angestrebt, welches alle Informationen auf einer
Zeile ausgibt, weshalb ganz einfach ein grep fuer
Ports, OS-Informationen oder IP-Adressen umgesetzt
werden kann. Dieses einfache Format stellt meistens
nicht so viele Informationen bereit, wie dies bei
anderen Ausgabevarianten der Fall ist. Diese Form
war die urspruenglich, fuer die Verarbeitung durch
externe Programme vorgehesene Dokumentierungs-Aus
gabe. Mittlerweile ist jedoch XML empfohlen (-oX).
Einmal mehr kann die Angabe von '-' (ohne
Anfuehrungszeichen) eine Ausgabe auf stdout erzwin
gen (fuer Pipeline-Verarbeitung, etc.). Auch hier
wird die normale Ausgabe unterdrueckt. Ebenso wer
den Fehlermeldungen wie ueblich auf stderr aus
gegeben. Und '-v' wird in den meisten Faellen
einige zusaetzliche Informationen gewaehrleisten
koennen.
-oA <Basisdateiname>
Dies veranlasst nmap in der Form ALLER wichtigen
Formate (normal, grepbar und XML) zu protokol
lieren. Sie geben den Dateinamen an, wobei nmap die
Erweiterungen in Form von basis.nmap, basis.gnmap
und basis.xml automatisch anfuegen wird.
-oS <Protokoll-Dateiname>
Dies protokolliert die Resultate der Scans in einem
fuer s|<ripT kiDd|3 lesbaren Format in eine durch
ein Argument spezifizierte Datei. Durch die Angabe
des Arguments '-' (ohne Anfuehrungszeichen) kann
die Ausgabe auf stdout umgeleitet werden.
--resume <Protokoll-Dateiname>
Ein Netzwerk-Scan, der durch das Druecken von Con
trol-C unterbrochen wurde, kann durch diese Option
reaktiviert werden. Der Protokoll-Dateiname muss
entweder eine normale (-oN) oder durch Maschinen
verarbeitbare (-oM) Scan-Protokoll-Datei sein. Die
Angabe abweichender oder zusaetzlicher Optionen ist
nicht moeglich - Sie werden vom abgebrochenen Scan
uebernommen. nmap wird mit der zuletzt in der Pro
tokoll-Datei erfolgreich gescannt vermerkten Mas
chine starten.
--append_output
Weist nmap an, die Scan-Resultate an die spezi
fizierten Protokoll-Datei anzuhaengen, anstatt die
besagten Dateien zu ueberschreiben.
-iL <Eingabe-Dateiname>
Liest die Ziel-Spezifizierung ZUERST von der
angegebenen Datei ein, und erst danach von der Kom
mandozeileneingabe. Die Datei sollte eine Liste von
Hosts oder Netzwerken enthalten, die jeweils durch
ein Leer-, Tabulator- oder Neuezeile-Zeichen
getrennt sind. Benutzen Sie einen Bindestrich (-)
als Eingabe-Dateiname , falls Sie wollen, dass nmap
die Zielspezifizierungen von stdin liest (wie im
Zusammenhang mit einer Pipe). Siehe den Absatz
Ziel-Definition fuer zusaetzliche Informationen zu
der gueltigen Ausdrucksweise.
-iR Diese Option weist nmap an, zufaellig generierte
Hosts zu scannen :). Dies hat kein Ende. Eine
solche Funktion ist zum Beispiel fuer eine statis
tische Auswertung innerhalb des Internets nuet
zlich. Falls Sie einmal wirklich sehr gelangweilt
sein sollten, so versuchen Sie nmap -sS -iR -p 80
um Webserver-Systeme zu finden.
-p <Port-Bereich>
Diese Option spezifiziert, welche Ports gescannt
werden sollen. Zum Beispiel wird '-p 23' lediglich
einen Zugriff auf den Port 23 (Telnet) der Zielsys
teme durchfuehren. '-p 20-30,139,60000-' scannt die
Ports zwischen 20 und 30, Port 139 und alle Ports
groesser als 60000. Standardmaessig werden
saemtliche well-known Ports zwischen 1 und 1024
sowie alle in der services-Datei von nmap gelis
teten Dienste gescannt. Fuer einen IP-Protokoll-
Scan (-sO) kann mit dieser Option die zu scannende
Protokoll-Nummer (0-255) angegeben werden.
Werden gleichzeitig TCP- und UDP-Ports gescannt, so
kann das jeweilige Protokoll durch ein vor
angestelltes "T:" oder "U:" angewaehlt werden. Die
mitgegebenen Ports gelten so lange fuer das spezi
fizierte Uebertragungsprotokoll, bis ein anderes
angegeben wird. Zum Beispiel werden mit dem Argu
ment "-p U:53,111,137,T:21-25,80,139,8080" die UDP-
Ports 53, 111 und 137 sowie die TCP-Ports 21 bis
25, 80, 139 und 8080 gescannt. Wichtig ist, dass
bei einem gleichzeitigen TCP- und UDP-Scan neben
der Angabe von -sU mindestens eine TCP-Scan-Vari
ante mitangegeben werden muss (zum Beispiel -sS,
-sF oder -sT). Wird bei der Wahl der Zielports auf
das spezifizieren eines Protokolls verzichtet,
bezieht sich die Option auf saemtliche Uebertra
gungsprotokolle.
-F Schneller Scan-Modus (engl. Fast scan mode): Dies
gibt an, dass Sie lediglich die in der services-
Datei von nmap gelisteten Dienste scannen wollen
(oder bei -sO die Protokolle der protocols-Datei).
Selbstverstaendlich ist dies viel schneller, als
saemtliche 65535 Ports eines Hosts zu ueberpruefen.
-D <Decoy1 [,Decoy2][,ME],...>
Veranlasst einen sogenannten Decoy-Scan (dt. Lock
volgel). Bei diesem sieht es so aus, als wuerde
eine Reihe zusaetzlicher Hosts die Zielumgebung
scannen. Ein Intrusion Detection-System wird zwis
chen 5 und 10 Portscans verschiedener IP-Adressen
protokollieren, wobei ohne weiteres nicht genau
festgestellt werden kann, welches System den Scan
wirklich durchfuehrt. Waehrend diese Methode durch
Router Path Traceing, Response-Dropping und andere
"aktive" Mechanismen niedergeschlagen werden kann,
ist es doch eine extrem effektive Technik, um die
eigene IP-Adresse zu verstecken.
Die jeweiligen Lockvoegel koennen durch ein Komma
getrennt werden. Optional kann durch die Angabe von
'ME' (dt. mich) die eigene Position in der Zugriff
sreihenfolge gewaehlt werden. Falls 'ME' in die
sechste oder noch eine spaetere Position gesetzt
wird, sind einige Portscan-Detektoren (z.B. Solar
Designers scanlogd) nicht in der Lage, die richtige
IP-Adresse anzuzeigen. Falls Sie 'ME' nicht
mitangeben, wird nmap eine zufaellige Position bes
timmen.
Achtung, die als Decoys angegebenen Hosts sollten
vom Zielsystem erreichbar sein. Andernfalls ist es
durchaus moeglich, dass dieses durch einen SYN-
Flood in die Knie gezwungen wird. Zudem ist es rel
ativ einfach zu erkennen, welches System den Scan
durchfuehrt, wenn nur dieses eine System wirklich
im Netzwerk aktiv ist. Es lohnt sich IP-Adressen
anstatt Hostnamen bei der Spezifizierung der Lock
vogel-Systeme anzugeben (so ist keine Namensaufloe
sung noetig und die Protokoll-Eintraege in den
Nameservern bleibt aus).
Ebenso weisen einige (dumme) "Portscan-Detektoren"
Firewalling-Funktionalitaet auf, und sie
unterbinden die Verbindungsmoeglichkeit jeglichen
Systems, das einen Portscan durchfuehrt. So kann es
durchaus sein, dass die Verbindungsmoeglichkeit des
Zielsystems zu den Lockvoegeln verhindert wird.
Dies ist dann problematisch, wenn es sich um ein
wichtiges System, wie zum Beispiel das Standard-
Gateway, handelt. Also, es gilt vorsichtig im
Umgang mit dieser Option zu sein. Die Moral dieser
Geschichte ist, dass Portscan-Detektoren mit
automatisierter Strike-Back Funktionalitaet keine
gute Idee sind - Hinter jedem Portscan koennte sich
ein Lockvogel verbergen!
Die Lockvoegel werden im initialen Ping-Scan (ICMP,
SYN oder ACK) und waehrend der eigentlichen
Portscan-Phase verwendet. Ebenso finden sie beim
Durchfuehren einer Betriebssystem-Erkennung ( -O )
Verwendung.
Es bleibt zu sagen, dass zu viele Lockvoegel einen
Scan verlangsamen und ineffizienter machen koennen.
Ebenso filtern einige ISPs gespoofte Pakete heraus,
obwohl dies zur Zeit die wenigsten machen.
-S <IP-Adresse>
Unter bestimmten Umstaenden ist nmap nicht in der
Lage, Ihre Quell-IP-Adresse zu identifizieren (
nmap wird Ihnen dies mitteilen). In einer solchen
Situation kann mit der Hilfe der Option -S die IP-
Adresse (der gewuenschten Schnittstelle) festgelegt
werden.
Eine andere Moeglichkeit dieser Option ist die
Quelle des Scans zu spoofen, so dass das Zielsystem
glaubt, dass jemand anderes die Zugriffe durch
fuehrt. Stellen Sie sich vor, dass eine Firma
ploetzlich von ihrem Konkurrenten einen Scan verze
ichnet! Dies ist nicht der Hauptnutzen dieser
Option. Ich denke lediglich, dass diese Theorie
einen guten Grund bereitstellt, nicht sofort jeden
als Scanner zu beschimpfen, nur weil es scheint,
dass von ihm ein Scan gestartet wurde.
-e <Schnittstelle>
Weist nmap an, ueber welche Schnittstelle die Daten
verschickt und empfangen werden sollen. nmap sollte
in der Lage sein diesen Umstand von sich aus zu
erkennen. Falls dem nicht so ist, kann diese Option
herangezogen werden.
-g <Portnummer>
Definiert den Quellport fuer die Scans. Einige
naive Firewall-Implementierungen machen bei DNS
(53) und FTP-DATA (20) eine Ausnahme und lassen
solcherlei Verbindung entgegen der Bestimmungen im
Regelwerk zu. Obschon dieser Umstand ganz einfach
durch Angreifer ausgenutzt werden kann, um sich als
FTP- oder DNS-System maskierend einen Vorteil zu
verschaffen. Fuer einen UDP-Scan sollte 53 als
erstes ausprobiert werden. Bei einem TCP-Scan
bieten sich 20 und 53 an. Achtung, es handelt sich
bei dieser Option lediglich um eine Anfrage, die
nicht zwingend in jeder Situation von nmap umge
setzt werden will und kann. Zum Beispiel ist eine
ISN-Analyse nicht von System:Port zu System:Port
moeglich, so dass nmap eine dynamische
Portzuweisung durchfuehrt, auch wenn anderes durch
-g angegeben wurde.
Seien Sie gewarnt, dass diese Option bei einigen
Scan-Varianten Performance-Einbussen mit sich
bringt.
--data_length <Anzahl>
Normalerweise verschickt nmap moeglichst kleine
Pakete, die lediglich aus dem Header bestehen. So
weisen TCP-Datagramme im Normalfall eine Laenge von
40 und ICMP echo request-Anfragen 28 Bytes auf.
Diese Option weist nmap an, die verschickten Pakete
um Null-Bytes zu verlaengern. Pakete zur Erkennung
des Betriebssystens (-O) sind nicht betroffen. Ganz
im Gegensatz zu Ping-Zugriffen und Portscan-
Paketen. Dies verlangsamt natuerlich die Zugriffe
unter Umstaenden - Aber ebenso kann es die Unauf
faelligkeit des Scans erhoehen.
-n Sagt nmap, dass NIE reverse DNS-Aufloesungen von
als aktiv identifizierten IP-Adressen durchgefuehrt
werden sollen. Da DNS oft langsam ist, kann diese
Option die Zugriffe beschleunigen.
-R Sagt nmap, dass IMMER reverse DNS-Aufloesungen von
als Ziel spezifizierten IP-Adressen durchgefuehrt
werden sollen. Dies wird im Normalfall nur immer
dann durchgefuehrt, wenn ein Zielsystem als aktiv
identifiziert werden konnte.
-r Sagt nmap, dass KEINE zufaellige Wahl beim Scannen
der Ports gewuenscht ist.
--randomize_hosts (dt. zufaellige Reihenfolge der Hosts)
Sagt nmap, dass bei einer Gruppe von bis zu 2048
Zielen eine zufaellige Reihenfolge gewaehlt werden
soll, bevor sie gescannt werden. Dies kann den
Scanvorgang fuer viele Netzwerk-Monitoring-Systeme
schwieriger zu entdecken machen; ganz besonders
dann, wenn langsame Timing-Optionen angewandt wer
den (siehe unten).
-M <Maximale Sockets>
Setzt die maximale Anzahl der Sockets bei einem
parallel durchgefuehrten TCP connect()-Scan fest.
Dies ist zum Beispiel in Situationen nuetzlich,
wenn der Scanvorgang kuenstlich verlangsamt werden
soll, damit das Zielsystem nicht unter der Last der
Zugriffe zusammenbricht. Eine andere Herange
hensweise ist durch -sS gegeben, die durch die Ger
aete oft einfacher zu handhaben ist.
TIMING-OPTIONEN
Normalerweise macht nmap hervorragende Arbeit, um
waehrend eines Scans das Maximum an Performance
herauszuholen, ohne Fehlermeldungen zu Hosts oder
Ports zu provozieren. Trotzdem kann es Situationen
geben, in denen das Timing von nmap nicht dem von
Ihnen gewuenschten entspricht. Die folgenden Optio
nen ermoeglichen eine feine Skalierbarkeit der Kon
trolle bezueglich des Scan-Timings:
-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>
Diese vordefinierten Timing-Richtlinien erlauben
Ihnen nmap Ihre Prioritaeten mitzuteilen. Der Para
noid -Modus scannt sehr langsam, in der Hoffnung,
nicht von Intrusion Detection-Systemen entdeckt zu
werden. Die Scans werden in Serie geschaltet (kein
paralleles Scanning) und im Normalfall wird bis zu
5 Minuten zwischen dem Versand der Pakete gewartet.
Sneaky (dt. schleichend) ist aehnlich, ausser, dass
lediglich 15 Sekunden zwischen dem Paket-Versand
gewartet wird. Polite (dt. hoeflich) wird dann
relevant, wenn die Netzwerkbelastung niedrig gehal
ten werden will. Zum Beispiel, um Abstuerze von
Systemen zu vermeiden. Die Zugriffe werden wiederum
in Serie geschaltet und zwischen den Zugriffen wird
mindestens 0.4 Sekunden gewartet. Normal spiegelt
das normale Verhalten von nmap wieder, was einen
Kompromiss zwischen maximaler Geschwindigkeit bei
absoluter Zuverlaessigkeit darstellt. Aggressive
(dt. aggressiv) fuegt eine Wartezeit von 5 Minuten
zwischen den einzelnen Hosts hinzu. Es wird jedoch
nie laenger als 1.25 Sekunden auf Antworten
gewartet. Insane (dt. geisteskrank) ist lediglich
in sehr schnellen Netzwerken moeglich. Oder ueber
all dort, wo auf die Zuverlaessigkeit des Resultat
nicht sonderlich viel gegeben wird. Zwischen den
einzelnen Systemen wird 75 und zwischen den Zugrif
fen 0.3 Sekunden gewartet. Dies lohnt sich zum
Beispiel fuer einen schnellen Netzwerk-Suchlauf :).
Die einzelnen Modi koennen ebenso durch eine Nummer
(0-5) referenziert werden. Zum Beispiel gibt '-T 0'
den Paranoid-Modus an und '-T 5' steht fuer Insane.
Diese spezifischen Timing-Modi sollten NICHT zusam
men mit den nun folgend vorgestellten Timing-Optio
nen verwendet werden.
--host_timeout <Millisekunden>
Spezifiziert den Zeitraum, der nmap gegeben wird,
um ein einzelnes System zu scannen, bevor sich
einer neuen IP-Adresse gewidmet wird. Der Standard
wert hat kein Timeout fuer Hosts.
--max_rtt_timeout <Millisekunden>
Spezifiziert den Zeitraum, der nmap gegeben wird,
um eine Antwort zu warten, bevor eine Uebertra
gunswiederholung eingeleitet wird oder das Timeout
in Kraft tritt. Der Standardwert ist auf 9000
gesetzt.
--min_rtt_timeout <Millisekunden>
Antwortet ein Host sehr schnell auf unsere Anfra
gen, wird nmap das Zeitlimit fuer zukuenftige
Zugriffe auf das besagte Zielsystem verkleinern.
Dies bringt einen Geschwindigkeitsvorteil mit sich,
wobei jedoch auch Pakete verloren gehen koennen,
falls ploetzlich ein Antworten in der vorhergese
henen Zeitspanne nicht mehr moeglich sein sollte.
Mit dieser Option kann nmap angewiesen werden, dass
immer mindestens ein bestimmter Zeitwert gewartet
werden soll, bevor der Vorgang abgebrochen wird.
--initial_rtt_timeout <Millisekunden>
Spezifiziert das Timetout fuer den initialen
Zugriff. Dies ist normalerweise nur dann sinnvoll,
wenn durch Firewall-Systeme geschuetzte Hosts mit
der Option -P0 gescannt werden sollen. Normaler
weise ist nmap in der Lage den RTT-Wert anhand des
Ping-Zugriffs und der ersten Auswertungen optimal
festzulegen. Der Standardwert lautet 6000.
--max_parallelism <Anzahl>
Spezifiziert die maximale Anzahl parallel von nmap
durchfuehrbaren Zugriffe. Das Setzen dieser Option
heisst fuer nmap, dass nie mehr als 1 Port auf ein
mal gescannt werden soll. Ebenso sind andere Scan-
Typen betroffen, die normalerweise parallel
durchgefuehrt werden koennen (z.B. Ping-Suchlauf,
RPC-Scan, etc.).
--min_parallelism <Anzahl>
Weist nmap an, beim Scan eine gewisse Anzahl von
Ports parallel zu scannen. Dies kann unter
Umstaenden den Auswertungs-Vorgang von Firewall-
Systemen beschleunigen. Aber seien Sie vorsichtig:
Die Resultate werden umso unzuverlaessiger, desto
hoeher die Anzahl paralleler Zugriffe gesetzt wird.
--scan_delay <Millisekunden>
Spezifiziert das Minimum der Zeit, die nmap zwis
chen den jeweiligen Zugriffen warten muss. Dies ist
sehr nuetzlich, um das Datenaufkommen in Netzwerken
zu reduzieren oder durch den langsameren Scanvor
gang vor IDS-Tresholds verborgen zu bleiben.
--packet_trace
Sagt nmap, dass saemtliche verschickten und empfan
genen Pakete in einem tcpdump-aehnlichen Format
dargestellt werden sollen. Dies ist ganz besonders
fuer Debugging nuetzlich. Ausserdem kann so viel
ueber die Funktionsweise gelernt werden.
ZIEL-SPEZIFIKATION
Alles, das nmap nicht als Option mitgegeben wird (oder ein
Argument einer Option darstellt) wird als Ziel-Spezifika
tion angesehen. Die einfachste Form dessen, ist das
Auflisten von einzelnen Hostnamen oder IP-Adressen in der
Kommandozeile. Falls Sie ein Subnetz scannen wollen, so
koennen Sie '/Maske' am Hostnamen oder der IP-Adresse
anfuegen. Die Maske muss einen Wert zwischen 0 (das ganze
Internet scannen) und 32 (den einzelnen Host scannen)
aufweisen. Benutzen Sie /24 fuer das Scannen eines Klasse
C-Netzwerks und /16 fuer ein Klasse B-Netzwerk.
nmap greift zudem auf eine sehr maechtige Notation
zurueck, die eine sehr komfortable Spezifikation von IP-
Adressbereichen zulaesst. So kann das Klasse B-Netzwerk
192.168.*.* mit der Angabe von '192.168.*.*' oder
'192.168.0-255.0-255' oder
'192.168.1-50,51-255.1,2,3,4,5-255' gescannt werden. Und
selbstverstaendlich ist auch die verbreitete Netzmasken-
Notation zulaessig: '192.168.0.0/16'. All diese Eingaben
fuehren zum gleichen Ziel. Falls Sie das Asteriks-Zeichen
(dt. Stern, '*') benutzen wollen, denken Sie daran, dass
einige Shells das Escapen mittels Backslashes oder das
Auskommentieren mittels Gaensefuesschen verlangen.
Eine andere Moeglichkeit ist genau durch das umgekehrte
Herangehen gegeben. Anstatt ein ganzes Klasse B-Netzwerk
zu scannen, kann mit der Angabe von '*.*.5.6-7' jede IP-
Adresse gescannt werden, die auf .5.6 oder .5.7 endet.
Fuer zusaetzliche Informationen, konsultieren Sie den
Abschnitt Beispiele
BEISPIELE
Hier folgen nun einige Beispiele fuer das Nutzen von nmap.
Diese reichen von einfachen ueber normale bis hin zu kom
plexen Ansaetzen. Es werden existente IP-Adressen und
Domainnamen verwendet, um die Beispiele konkreter zu
gestalten. Anstatt ihrer Stelle sollten Sie Adressen und
Namen Ihres eigenen Netzwerks benutzen. Ich bin der Mein
ung, dass Portscanning fremder Netzwerke nicht illegal
ist; ebenso sollten Portscans nicht als Angriffe gewertet
werden. Ich habe tausende Maschinen gescannt und bisher
erst eine Rueckmeldung erfahren. Jedoch bin ich kein
Anwalt und einige (langweilige) Leute koennten durch mit
tels nmap generierter Zugriffe nervoes werden. Holen Sie
sich zuerst eine Erlaubnis fuer Ihre Aktivitaeten ein oder
tragen Sie die Risiken selbst.
nmap -v ziel.beispiel.com
Diese Option scannt alle reservierten TCP-Ports am Ziel
system mit dem Namen ziel.beispiel.com. Das -v aktiviert
den Verbose-Modus.
nmap -sS -O ziel.beispiel.com/24
Hier wird ein stealth SYN-Scan gegen jede der 255 Maschi
nen des Klasse C-Netzwerks von ziel.beispiel.com ges
tartet. Ebenso wird versucht das Betriebssystem der
aktiven Systeme zu ermitteln. Dieser Vorgang erfordert
root-Privilegien aufgrund des SYN-Scans und der Betrieb
ssystemerkennung.
nmap -sX -p 22,53,110,143,4564 198.116.*.1-127
Startet einen Xmas-Tree-Scan auf die erste Haelfte der 255
moeglichen 8 Bit Subnetze des Klasse B-Adressraums von
198.116. Wir ueberpruefen, ob am Zielsystem SSHD, DNS,
POP3D, IMAPD oder der Port 4564 aktiv ist. Wichtig ist,
dass Xmas-Scans nicht gegen Microsoft-Geraete funktion
ieren, da einige Abweichungen bei der Implementierung des
TCP-Stacks gemacht wurden. Das gleiche gilt fuer Cisco-,
IRIX-, HP/UX- und BSDI-Maschinen.
nmap -v --randomize_hosts -p 80 '*.*.2.3-5'
Manchmal ist es nicht erforderlich einen IP-Adressbereich
zu scannen. So kann es durchaus sein, dass in einer Situa
tion das Absuchen spezieller Geraete noetig wird. Dieses
Kommando findet saemtliche Webserver, die eine IP-Adresse
aufweisen, die auf .2.3, .2.4 oder .2.5 endet. Falls Sie
root sind, so kommt eventuell ein Hinzufuegen von -sS in
Frage. Ebenso koennten mehr interessante Systeme gefunden
werden, wenn bei 127 gestartet wird (IMHO). In diesem Fall
koennen die durch die Sterne gegebenen Platzhalter durch
'127-222' ersetzt werden.
host -l firma.com | cut '-d ' -f 4 | ./nmap -v -iL -
Fuehrt einen DNS-Zonetransfer durch, um saemtliche Hosts
von firma.com zu finden. Die Ausgabe der IP-Adressen wird
sodann fuer die weitere Verarbeitung zu nmap umgeleitet.
Die dokumentierte Kommandofolge funktioniert nur auf Ger
aeten mit GNU/Linux. Vielleicht muessen Sie auf anderen
Betriebssystemen andere Kommandos und Optionen her
anziehen.
FEHLER
Fehler? Was fuer Fehler? Senden Sie sie mir, falls sie
solche finden. Entsprechende Patches waeren auch gleich
nett :) Denken Sie ausserdem daran, neue OS-Fingerab
druecke einzusenden, damit die Datenbank wachsen kann.
nmap gibt eine URL zur Uebermittlung des unbekannten Fin
gerabdrucks aus.
AUTOR
Fyodor <fyodor@insecure.org>
UEBERSETZUNG
Marc Ruef <marc.ruef@computec.ch>
http://www.computec.ch
Wettingen, Oktober 2002
DISTRIBUTION
Die neueste Version von nmap kann jeweils von
http://www.insecure.org/nmap/ bezogen werden.
nmap is (C) 1995-2002 by Insecure.Com LLC
Dieses Programm gilt als freie Software; Sie koennen sie
unter den Lizenzbestimmungen der GNU General Public
License, wie sie von der Free Software Foundation in der
Version 2 publiziert wurde, weitergeben und/oder veraen
dern. Dies weist Ihnen das Recht zu, die Software unter
den gegebenen Bestimmungen zu nutzen, modifizieren und
weiterzugeben. Falls Sie diese Lizenzbestimmungen nicht
akzeptieren wollen, ist Insecure.Org unter Umstaenden in
der Lage, eine alternative Lizenzbestimmung auszuhandeln
(kontaktieren Sie fyodor@insecure.org).
Der Quelltext dieser Software wird aus diesem Grund zur
Verfuegung gestellt, weil wir glauben, dass die Benutzer
ein Recht darauf haben zu wissen, was die von ihnen einge
setzten Programme machen. Dies ermoeglicht zudem das
Ueberpruefen der Software auf etwaige Sicherheitsschwach
stellen (bisher wurden keine gefunden).
Der Quelltext ermoeglicht zudem das Portieren von nmap auf
neue Plattformen, das Beheben von Fehlern und Hinzufuegen
neuer Funktionalitaeten. Ich darf Sie bitten entsprechende
Aenderungen an fyodor@insecure.org zu schicken, um eine
etwaige Zusammenarbeit zu besprechen. Durch das Senden von
Neuerungen an Fyodor oder einem der Mitglieder der
Entwickler-Meilingliste erlauben Sie die unlimitierte,
nicht-exklusive Weiterverwendung, Modifizierung und
Relizensierung. Dies ist insofern wichtig, da einige
andere Free Software Projekte (zum Beispiel KDE und NASM)
sich mit unnoetigen Lizenzproblemen konfrontiert sahen.
nmap wird stets als open-source zur Verfuegung stehen.
Falls Sie sich an andere Lizenzbestimmungen halten
moechten, so vermerken Sie dies doch bitte beim Einsenden
Ihres Materials.
Dieses Programm wurde in der Hoffnung entwickelt, dass es
nuetzlich ist; jedoch OHNE JEGLICHE GARANTIE. Siehe die
GNU General Public License fuer zusaetzliche Informationen
(sie ist in der Datei namens COPYING, die mit nmap mit
geliefert wird, enthalten).
Es muss zusaetzlich erwaehnt werden, dass nmap in der Lage
ist, schlecht geschriebene Anwendungen, TCP/IP-Stacks und
Betriebssysteme abstuerzen zu lassen. nmap sollte nie auf
mission-critical Systeme angewandt werden , ausser, wenn
ein entsprechender Ausfall (engl. downtime) verkraftet
werden kann. Wir bestaetigen hiermit, dass nmap unter
Umstaenden Systeme und Netzwerke negativ beeinflussen
kann. Wir tragen keine Verantwortung fuer Probleme, die
beim Nutzen von nmap entstehen koennen.
Aufgrund dessen, dass das Risiko eines Absturzes besteht
und einige Black Hats nmap fuer das Auswerten von Angriff
szielen missbrauchen, koennen einige Administratoren
allergisch auf das Scannen ihrer Systeme reagieren. Somit
ist es stets empfehlenswert, die Erlaubnis fuer das Scan
nen eines Netzwerks einzuholen.
nmap sollte aus Sicherheitsgruenden nie mit erweiterten
Privilegien (z.B. suid root) gestartet werden.
Dieses Produkt beinhaltet Software-Teile, die von der
Apache Software Foundation (http://www.apache.org/)
entwickelt wurden. Die Libpcap portable Bibliothek wird
als Teil von nmap mitgeliefert. Libpcap wurde urspru
englich durch Van Jacobson, Craig Leres und Steven
McCanne, alle vom Lawrence Berkeley National Laboratory,
Universitaet von Kalifornien, Berkeley, CA, entwickelt.
Zur Zeit wird sie von http://www.tcpdump.org betreut.
NMAP(1)
Man(1) output converted with
man2html