1.0 Inhaltsverzeichnis2.0 Einführung2.1 Erweiterte Parameter3.0 Die möglichen Scan-Techniken3.1 Ping-Suchlauf4.0 Parameter für zusätzliche Optionen3.1.1 Einführung3.2 TCP-Port-Scan mit Verbindungsaufbau3.2.1 Einführung3.3 TCP-SYN-Stealth-Port-Scan3.3.1 Einführung3.4 Stealth-FIN-Port-Scan3.4.1 Einführung3.5 TCP-Xmas-Tree-Port-Scan3.5.1 Einführung3.6 TCP-Null-Port-Scan3.6.1 Einführung3.7 UDP-Port-Scan3.7.1 Einführung3.8 FTP-"Bounce-Attack"-Port-Scan3.8.1 Einführung4.1 Sehr kleine fragmentierte Pakete benutzen4.1.1 Einführung4.2 Hosts nicht mit "ping" ansprechen4.2.1 Einführung4.3 TCP-Pings4.3.1 Einführung4.4 ICMP-Pings4.4.1 Einführung4.5 Parallele Ausführung von TCP- und ICMP-Ping4.5.1 Einführung4.6 TCP-SYN-Suchlauf bei TCP-Ping-Scan4.6.1 Einführung4.7 Fingerprints zur Ermittlung des Betriebssystems4.7.1 Einführung4.8 Nur gewisse Ports ansprechen4.7.3 Beispiel bei Microsoft Windows 98
4.8.1 Einführung4.9 Scan von falschen Hosts mit richtigen Hosts zusammenführen4.9.1 Einführung4.10 Der schnelle Scan4.10.1 Einführung4.11 Besitzer eines Prozesses ermitteln4.11.1 Einführung4.12 DNS-Auflösung deaktivieren4.12.1 Einführung4.13 Komplette DNS-Auflösung erzwingen4.13.1 Einführung4.14 Ausgabe in einer Protokolldatei4.14.1 Einführung4.15 Nutzen einer Eingabedatei4.14.1a Vom Menschen lesbar4.15.1 Einführung4.16 Ursprungsort der Ports festlegen4.16.1 Einführung4.17 IP-Source manipulieren4.17.1 Einführung4.18 Die Verbose-Funktion4.18.1 Einführung4.19 Auswahl der Device4.19.1 Einführung4.20 argv beeinflussen4.20.1 Einführung
Das kleine Tool namens nmap, welches standartmässig oft bei verschiedenen Linux-Distributionen installierbar ist - man kann es sonst auch separat unter http://www.insecure.org/nmap/ heruntergeladen werden kann -, wird hier von mir versucht durchleuchtet zu werden, um den Umgang damit und die schier erschreckend erscheinenden Funktionen in vollem Umfang nutzen zu können.3.0 Die möglichen Scan-TechnikenNmap von Fyodor bietet ausser den bei den meisten Port-Scanning-Tools implementierten Funktionen erweiterte TCP- und UDP-Funktionalitäten, die mit einem Portion Wissen das Leben eines Netzwerk-Administrators extrem erleichtern können. Selten war ein Netzwerk-Tool erhältlich, welches so viele ausgereifte Funktionen bietet, wie nmap.
Wie bei den meisten zeilenorientierten Programmen in einer Linux-Umgebung wird mit dem Parameter -h von nmap oder dem Nutzen gar keines Parameters die Hilfefunktion auf dem Bildschirm ausgegeben, wobei darin der Syntax für das kleine Wunderding wie folgt angegeben wird (Ins Deutsche übersetzt):
nmap [Scan-Typ(en)] [Optionen] <Host oder Netz #1 ... [#N]> Scan-TypenFolgend nun die original Ausgabe von nmap ohne Parameter-Eingabe:mruef@prometheus:~ > nmapnmap V. 2.3BETA6 usage: nmap [Scan Type(s)] [Options] <host or net #1 ... [#N]>
Scan types
-sT tcp connect() port scan
-sS tcp SYN stealth port scan (must be root)
-sF,-sX,-sN Stealth FIN, Xmas, or Null scan (only works against UNIX).
-sP ping "scan". Find which hosts on specified network(s) are up but don't
port scan them
-sU UDP port scan, must be r00t
-sR RPC scan (use in addition to other TCP and/or UDP scan type(s)
-b <ftp_relay_host> ftp "bounce attack" port scan
Options (none are required, most can be combined):
-f use tiny fragmented packets for SYN, FIN, Xmas, or NULL scan.
-P0 Don't ping hosts (needed to scan www.microsoft.com and others)
-PT Use only "TCP Ping" to see what hosts are up (for normal & ping scans).
-PI Use only ICMP ping to determines hosts that are up (default is ICMP&TCP)
-PS Use TCP SYN sweep rather than the default ACK sweep used in "TCP ping"
-O Use TCP/IP fingerprinting to guess what OS the remote host is running
-p <range> ports: ex: '-p 23' will only try port 23 of the host(s)
'-p 20-30,63000-' scans 20-30 and 63000-65535. default: 1-1024 + /etc/services
-Ddecoy_host1,decoy2,decoy3[,...] Launch scans from decoy host(s) along
with the real one.
-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane> Use specified timing policy.
-F fast scan. Only scans ports in /etc/services, a la strobe(1).
-I Get identd (rfc 1413) info on listening TCP processes.
-n Don't DNS resolve anything unless we have to (makes ping scans faster)
-R Try to resolve all hosts, even down ones (can take a lot of time)
-o <logfile> Output scan logs to <logfile> in human readable.
-m <logfile> Output scan logs to <logfile> in machine parseable format.
-i <inputfile> Grab IP numbers or hostnames from file. Use '-' for stdin
-g <portnumber> Sets the source port used for scans. 20 and 53 are good choices.
-S <your_IP> If you want to specify the source address of SYN or FYN scan.
-v Verbose. Its use is recommended. Use twice for greater effect.
-h help, print this junk. Also see http://www.insecure.org/nmap/
-V Print version number and exit.
-e <devicename>. Send packets on interface <devicename> (eth0,ppp0,etc.).
Hostnames specified as internet hostname or IP address. Optional '/mask' specifies subnet. For example: cert.org/24 or 192.88.209.5/24 or 192.88.209.0-255 or '128.88.209.*' all scan CERT's Class C.
SEE THE MAN PAGE FOR MORE THOROUGH EXPLANATIONS AND EXAMPLES.mruef@prometheus:~ > _
3.1 Ping-Suchlauf4.0 Parameter für zusätzliche Optionen3.1.1 Einführung3.2 TCP-Port-Scan mit VerbindungsaufbauDer Parameter -sP ermöglicht die Degradierung von nmap zu einem normalen Ping-Befehl um die aktiven Hosts in einem Netzwerk zu ermitteln. Dabei wird traditionell ein ICMP-ECHO-(Typ 8)-Paket an ein Ziel geschickt, wobei bei dessen Erreichbarkeit mit einem ICMP-ECHO-REPLY-(Typ 0)Paket als Antwort signalisiert wird.3.1.2 BesonderheitenFür Mass-Pings sind andere Tools für Unix-Derivate nutzbar, die weit effizienter als nmap an die Sache herangehen (Zum Beispiel fping, gping und Hping.).3.1.3 Beispielmruef@prometheus:~ > nmap -sP 192.168.0.0/24Starting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Host gateway.matrix.net (192.168.0.1) appears to be up.
Host prometheus.matrix.net (192.168.0.2) appears to be up.
Host rieekan.matrix.net (192.168.0.3) appears to be up.
Host margrit.matrix.net (192.168.0.4) appears to be up.
Host roadrunner.matrix.net (192.168.0.5) appears to be up.
Nmap run completed -- 256 IP addresses (5 hosts up) scanned in 1 secondmruef@prometheus:~ > _
3.2.1 Einführung3.3 TCP-SYN-Stealth-Port-ScanDer Parameter -sT führt einen normalen TCP-Port-Scan bei dem eine Verbindung zum Ziel-Port zwangsweise aufgebaut werden muss, und dadurch die Prozedur des 3-Wege-Handshakes von TCP-Verbindungen durchgeführt werden muss.3.2.2 BesonderheitenUm eine komplette TCP-Verbindung herzustellen muss der Client als erstes mit der Übertragung eines SYN-Paketes an den Server beginnen. Jener Quittiert den Empfang mit einem SYN-/ACK-Paket und wartet dann auf den Erhalt einer weiteren Bestätigung durch ein ACK-Paket von Seiten des Clients.
Diese Scanning-Technik ist sehr leicht zu erkennen, wird standartmässig von nmap ohne Scan-Technik-Parameter angewandt und kann von jedem User auf jedes beliebige System ausgeführt werden.3.2.3 Beispiel bei BeOS 4.5mruef@gateway:~ > nmap -sT 192.168.0.2Starting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on prometheus.matrix.net (192.168.0.2):
Port State Protocol Service
23 open tcp telnetNmap run completed -- 1 IP address (1 host up) scanned in 2 seconds
mruef@gateway:~ > _
3.2.4 Beispiel bei Microsoft Windows 98mruef@prometheus:~ > nmap -sT 192.168.0.33.2.5 Beispiel bei SuSE Linux 6.3Starting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on rieekan.matrix.net (192.168.0.3):
Port State Protocol Service
139 open tcp netbios-ssnNmap run completed -- 1 IP address (1 host up) scanned in 8 seconds
mruef@prometheus:~ > _
mruef@prometheus:~ > nmap -sT 192.168.0.1Starting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on gateway.matrix.net (192.168.0.1):
Port State Protocol Service
21 open tcp ftp
23 open tcp telnet
139 open tcp netbios-ssn
8080 open tcp http-proxyNmap run completed -- 1 IP address (1 host up) scanned in 0 seconds
mruef@prometheus:~ > _
3.3.1 Einführung3.4 Stealth-FIN-Port-ScanDer Parameter -sS erlaubt es Root auf einem System mit nmap einen halboffenen Scan durchzuführen. Diese Technik verdient den Namen daher, da keine vollständige TCP-verbindung zustande kommt. Stattdessen wird ein SYN-Paket zum Ziel-Port übertragen. Wenn der Ziel-Port mit SYN/ACK antwortet, kann davon ausgegangen werden, dass der Port den Listening-Status besitzt. Wenn RST/ACK zurückgegeben wird, kann mit ziemlicher Wahrscheinlichkeit ein inaktiver Port dadurch angedeutet worden sein. Das Client-System überträgt nach dem Empfang des Paketes des Hosts ein RST/ACK-Paket, so dass keine vollständige Verbindung hergestellt wird.3.3.2 BesonderheitenDiese Technik hat den Vorteil, dass sie viel unauffälliger auf das Ziel-System einwirkt und somit schwieriger zu erkennen ist, da die meisten Systeme nur vollständige Verbindungen protokollieren.3.3.3 Beispiel bei BeOS 4.5Interessant ist die arg verfälschte Ausgabe eines TCP-SYN-Stealth-Port-Scans, wenn er auf ein Windows 98-System ausgerichtet ist.
gateway:~ > nmap -sS 192.168.0.23.3.4 Beispiel bei Microsoft Windows 98Starting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on prometheus.matrix.net (192.168.0.2):
Port State Protocol Service
23 open tcp telnetNmap run completed -- 1 IP address (1 host up) scanned in 3 seconds
gateway:~ > _
prometheus:~ > nmap -sS 192.168.0.33.3.5 Beispiel bei SuSE Linux 6.3Starting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on rieekan.matrix.net (192.168.0.3):
Port State Protocol Service
41 open tcp graphics
134 open tcp ingres-net
139 open tcp netbios-ssn
168 open tcp rsvd
174 open tcp mailq
[...]
2430 open tcp venus
2604 open tcp ospfd
4500 open tcp sae-urn
6110 open tcp softcm
7006 open tcp afs3-errorsNmap run completed -- 1 IP address (1 host up) scanned in 20 seconds
prometheus:~ > _
prometheus:~ > nmap -sS 192.168.0.1Starting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on gateway.matrix.net (192.168.0.1):
Port State Protocol Service
21 open tcp ftp
23 open tcp telnet
139 open tcp netbios-ssn
8080 open tcp http-proxyNmap run completed -- 1 IP address (1 host up) scanned in 0 seconds
prometheus:~ > _
3.4.1 Einführung3.5 TCP-Xmas-Tree-Port-ScanDer Parameter -sF kann den Network Mapper als Root veranlassen einen Stealth-FIN-Scan durchzuführen, bei jener Technik ein FIN-Paket zum Ziel-Port übertragen wird. Nach der Empfehlung von RFC 793 (http://www.ietf.org/rfc/rfc0793.txt) müsste der Host danach RST für alle geschlossenen Ports zurückgeben.3.4.2 BesonderheitenDies ist eine weitere Scanning-Möglichkeit, die zur Nutzung den Status Root voraussetzt.3.4.3 Beispiel bei BeOS 4.5Diese Scanning-Technik funktioniert normalerweise nur bei UNIX-basierenden TCP-Stacks, was wiedereinmal sehr gut bei der inkorrekten Implementierung von Microsoft in ihr Windows 98 deutlich wird.
gateway:~ > nmap -sF 192.168.0.23.4.4 Beispiel bei Microsoft Windows 98Starting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on prometheus.matrix.net (192.168.0.2):
Port State Protocol Service
23 open tcp telnetNmap run completed -- 1 IP address (1 host up) scanned in 4 seconds
gateway:~ > _
prometheus:~ > nmap -sF 192.168.0.33.4.5 Beispiel bei SuSE Linux 6.3tarting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
No ports open for host rieekan.matrix.net (192.168.0.3)
Nmap run completed -- 1 IP address (1 host up) scanned in 21 secondsprometheus:~ > _
prometheus:~ > nmap -sF 192.168.0.1Starting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on gateway.matrix.net (192.168.0.1):
Port State Protocol Service
21 open tcp ftp
23 open tcp telnet
139 open tcp netbios-ssn
8080 open tcp http-proxyNmap run completed -- 1 IP address (1 host up) scanned in 0 seconds
prometheus:~ > _
3.5.1 Einführung3.6 TCP-Null-Port-ScanDer Parameter -sX ermöglicht eine Technik, bei der der Scanner ein FIN-, ein URG- und ein PUSH-Paket zum Ziel-Port schickt. Nach den Empfehlungen von RFC 792 (http://www.ietf.org/rfc/rfc0792.txt) müsste der Host RST für alle geschlossenen Ports zurückgeben.3.5.2 BesonderheitenEs sind Root-Rechte für das Durchführen eines solchen Scans von Nöten.3.5.3 Beispiel bei BeOS 4.5Meistens funktioniert dieser Scan nur bei Systemen mit UNIX-Protokollstapeln; siehe Windows 98.
gateway:~ > nmap -sX 192.168.0.23.5.4 Beispiel bei Microsoft Windows 98Interesting ports on prometheus.matrix.net (192.168.0.2):
Port State Protocol Service
23 open tcp telnetNmap run completed -- 1 IP address (1 host up) scanned in 3 seconds
gateway:~ > _
prometheus:~ > nmap -sX 192.168.0.33.5.5 Beispiel bei SuSE Linux 6.3Starting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
No ports open for host rieekan.matrix.net (192.168.0.3)
Nmap run completed -- 1 IP address (1 host up) scanned in 19 secondsprometheus:~ > _
prometheus:~ > nmap -sX 192.168.0.1Starting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on gateway.matrix.net (192.168.0.1):
Port State Protocol Service
21 open tcp ftp
23 open tcp telnet
139 open tcp netbios-ssn
8080 open tcp http-proxyNmap run completed -- 1 IP address (1 host up) scanned in 1 second
prometheus:~ > _
3.6.1 Einführung3.7 UDP-Port-ScanMit dem Parameter -sN führt nmap einen sogenannten TCP-Null-Scan durch, bei dem alle Flaggen ausgeschaltet werden. Nach den Empfehlungen von RFC 793 (http://www.ietf.org/rfc/rfc0793.txt) müsste das Ziel-System RST für alle geschlossenen Ports retournieren.3.6.2 BesonderheitenUm einen TCP-Null-Scan durchzuführen ist der Besitz des Status von Root nötig.3.6.3 Beispiel bei BeOS 4.5Auch dieser Scan funktioniert meist nur bei Systemen mit UNIX-IP-Stacks.
gateway:~ > nmap -sX 192.168.0.23.6.4 Beispiel bei Microsoft Windows 98Starting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on prometheus.matrix.net (192.168.0.2):
Port State Protocol Service
23 open tcp telnetNmap run completed -- 1 IP address (1 host up) scanned in 4 seconds
gateway:~ > _
prometheus:~ > nmap -sX 192.168.0.33.6.5 Beispiel bei SuSE Linux 6.3Starting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
No ports open for host rieekan.matrix.net (192.168.0.3)
Nmap run completed -- 1 IP address (1 host up) scanned in 19 secondsprometheus:~ > _
prometheus:~ > nmap -sN 192.168.0.1Starting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on gateway.matrix.net (192.168.0.1):
Port State Protocol Service
21 open tcp ftp
23 open tcp telnet
139 open tcp netbios-ssn
8080 open tcp http-proxyNmap run completed -- 1 IP address (1 host up) scanned in 1 second
prometheus:~ > _
3.7.1 Einführung3.8 FTP-"Bounce-Attack"-Port-ScanMit dem Parameter -sU führt nmap einen UDP-Port-Scan durch, bei dem lediglich ein UDP-Paket zum Ziel-Port übertragen wird. Wenn der Ziel-Port mit der Nachricht "ICMP Port unreachable" den Erhalt quittiert, ist der Port inaktiv und somit geschlossen. Falls diese ICMP-Nachricht nicht an den scannenden Clienten zurückgeschickt wird, kann davon ausgegangen werden, dass der Port horcht.3.7.2 BesonderheitenAls erstes muss erwähnt sein, dass auch diese Scanning-Technik Root-Rechte benötigt.3.7.3 Beispiel bei BeOS 4.5UDP ist als verbindungsloses Protokoll bekannt und bietet daher nicht so genaue Transaktionen wie TCP. Aus diesem Grunde hängt die Genauigkeit dieser Scan-Technik von vielen kleineren Faktoren wie zum Beispiel der Auslastung des Netzwerks oder den Systemressourcen ab. Desweiteren kann sich ein UDP-Scan extrem in die Länge ziehen, wenn im grossen Umfang Paketfilter eigesetzt werden sollten. UDP-Scans über das Internet sind eine sehr undankbare Aufgabe.
Sehr interessant ist, dass der Scan einwandfreie Informationen über Microsoft Windows 98 offenbart, jedoch den User mit einer absolut korrupierten Ausgabe bei Scans, die auf BeOS 4.5 losgelassen werden, konfrontiert wird.
gateway:~ > nmap -sU 192.168.0.23.7.4 Beispiel bei Microsoft Windows 98Starting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on prometheus.matrix.net (192.168.0.2):
Port State Protocol Service
1 open udp tcpmux
2 open udp compressnet
3 open udp compressnet
4 open udp unknown
5 open udp rje
[...]
10080 open udp amanda
17007 open udp isode-dua
18000 open udp biimenu
31337 open udp BackOrifice
47557 open udp dbbrowseNmap run completed -- 1 IP address (1 host up) scanned in 23 seconds
gateway:~ > _
prometheus:~ > nmap -sU 192.168.0.3Starting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on rieekan.matrix.net (192.168.0.3):
Port State Protocol Service
137 open udp netbios-ns
138 open udp netbios-dgm
1025 open udp blackjackNmap run completed -- 1 IP address (1 host up) scanned in 15 seconds
prometheus:~ > _
3.8.1 EinführungMit dem Nutzen des Parameters -b <ftp_relay_host> greift nmap auf eine Technik zurück, die von Hobbit in seiner Veröffentlichung bei Bugtraq 1995 (http://geek-girl.com/bugtraq/1995_3/0047.html) bekannt gemacht hat. In jenem Dokument wird auf eine Schwäche des FTP-Protokolls hingewiesen, welches in RFC 959 (http://www.ietf.org/rfc/rfc0959.txt) näher erläutert wird. Im Grunde genommen ist diese Technik eine hinterlistige Methode, die versucht Verbindungen zu einem FTP-Server durch den Missbrauch des Ports für FTP-Proxy-Verbindungen zu vertuschen. Wie Hobbit relativ detailliert in jenem Bericht umschreibt, können solche Angriffe für die Übermittlung von fast nicht zurückverfolgbaren Mails und News, für Attacken auf beliebige Systeme durch das Füllen von Festplatten oder das Durchbrechen von Firewalls genutzt werden.3.8.2 BesonderheitenDiese Scanning-Technik ermöglicht das erfolgreiche und graziöse Vertuschen der Scan-Herkunft.Zugleich sind hohe Anforderungen für die Durchführung dieser Funktion nötig: Der FTP-Server ein beschreibbares Verzeichnis haben sowie falsche Port-Informationen mit dem PORT-Befehl von nmap erlauben.
Neben diesen Anforderungen an den Host kann ein solcher Scan sehr zeitintensiv sein.
4.1 Sehr kleine fragmentierte Pakete benutzen4.1.1 Einführung4.2 Hosts nicht mit "ping" ansprechenDurch das zusätzliche Nutzen der Option -f werden sehr kleine fragmentierte Pakete für SYN-, FIN-, Xmas- oder NULL-Scans verwendet. Das bedeutet, dass die TCP-Header auf mehrere Pakete verteilt werden, wodurch bei Firewall-Elementen und Intruder-Detection-Systeme unter Umständen ohne Aufsehen Scans durchgeführt werden können, da bei älteren Geräten eventuell bei der Einstellung für volle Datendurchsatz-Rate die Pakete nicht zuerst defragmentiert werden. Heutzutage werden in den meisten Fällen jedoch die Paket-Filter die einzelnen Pakete in eine Warteschlange stellen, bevor die Pakete ausgwertet werden, was das Ziel dieser Option dadurch in weite Ferne rücken lässt.4.1.2 BesonderheitenDiese Option benötigt automatisch Root-Rechte zur Durchführung.Bei verschiedenen Test-Läufen in meinem Netzwerk ist mir aufgefallen, dass ein SYN-Scan mit einer grossen Anzahl klein fragmentierter Pakete in einer kleinen Anzahl Versuche nmap verfälschte Daten ausgab. Der Test lief von einem SuSE Linux 6.3-Client mit 10 MBit/Sek. durch ein Koaxial-Kabel gegen mein SuSE Linux 6.3-Gateway. Nmap behauptete in einigen Fällen, dass zwischen dem zweitletzten wirklich offenen Port 139 (netbios-ssn) und dem allerletzten Port 8080 (http-proxy) ein gefilterter TCP-Port offen sei.
4.2.1 Einführung4.3 TCP-PingsDer Parameter -P0 verhindert das Nutzen der Ping-Funktion während eines Scans, und ermöglicht so das Abscannen von Domains wie zum Beispiel www.domain.org .4.3.1 Einführung4.4 ICMP-PingsDer Parameter -PT <Port> verwendet einen TCP-Ping-Scan um festzustellen, welche Hosts im Netzwerk erreichbar sind. Diese Option kann auch ohne die Definierung eines Ports verwendet werden.4.4.1 Einführung4.5 Parallele Ausführung von TCP- und ICMP-PingDer Parameter -PI lässt sich verwenden wie der Parameter -PT <Port> für TCP-Ping-Scans, wobei bei dieser Funktion jedoch stattdessen ICMP-Pakete für das Auskundschaften der Erreichbarkeit der Computer im Netzwerk zuständig ist.4.5.1 Einführung4.6 TCP-SYN-Suchlauf bei TCP-Ping-ScanDer Parameter -PB <Port> eröffnet dem Anwender die Option des Nutzens eines parallelen Ping-Scans mit TCP- und ICMP-Paketen.4.6.1 Einführung4.7 Fingerprints zur Ermittlung des BetriebssystemsHierbei kann mit dem Anhängsel -PS ein SYN-Suchlauf statt des standartmässigen ACK-Suchlaufs bei TCP-Ping-Scans verwendet werden.4.7.1 Einführung4.8 Nur gewisse Ports ansprechenMit -O wird ein sogenannter Fingerprint des gescannten Systems angefertigt, wodurch das verwendete Betriebssystem mit ziemlicher Wahrscheinlichkeit korrekt ermittelt werden kann.4.7.2 BesonderheitenDiese Option erwartet verständlicherweise Root-Privilegien, da mit dem gewussten Nutzen dieser Option einem Angreifer der erste Schritt für das Eindringen in ein System im Netzwerk ermöglicht wird.4.7.3 Beispiel bei Microsoft Windows 98Es kommt nahezu nie vor, dass ein falsches Betriebssystem prognostiziert wird, solange die Protokollstapel beim Host nicht manipuliert wurden. Es kann höchstens vorkommen dass nmap dem Fingerabdruck des Computers kein Betriebssystem zuordnen kann. Sollte es einem Endanwender von nmap möglich sein das Betriebssystem zu identifizieren, kann er per CGI-Script auf http://www.insecure.org/cgi-bin/nmap-submit.cgi aktiv zur Perfektionierung von nmap beitragen.
Mit Eingriffen in die Handhabung des Betriebssystems bei Verbindungs-Anforderungen und direkt beim Protokollstapel könnte ein anderes Betriebssystem vorgetäuscht werden. Diese Aktion ist jedoch mit dem bitteren Beigeschmack eines möglichen Performance- und Stabilitäts-Verlusts des Betriebssystems in Angriff zu nehmen.
prometheus:~ > nmap 192.168.0.3 -O4.7.4 Beispiel bei SuSE Linux 6.3Starting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on rieekan.matrix.net (192.168.0.3):
Port State Protocol Service
139 open tcp netbios-ssnTCP Sequence Prediction: Class=trivial time dependency
Difficulty=0 (Trivial joke)
Remote operating system guess: Windows NT4 / Win95 / Win98Nmap run completed -- 1 IP address (1 host up) scanned in 7 seconds
prometheus:~ > _
prometheus:~ > nmap 192.168.0.3 -O4.7.5 Beispiel bei unbekanntem BetriebssystemStarting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on gateway.matrix.net (192.168.0.1):
Port State Protocol Service
21 open tcp ftp
23 open tcp telnet
139 open tcp netbios-ssn
8080 open tcp http-proxyTCP Sequence Prediction: Class=random positive increments
Difficulty=2150475 (Good luck!)
Remote operating system guess: Linux 2.1.122 - 2.2.12Nmap run completed -- 1 IP address (1 host up) scanned in 1 second
prometheus:~ > _
prometheus:~ > nmap 192.168.0.6 -OStarting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on hidden.matrix.net (192.168.0.6):
Port State Protocol Service
7 open tcp echo
9 open tcp discard
13 open tcp daytime
17 open tcp qotd
19 open tcp chargen
[...]
465 open tcp smtps
1030 open tcp iad1
1433 open tcp ms-sql-s
6667 open tcp irc
6668 open tcp ircTCP Sequence Prediction: Class=trivial time dependency
Difficulty=11 (Easy)
No OS matches for host (If you know what OS is running on it, see http://www.insecure.org/cgi-bin/nmap-submit.cgi).
TCP/IP fingerprint:
TSeq(Class=RI%gcd=1%SI=F4F9)
TSeq(Class=TD%gcd=1%SI=A)
TSeq(Class=TD%gcd=1%SI=B)
T1(Resp=Y%DF=Y%W=4470%ACK=S++%Flags=AS%Ops=M)
T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=)
T3(Resp=Y%DF=Y%W=4470%ACK=S++%Flags=AS%Ops=M)
T4(Resp=Y%DF=N%W=0%ACK=O%Flags=R%Ops=)
T5(Resp=Y%DF=N%W=0%ACK=S++%Flags=AR%Ops=)
T6(Resp=Y%DF=N%W=0%ACK=O%Flags=R%Ops=)
T7(Resp=Y%DF=N%W=0%ACK=S++%Flags=AR%Ops=)
T7(Resp=N)
PU(Resp=Y%DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=F%ULEN=134%DAT=E)Nmap run completed -- 1 IP address (1 host up) scanned in 19 seconds
prometheus:~ > _
4.8.1 Einführung4.9 Scan von falschen Hosts mit richtigen Hosts zusammenführenMit der Option -p <Bereich> können nur einzelne Ports oder ein Port-Bereich angesprochen werden, was einen deutlischen Geschwindigkeits-Vorteil mit sich bringt.4.9.1 Einführung4.10 Der schnelle ScanDfalscher_Host1, falscher_Host2, ME, falscher_Host3 [,...] führt Scans von falschen Hosts zusammen mit echten Hosts aus. Wenn Sie sich für eine Reihenfolge interessieren, in der die Hostadresse erscheint, führen Sie ME in der Liste auf. Sollte ein Ziel den Scan entdecken, ist es unwahrscheinlich, dass die echte IP-Adresse unter den falschen Adressen erkannt wird.4.10.1 Einführung4.11 Besitzer eines Prozesses ermittelnMit der Funktion -F wird ähnlich "Strobe" ein ziemlich schneller Scan durchgeführt, da nur die Ports angesprochen werden, die in /etc/services verewigt wurden. Normalerweise reicht ein Scan auf diese Standart-Ports aus, da damit die gängigsten Dienste in Erfahrung gebracht werden können.4.11.1 Einführung4.12 DNS-Auflösung deaktivierenMit dem Parameter -I wird die identd-Information laut RFC 1413 (http://www.ietf.org/rfc/rfc1413.txt) über die laufenden Prozesse auf dem Ziel-System eingeholt.4.11.2 BesonderheitenWie die Funktion zum erstellen von Fingerprints ist auch diese Option in den Händen eines potentiellen Eindringlings ungern gesehen und erfordert daher Root-Rechte zur Ausführung.4.11.3 Beispiel bei Microsoft Windows 98prometheus:~ > nmap 192.168.0.3 -I4.11.4 Beispiel bei SuSE Linux 6.3Starting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on rieekan.matrix.net (192.168.0.3):
Port State Protocol Service Owner
139 open tcp netbios-ssnNmap run completed -- 1 IP address (1 host up) scanned in 6 seconds
prometheus:~ > _
prometheus:~ > nmap 192.168.0.1 -IStarting nmap V. 2.3BETA6 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on gateway.matrix.net (192.168.0.1):
Port State Protocol Service Owner
21 open tcp ftp mruef
23 open tcp telnet
139 open tcp netbios-ssn rieekan
8080 open tcp http-proxy lanmanNmap run completed -- 1 IP address (1 host up) scanned in 1 second
prometheus:~ > _
4.12.1 Einführung4.13 Komplette DNS-Auflösung erzwingenUm einen Ping-Scan zu beschleunigen kann mit der Option -n die DNS-Auflösung ausgeschaltet werden.4.13.1 Einführung4.14 Ausgabe in eine ProtokolldateiDie Option -R versucht während eines Scan-Vorgangs alle Host-Namen aufzulösen, und zwar nicht nur die aktiven. Durch die explizite Anweisung auch inaktive Rechner-Namen in Erfahrung zu bringen, kann diese Funktion unter Umständen einen Durchlauf extrem in die Länge ziehen.4.14.1 Einführung4.15 Nutzen einer EingabedateiEs gibt zwei differente Optionen, die auch jeweils zu verschiedenen Zwecken gedacht sind aber jeweils das gleiche Ziel haben: Die Weiterverarbeitung der gewonnenen Informationen soll ermöglicht werden.Mit der Option -o <Protokolldatei> wird die Ausgabe des Scan-Durchlaufs in ein für einen Menschen lesbares Format in die spezifizierte Protokolldatei geschrieben.4.14.1b Von der Maschine auswertbarDer Parameter -m <Protokolldatei> ermöglicht einem Computer die Weiterverarbeitung der durch das Nutzen von nmap gewonnene Erkenntnisse, da die Protokolldatei in einer für den Maschinen sehr einfach lesbare Form geschrieben wurde.4.15.1 Einführung4.16 Ursprungsort der Ports festlegenMit -i <Eingabedatei> wird aus einer dafür vorgesehenen Datei eine Liste mit IP-Adressen oder Host-Namen eingelesen. Der Bindestrich sollte für das Benutzen von stdin angewandt werden.4.16.1 Einführung4.17 IP-Source manipulierenMit -g <Portadresse> wird der Ursprungsport eines Scans definiert.4.16.2 BesonderheitenDie Ports 20 und 53 sind erfahrungsgemäss eine gute Wahl.4.17.1 Einführung4.18 Die Verbose-FunktionEine für potentielle Angreifer oft gern genutzte Funktion ist das angeben einer falschen Source-IP-Adresse bei SYN- oder FIN-Scans, wodurch das Herausfinden der Scan-Quelle erschwert werden soll. Um dies zu realisieren wird auf -S <IP-Adresse> zurückgegriffen.4.17.2 BesonderheitenDiese wirklich exzellent ausgedachte und durchgesetzte Funktion kann unter Umständen auch für Denial of Service-Attacken genutzt werden, falls ein Host angegeben wird, der nicht ansprechbar ist.4.18.1 Einführung4.19 Auswahl der DeviceDurch Hilfe von -v werden einzelne Schritte von nmap auskommentiert, was vor allem Neulingen die Arbeit erleichtern kann.4.18.2 BesonderheitenDurch die Wahl von -vv kann eine noch detailliertere Kommentierung in Anspruch genommen werden.4.19.1 Einführung4.20 argv beeinflussenMit -e <Gerätename> wird bestimmt auf welche Device die Datenpakete auf die Reise geschickt werden sollen. Jenachdem muss für den Gerätename eth0, eth1 oder ppp0 definiert werden.4.20.1 Einführung-q stellt argv auf ein bestimmtes Verhalten ein.4.20.2 BesonderheitenDadurch können Scans unauffälliger durchgeführt werden, was von Angreifern meist ausgenutzt wird, falls der Faktor Zeit nur eine untergeordnete Rolle spielt.