SelfLinux Sicherheit nmap - der Netzwerksicherheits-Scanner Abschnitt 2 | SelfLinux-0.13.0

| nmap - der Netzwerksicherheits-Scanner | Autoren Formatierung GFDL

#### 2 Mögliche Scan - Techniken (nmap Optionen)

Je nach dem welche Optionen verwendet wurden, ist nmap in der Lage, Auskunft über die folgenden Charakteristiken des Zielsystems zu geben:

- Genutztes Betriebssystem
- TCP- Sequenznummern
- Benutzername, unter der die an die Ports gebundene Software abläuft
- DNS-Name
- ob es sich um ein Smurf - System handelt und viele mehr.

Die Kombination verschiedener Optionen ist immer dann möglich, wenn ein Zusammenspiel auch Sinn macht. Einige Parameter können nur in Verbindung mit spezifischen Scan-Methoden genutzt werden.

#### 2.1 Ping - Suchlauf

Mit dem Parameter -sP kann nmap 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.

Viele gewissenhafte Firewall- und Systemadministratoren filtern unnötigen ICMP - Verkehr. nmap greift in diesem Falle auf eine andere Technik zurück - es wird ein TCP - Datagramm mit gesetztem ACK - Flag an einen potentiell offenen Port des Zielsystems geschickt. Der Empfang eines RST-Paketes bedeutet, dass das Zielsystem vorhanden und ansprechbar ist.

Führt auch diese Technik nicht zum Erfolg, so versucht nmap eine weitere Methode, die auf ein SYN - Datagramm zurückgreift, das auf ein RST oder SYN/ACK wartet.

Wichtig ist zu wissen, dass der Ping - Zugriff standardmäßig erfolgt. Wird dies nicht gewünscht, so ist mit dem Parameter -P0 dieses Verhalten zu deaktivieren.

Für Mass-Pings sind andere Tools nutzbar, deren Herangehensweise oftmals zu besseren Resultaten führt (Zum Beispiel fping, gping und hping).

user@linux $ 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

#### 2.2 TCP - Port Scan mit Verbindungsaufbau

Der Parameter -sT führt einen normalen TCP - Port Scan durch, bei dem eine Verbindung zum Ziel - Port aufgebaut wird. Der Client beginnt mit der Übertragung eines SYN-Paketes an den Server. 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-Way-Handshake).

Diese Scanning - Technik ist sehr leicht zu entdecken und wird mit größter Wahrscheinlichkeit in den Protokoll-Dateien des Zielsystems auftauchen. Dies ist die einzige Scan - Technik für unprivilegierte Anwender.

BeOS 4.5

user@linux $ 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

Microsoft Windows 98

user@linux $ 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

SuSE Linux 6.3

user@linux $ 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

#### 2.3 Stealth - Port Scan

Mit Stealth - Scans (Tarnkappen) kann die Netzwerkanalyse verdeckt erfolgen. Viele Firewall- und IDS - Systeme sind gegen solche Scans machtlos. Wie funktioniert das? Das 3-Way Handshake Protokoll wird missachtet oder anders gesagt: ein Stealth - Scan führt keinen kompletten Verbindungsaufbau durch. Die Interpretation der Antworten der Opferrechner führt zu den gewünschten Erkenntnissen. Weil keine vollständige TCP - Verbindung zustande kommt, spricht man auch vom halboffenen Scan.

#### 2.3.1 TCP - SYN - Stealth Portscan

Der Parameter -sS erlaubt es, einen halboffenen Scan durchzuführen. Es wird einfach ein SYN-Paket zum Ziel-Port übertragen. Antwortet der Ziel-Port mit SYN/ACK, kann davon ausgegangen werden, dass der Port den Listening - Status besitzt. Wird RST/ACK zurückgegeben, kann mit ziemlicher Wahrscheinlichkeit ein inaktiver Port zugeordnet werden. (Das Client-System überträgt nach dem Empfang des Paketes des Hosts ein RST/ACK-Paket, sodass keine vollständige Verbindung hergestellt wird.)

Diese Scanning - Technik funktioniert normalerweise nur bei UNIX-basierenden TCP - Stacks. Es zeigt sich wieder einmal die inkorrekte Implementierung der Windows - Stacks.

BeOS 4.5

root@linux # 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

Microsoft Windows 98

root@linux # 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

SuSE Linux 6.3

root@linux # 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

#### 2.3.2 Stealth FIN-, Xmas-Tree- oder Null-Scan-Modis

Die zugrundeliegende Idee besteht darin, dass laut RFC 793, S.64 geschlossene Ports auf derartige Zugriffe mit einem RST - Datagramm antworten während ansprechbare Ports die Anfragen ignorieren. Der FIN-Scan nutzt ein TCP - Datagramm mit gesetztem FIN - Flag, während der Xmas - Tree - Scan die TCP - Flags FIN, URG und PSH aktiviert. Der Null - Scan schaltet alle optionalen Flags ab.

Einige Firewall - Systeme (z. B. Paket-Filter) sind in der Lage, verdächtige SYN-Aktivitäten zu erkennen. Ebenso können Programme wie Synlogger oder Courtney diese SYN - Portscans als solche ausweisen.

#### 2.3.2.1 Stealth - FIN Portscan

Der Parameter -sF veranlasst nmap, einen Stealth - FIN Scan durchzuführen. Dabei wird einfach ein FIN-Paket zum Ziel-Port übertragen. Nach der Empfehlung von RFC 793 müsste der Host danach RST für alle geschlossenen Ports zurückgeben. Beispiele:

bei BeOS 4.5

root@linux # 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

bei Microsoft Windows 98

root@linux # nmap -sF 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 21 seconds

bei SuSE Linux 6.3

root@linux # 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

#### 2.3.2.2 TCP - Xmas - Tree Portscan

Der Parameter -sX ermöglicht das Senden eines FIN-, URG- und PUSH - Paketes zum gewünschten Ziel-Port. Nach den Empfehlungen von RFC 792 müsste der Host RST für alle geschlossenen Ports zurückgeben.

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. Beispiele

bei BeOS 4.5

root@linux # 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

bei Microsoft Windows 98

root@linux # 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

bei SuSE Linux 6.3

root@linux # 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

#### 2.3.2.3 TCP - Null Portscan

Mit dem Parameter -sN führt nmap einen sogenannten TCP-Null-Scan durch, bei dem alle Markierungen (Flags) ausgeschaltet werden. Nach den Empfehlungen aus RFC 793 müsste das Ziel-System RST für alle geschlossenen Ports retournieren.

Für den TCP-Null-Scan sind wieder Root-Rechte notwendig. Dieser Scan funktioniert meist nur bei Systemen mit UNIX-IP-Stacks. Beispiele:

bei BeOS 4.5

root@linux # 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

bei Microsoft Windows 98

root@linux # 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

bei SuSE Linux 6.3

root@linux # 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

#### 2.4 TCP/ACK-Scan

Mit der Option -sA wird diese erweiterte Scan - Technik angewendet, um ein Paketfilter- Regelwerk zu identifizieren. Zusätzlich kann diese Methode eine Stateful Inspection ( iptables) aufzeigen.

Dieser Scan - Typ schickt ein ACK - Paket an den spezifizierten Zielport. Kommt ein RST zurück, wird der besagte Port als unfiltered (dt. ungefiltert) eingestuft. Wird keine Rückantwort empfangen (oder kommt ein ICMP unreachable zurück), so weist nmap den Port als filtered (dt. gefiltert) aus. Wichtig ist, dass nmap normalerweise keine unfiltered-Meldung ausgibt. So sind keine Ports in der Ausgabe ein Indiz dafür, dass alle Zugriffe durchgekommen sind (und ein RST verursacht haben). Dieser Scan wird die Ports nie in einem open (dt. offenen) Status zeigen.

#### 2.5 Window - Scan

Diese erweiterte Scan - Technik, die mit Parameter -sW ausgewählt wird, ist dem ACK - Scan sehr ähnlich, außer, dass hiermit manchmal auch offene, ungefilterte und gefilterte Ports durch eine Anomalie in der durch die Betriebssysteme gewählten TCP - Window - Size entdeckt werden können.

#### 2.6 UDP - Portscan

Mit dem Parameter sU führt nmap einen UDP - Portscan durch, bei dem lediglich ein UDP-Paket (siehe RFC 768) 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.

Entgegen der weitläufigen Meinung, UDP-Scanning sei sinnlos, soll in diesem Zusammenhang auf die Lücke in Solaris' rpcbind hingewiesen werden. rpcbind kann am undokumentierten UDP - Port 32770 gefunden werden. Es ist also vollkommen irrelevant, ob Port 111 durch eine Firewall blockiert wird oder nicht. Als zweites Beispiel für die Sicherheitsrelevanz von UDP sei die populäre, von cDc entwickelte Backdoor namens Back - Orifice genannt, durch die Windows-Maschinen über einen frei wählbaren UDP - Port gesteuert werden können. Und drittens sollten die vielen potentiell verwundbaren UDP - basierten Dienste nicht vergessen werden: SNMP, TFTP, NFS, etc.

Ein UDP - Scan kann sich extrem in die Länge ziehen, wenn im großen Umfang Paketfilter eingesetzt werden. nmap ist in der Lage, Limitierungen hinsichtlich der maximalen Anzahl ausgehender ICMP-Fehlernachrichten (RFC 1812 Abs. 4.3.2.8) zu erkennen und mit einer dynamischen Geschwindigkeitsreduzierung zu reagieren. Dies verhindert das Verstopfen des Netzwerks mit unnötigen Paketen, die sowieso vom Zielsystem ignoriert werden würden.

Einmal mehr typisch, ignoriert Microsoft die Empfehlungen des RFCs, weshalb eine Einschränkung ausgehender ICMP - Fehlermeldungen gänzlich bei der TCP/IP - Implementierung auf Windows 9x und NT fehlt. Das Scannen sämtlicher UDP-Ports auf einer Windows - Maschine ist somit kein größeres Problem. Beispiele:

bei BeOS 4.5

root@linux # 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

bei Microsoft Windows 98

root@linux # 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

#### 2.7 IP protocol-Scans

Diese Methode kommt dann zum Tragen, wenn herausgefunden werden soll, welche IP - Protokolle das Zielsystem unterstützt. Bei dieser Technik wird für jedes IP - Protokoll ein RAW - IP - Paket mit fehlendem Protokoll - Header (ohne Daten) an das Zielsystem geschickt wird. Wird darauf mit einer ICMP protocol unreachable - Fehlermeldung reagiert, so ist davon auszugehen, dass das Zielsystem das Protokoll nicht beherscht. Nun kann nmap eine Liste der unterstützten Protokolle erstellen.

Einige Betriebssysteme (z.B. AIX, HP-UX und Digital UNIX) und Firewall-Lösungen verzichten gänzlich auf das Versenden der ICMP protocol unreachable - Fehlermeldungen. Als Resultat eines solchen Verhaltens behauptet nmap, dass sämtliche Protokolle offen sind.

#### 2.8 Verbergen der Identität - Idle-Scan

Diese erweiterte Scan - Technik, die mit Parameter -sI gewählt wird, ermöglicht ein verstecktes Scannen der TCP-Ports eines Zielssystems (dies bedeutet, dass keinerlei Pakete mit der richtigen IP - Absenderadresse verschickt werden).

Neben der absoluten Gewissheit, nicht direkt erkannt zu werden, können durch einen derartigen Scan IP - basierte Vertrauensbeziehungen aufgedeckt werden. Das Port - Listing zeigt die offenen Ports aus der Sicht eines beliebigen Zombie-Systems, welches durch den Parameter (-sI <Zombie-Host[:Zielport]>) explizit angegeben werden kann.

#### 2.9 RPC - Scan

Diese Methode arbeitet in Kombination mit den meisten möglichen Scan - Typen von nmap zusammen. Jeder als offen identifizierte TCP- bzw. UDP - Port wird mit einer Vielzahl von SunRPC - Nullkommandos überflutet, um eine Identifizierung des am RPC - Port lauschenden Dienstes vorzunehmen.

Kann ein solcher Dienst ermittelt werden, wird dessen Programmname und die Version ausgelesen. Beim Einsatz eines Portmappers sei hier das Verwenden von rpcinfo -p erwähnt.

#### 2.10 FTP - "Bounce - Attack" Portscan

Diese Scanning - Technik spielt heutzutage fast keine Rolle mehr, denn es basiert auf einem Feature des FTP-Protokolls, welches bei den meisten Servern mittlerweile deaktiviert wurde. Es wird mit Parameter -b <ftp_relay_host> aktiviert und ermöglicht das erfolgreiche und graziöse Vertuschen der Scan - Herkunft.

Die Technik wurde von Hobbit bei Bugtraq 1995 veröffentlicht: Es wird versucht, Verbindungen zu einem FTP-Server durch den Missbrauch des Ports für FTP - Proxy - Verbindungen zu vertuschen. Wie Hobbit relativ detailliert im o. g. Bericht beschreibt, 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.

Zugleich sind hohe Anforderungen für das Gelingen dieser Attacke nötig: Der FTP-Server muss ein beschreibbares Verzeichnis haben sowie falsche Port-Informationen mit dem PORT - Befehl von nmap erlauben. Es sei erwähnt, dass diesen Anforderungen an das Zielsystem ein solcher Scan sehr zeitintensiv sein kann.