|
| |
Network Mapper (nmap)
Erweiterte Scanning-Techniken mit dem Network Mapper
(nmap)
Geschrieben von Marc Ruef <marc.ruef@computec.ch>
für http://www.computec.ch/
Version 1.0a 28. April 2000
1.0 Inhaltsverzeichnis
1.0 Inhaltsverzeichnis
2.0 Einführung
2.1 Erweiterte Parameter
3.0 Die möglichen Scan-Techniken
3.1 Ping-Suchlauf
3.1.1 Einführung
3.1.2 Besonderheiten
3.1.3 Beispiel
3.2 TCP-Port-Scan mit Verbindungsaufbau
3.2.1 Einführung
3.2.2 Besonderheiten
3.2.3 Beispiel bei BeOS 4.5
3.2.4 Beispiel bei Microsoft Windows 98
3.2.5 Beispiel bei SuSE Linux 6.3
3.3 TCP-SYN-Stealth-Port-Scan
3.3.1 Einführung
3.3.2 Besonderheiten
3.3.3 Beispiel bei BeOS 4.5
3.3.4 Beispiel bei Microsoft Windows 98
3.3.5 Beispiel bei SuSE Linux 6.3
3.4 Stealth-FIN-Port-Scan
3.4.1 Einführung
3.4.2 Besonderheiten
3.4.3 Beispiel bei BeOS 4.5
3.4.4 Beispiel bei Microsoft Windows 98
3.4.5 Beispiel bei SuSE Linux 6.3
3.5 TCP-Xmas-Tree-Port-Scan
3.5.1 Einführung
3.5.2 Besonderheiten
3.5.3 Beispiel bei BeOS 4.5
3.5.4 Beispiel bei Microsoft Windows 98
3.5.5 Beispiel bei SuSE Linux 6.3
3.6 TCP-Null-Port-Scan
3.6.1 Einführung
3.6.2 Besonderheiten
3.6.3 Beispiel bei BeOS 4.5
3.6.4 Beispiel bei Microsoft Windows 98
3.6.5 Beispiel bei SuSE Linux 6.3
3.7 UDP-Port-Scan
3.7.1 Einführung
3.7.2 Besonderheiten
3.7.3 Beispiel bei BeOS 4.5
3.7.4 Beispiel bei Microsoft Windows 98
3.8 FTP-"Bounce-Attack"-Port-Scan
3.8.1 Einführung
3.8.2 Besonderheiten
4.0 Parameter für zusätzliche Optionen
4.1 Sehr kleine fragmentierte Pakete benutzen
4.1.1 Einführung
4.1.2 Besonderheiten
4.2 Hosts nicht mit "ping" ansprechen
4.2.1 Einführung
4.3 TCP-Pings
4.3.1 Einführung
4.4 ICMP-Pings
4.4.1 Einführung
4.5 Parallele Ausführung von TCP- und ICMP-Ping
4.5.1 Einführung
4.6 TCP-SYN-Suchlauf bei TCP-Ping-Scan
4.6.1 Einführung
4.7 Fingerprints zur Ermittlung des Betriebssystems
4.7.1 Einführung
4.7.2 Besonderheiten
4.7.3 Beispiel bei Microsoft Windows 98
4.7.4 Beispiel bei SuSE Linux 6.3
4.7.5 Beispiel bei unbekanntem Betriebssystem
4.8 Nur gewisse Ports ansprechen
4.8.1 Einführung
4.9 Scan von falschen Hosts mit richtigen Hosts zusammenführen
4.9.1 Einführung
4.10 Der schnelle Scan
4.10.1 Einführung
4.11 Besitzer eines Prozesses ermitteln
4.11.1 Einführung
4.11.2 Besonderheiten
4.11.3 Beispiel bei Microsoft Windows 98
4.11.4 Beispiel bei SuSE Linux 6.3
4.12 DNS-Auflösung deaktivieren
4.12.1 Einführung
4.13 Komplette DNS-Auflösung erzwingen
4.13.1 Einführung
4.14 Ausgabe in einer Protokolldatei
4.14.1 Einführung
4.14.1a Vom Menschen lesbar
4.14.1b Von der Maschine auswertbar
4.15 Nutzen einer Eingabedatei
4.15.1 Einführung
4.16 Ursprungsort der Ports festlegen
4.16.1 Einführung
4.16.2 Besonderheiten
4.17 IP-Source manipulieren
4.17.1 Einführung
4.17.2 Besonderheiten
4.18 Die Verbose-Funktion
4.18.1 Einführung
4.18.2 Besonderheiten
4.19 Auswahl der Device
4.19.1 Einführung
4.20 argv beeinflussen
4.20.1 Einführung
4.20.2 Besonderheiten
2.0 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.
Nmap 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-Typen
Folgend nun die original Ausgabe von nmap ohne Parameter-Eingabe:
mruef@prometheus:~ > nmap
nmap 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.0 Die möglichen Scan-Techniken
3.1 Ping-Suchlauf
3.1.1 Einführung
Der 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 Besonderheiten
Fü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 Beispiel
mruef@prometheus:~ > nmap -sP 192.168.0.0/24
Starting 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 second
mruef@prometheus:~ > _
3.2 TCP-Port-Scan mit Verbindungsaufbau
3.2.1 Einführung
Der 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.
Um 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.
3.2.2 Besonderheiten
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.5
mruef@gateway:~ > nmap -sT 192.168.0.2
Starting 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 telnet
Nmap run completed -- 1 IP address (1 host up) scanned in 2 seconds
mruef@gateway:~ > _
3.2.4 Beispiel bei Microsoft
Windows 98
mruef@prometheus:~ > nmap -sT 192.168.0.3
Starting 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-ssn
Nmap run completed -- 1 IP address (1 host up) scanned in 8 seconds
mruef@prometheus:~ > _
3.2.5 Beispiel bei SuSE Linux 6.3
mruef@prometheus:~ > nmap -sT 192.168.0.1
Starting 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-proxy
Nmap run completed -- 1 IP address (1 host up) scanned in 0 seconds
mruef@prometheus:~ > _
3.3 TCP-SYN-Stealth-Port-Scan
3.3.1 Einführung
Der 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 Besonderheiten
Diese 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.
Interessant ist die arg verfälschte Ausgabe eines TCP-SYN-Stealth-Port-Scans,
wenn er auf ein Windows 98-System ausgerichtet ist.
3.3.3 Beispiel bei BeOS 4.5
gateway:~ > nmap -sS 192.168.0.2
Starting 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 telnet
Nmap run completed -- 1 IP address (1 host up) scanned in 3 seconds
gateway:~ > _
3.3.4 Beispiel bei Microsoft Windows
98
prometheus:~ > nmap -sS 192.168.0.3
Starting 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-errors
Nmap run completed -- 1 IP address (1 host up) scanned in 20 seconds
prometheus:~ > _
3.3.5 Beispiel bei SuSE Linux 6.3
prometheus:~ > nmap -sS 192.168.0.1
Starting 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-proxy
Nmap run completed -- 1 IP address (1 host up) scanned in 0 seconds
prometheus:~ > _
3.4 Stealth-FIN-Port-Scan
3.4.1 Einführung
Der 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 Besonderheiten
Dies ist eine weitere Scanning-Möglichkeit, die zur Nutzung
den Status Root voraussetzt.
Diese 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.
3.4.3 Beispiel bei BeOS 4.5
gateway:~ > nmap -sF 192.168.0.2
Starting 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 telnet
Nmap run completed -- 1 IP address (1 host up) scanned in 4 seconds
gateway:~ > _
3.4.4 Beispiel bei Microsoft Windows
98
prometheus:~ > nmap -sF 192.168.0.3
tarting 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 seconds
prometheus:~ > _
3.4.5 Beispiel bei SuSE Linux 6.3
prometheus:~ > nmap -sF 192.168.0.1
Starting 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-proxy
Nmap run completed -- 1 IP address (1 host up) scanned in 0 seconds
prometheus:~ > _
3.5 TCP-Xmas-Tree-Port-Scan
3.5.1 Einführung
Der 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 Besonderheiten
Es sind Root-Rechte für das Durchführen eines solchen
Scans von Nöten.
Meistens funktioniert dieser Scan nur bei Systemen mit UNIX-Protokollstapeln;
siehe Windows 98.
3.5.3 Beispiel bei BeOS 4.5
gateway:~ > nmap -sX 192.168.0.2
Interesting ports on prometheus.matrix.net (192.168.0.2):
Port State
Protocol Service
23 open
tcp telnet
Nmap run completed -- 1 IP address (1 host up) scanned in 3 seconds
gateway:~ > _
3.5.4 Beispiel bei Microsoft Windows
98
prometheus:~ > nmap -sX 192.168.0.3
Starting 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 seconds
prometheus:~ > _
3.5.5 Beispiel bei SuSE Linux 6.3
prometheus:~ > nmap -sX 192.168.0.1
Starting 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-proxy
Nmap run completed -- 1 IP address (1 host up) scanned in 1 second
prometheus:~ > _
3.6 TCP-Null-Port-Scan
3.6.1 Einführung
Mit 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 Besonderheiten
Um einen TCP-Null-Scan durchzuführen ist der Besitz des
Status von Root nötig.
Auch dieser Scan funktioniert meist nur bei Systemen mit UNIX-IP-Stacks.
3.6.3 Beispiel bei BeOS 4.5
gateway:~ > nmap -sX 192.168.0.2
Starting 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 telnet
Nmap run completed -- 1 IP address (1 host up) scanned in 4 seconds
gateway:~ > _
3.6.4 Beispiel bei Microsoft Windows
98
prometheus:~ > nmap -sX 192.168.0.3
Starting 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 seconds
prometheus:~ > _
3.6.5 Beispiel bei SuSE Linux 6.3
prometheus:~ > nmap -sN 192.168.0.1
Starting 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-proxy
Nmap run completed -- 1 IP address (1 host up) scanned in 1 second
prometheus:~ > _
3.7 UDP-Port-Scan
3.7.1 Einführung
Mit 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 Besonderheiten
Als erstes muss erwähnt sein, dass auch diese Scanning-Technik
Root-Rechte benötigt.
UDP 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.
3.7.3 Beispiel bei BeOS 4.5
gateway:~ > nmap -sU 192.168.0.2
Starting 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 dbbrowse
Nmap run completed -- 1 IP address (1 host up) scanned in 23 seconds
gateway:~ > _
3.7.4 Beispiel bei Microsoft Windows
98
prometheus:~ > nmap -sU 192.168.0.3
Starting 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 blackjack
Nmap run completed -- 1 IP address (1 host up) scanned in 15 seconds
prometheus:~ > _
3.8 FTP-"Bounce-Attack"-Port-Scan
3.8.1 Einführung
Mit 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 Besonderheiten
Diese 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.0 Parameter für zusätzliche
Optionen
4.1 Sehr kleine fragmentierte
Pakete benutzen
4.1.1 Einführung
Durch 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 Besonderheiten
Diese 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 Hosts nicht mit "ping" ansprechen
4.2.1 Einführung
Der 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 TCP-Pings
4.3.1 Einführung
Der 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 ICMP-Pings
4.4.1 Einführung
Der 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 Parallele Ausführung von TCP-
und ICMP-Ping
4.5.1 Einführung
Der Parameter -PB <Port> eröffnet dem Anwender
die Option des Nutzens eines parallelen Ping-Scans mit TCP- und ICMP-Paketen.
4.6 TCP-SYN-Suchlauf bei TCP-Ping-Scan
4.6.1 Einführung
Hierbei kann mit dem Anhängsel -PS ein SYN-Suchlauf
statt des standartmässigen ACK-Suchlaufs bei TCP-Ping-Scans verwendet
werden.
4.7 Fingerprints zur Ermittlung des
Betriebssystems
4.7.1 Einführung
Mit -O wird ein sogenannter Fingerprint des gescannten
Systems angefertigt, wodurch das verwendete Betriebssystem mit ziemlicher
Wahrscheinlichkeit korrekt ermittelt werden kann.
4.7.2 Besonderheiten
Diese 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.
Es 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.
4.7.3 Beispiel bei Microsoft Windows
98
prometheus:~ > nmap 192.168.0.3 -O
Starting 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-ssn
TCP Sequence Prediction: Class=trivial time dependency
Difficulty=0 (Trivial joke)
Remote operating system guess: Windows NT4 / Win95 / Win98
Nmap run completed -- 1 IP address (1 host up) scanned in 7 seconds
prometheus:~ > _
4.7.4 Beispiel bei SuSE Linux 6.3
prometheus:~ > nmap 192.168.0.3 -O
Starting 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-proxy
TCP Sequence Prediction: Class=random positive increments
Difficulty=2150475 (Good luck!)
Remote operating system guess: Linux 2.1.122 - 2.2.12
Nmap run completed -- 1 IP address (1 host up) scanned in 1 second
prometheus:~ > _
4.7.5 Beispiel bei unbekanntem Betriebssystem
prometheus:~ > nmap 192.168.0.6 -O
Starting 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 irc
TCP 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 Nur gewisse Ports ansprechen
4.8.1 Einführung
Mit 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 Scan von falschen Hosts mit richtigen
Hosts zusammenführen
4.9.1 Einführung
Dfalscher_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 Der schnelle Scan
4.10.1 Einführung
Mit 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 Besitzer eines Prozesses ermitteln
4.11.1 Einführung
Mit 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 Besonderheiten
Wie 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
98
prometheus:~ > nmap 192.168.0.3 -I
Starting 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-ssn
Nmap run completed -- 1 IP address (1 host up) scanned in 6 seconds
prometheus:~ > _
4.11.4 Beispiel bei SuSE Linux 6.3
prometheus:~ > nmap 192.168.0.1 -I
Starting 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
lanman
Nmap run completed -- 1 IP address (1 host up) scanned in 1 second
prometheus:~ > _
4.12 DNS-Auflösung deaktivieren
4.12.1 Einführung
Um einen Ping-Scan zu beschleunigen kann mit der Option
-n die DNS-Auflösung ausgeschaltet werden.
4.13 Komplette DNS-Auflösung erzwingen
4.13.1 Einführung
Die 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 Ausgabe in eine Protokolldatei
4.14.1 Einführung
Es 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.
4.14.1a Vom Menschen lesbar
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 auswertbar
Der 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 Nutzen einer Eingabedatei
4.15.1 Einführung
Mit -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 Ursprungsort der Ports festlegen
4.16.1 Einführung
Mit -g <Portadresse> wird der Ursprungsport eines
Scans definiert.
4.16.2 Besonderheiten
Die Ports 20 und 53 sind erfahrungsgemäss eine gute Wahl.
4.17 IP-Source manipulieren
4.17.1 Einführung
Eine 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 Besonderheiten
Diese 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 Die Verbose-Funktion
4.18.1 Einführung
Durch Hilfe von -v werden einzelne Schritte von nmap
auskommentiert, was vor allem Neulingen die Arbeit erleichtern kann.
4.18.2 Besonderheiten
Durch die Wahl von -vv kann eine noch detailliertere
Kommentierung in Anspruch genommen werden.
4.19 Auswahl der Device
4.19.1 Einführung
Mit -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 argv beeinflussen
4.20.1 Einführung
-q stellt argv auf ein bestimmtes Verhalten ein.
4.20.2 Besonderheiten
Dadurch können Scans unauffälliger durchgeführt
werden, was von Angreifern meist ausgenutzt wird, falls der Faktor Zeit
nur eine untergeordnete Rolle spielt.
Siehe auch Bugtraq, FTP, ICMP, IP, Linux, Networking,
nmap, Ping, Port, RFC 792, RFC 793, RFC 1413, Scanning, Security, Strobe,
TCP, UDP, Unix, Windows
Ein empfehlesnwertes Print-Medium zu Scanning und
nmap ist "Das Anti-Hacker-Buch" (ISBN 3-8266-4072-1), erschienen im
mitp-Verlag (http://www.mitp.de/).
Dank für freundliche Hilfe und kooperative Zusammenarbeit
mit mir an diesem Dokument ernten in erster Linie Snakebyte,
Anthraxx
und DukeCS von Kryptocrew.
Dieser Text ist unverfälscht frei kopierbar!
| |
Network Mapper (nmap) |
|
Ihr Name: Besucher (nicht angemeldet).
Online: 1 aktive User.
|
|
Anmelden | Abmelden |
|
|
Benachrichtigen bei Änderungen: |
|
|
|
|
Antivirus-Infos: |
|
|