ROOT ON FIRE Security, Monitoring, Networking, Linux

13Nov/090

Nmap 5.0 – Howto Teil 3: Port-Scans

Die folgenden Beispiele werden mit der aktuellen Nmap Version 5.0 durchgeführt.
Wie man Nmap 5.0 auf einem aktuellen Debian System installiert, habe ich hier erklärt.
Das Nmap Security Scanner Projekt und Insecure.org erlauben ausdrücklich, dass
man den Host scanme.nmap.org mit Nmap zu Testzwecken scannen darf.
Ich habe für die unten gezeigten Beispiele ausschließlich scanme.nmap.org und meine eigenen Rechner benutzt!

-sS (TCP-SYN-Scan)
Bei einem SYN-Scan schickt Nmap ein TCP-SYN-Paket an den Zielport / Host und wertet die Anwort aus.
Wenn der Port offen ist schickt der Zielhost ein SYN-ACK-Paket als Antwort, anderenfalls kommt ein RST-Paket.
Wenn keine Antwort oder ein ICMP Unreachable-Fehler (Typ 3, Code 1, 2, 3, 9, 10, 13) zurückkommt, wird der Port als gefiltert deklariert. Da Nmap die TCP-Verbindungen bei einem SYN-Scan nie komplett abschließt, ist der Scan sehr schnell und unauffällig.

r-o-f:~# nmap -sS scanme.nmap.org

Starting Nmap 5.00 ( http://nmap.org ) at 2009-11-13 20:21 CET
Interesting ports on scanme.nmap.org (64.13.134.52):
Not shown: 994 filtered ports
PORT      STATE  SERVICE
25/tcp    closed smtp
53/tcp    open   domain
70/tcp    closed gopher
80/tcp    open   http
113/tcp   closed auth
31337/tcp closed Elite

Nmap done: 1 IP address (1 host up) scanned in 26.41 seconds

-sT (TCP-Connect-Scan)
Ein TCP-Connect-Scan wird benutzt, wenn Nmap nicht mit einem priviliegerten User ausgeführt wird oder ein IPV6-Host bzw. Netz gescannt wird. Auf einem Unix System darf ein "normaler" User keine rohen TCP-Pakete verschicken, deshalb muss das Betriebssystem einen connect-Systemaufruf machen um eine TCP-Verbindung zum Zielport / Host herzustellen. Ein TCP-Connect-Scan ist deutlich langsammer als ein TCP-SYN-Scan da der Systemaufruf (connect) die TCP-Verbindung zum Ziel-Port vollständig beendet. Bei einem TCP-SYN-Scan setzt Nmap die Verbindung sofort nach Erhalt des Anwort-Paketes zurück.
Die Wahrscheinlichkeit einer Erkennung ist deutlich höher, da eine vollständige TCP-Verbindung im Normalfall protokolliert wird. Ein gut konfiguriertes IDS wird aber auch einen TCP-SYN-Scan erkennen.

r-o-f:~# nmap -sT scanme.nmap.org

Starting Nmap 5.00 ( http://nmap.org ) at 2009-11-13 20:22 CET
Interesting ports on scanme.nmap.org (64.13.134.52):
Not shown: 994 filtered ports
PORT      STATE  SERVICE
25/tcp    closed smtp
53/tcp    open   domain
70/tcp    closed gopher
80/tcp    open   http
113/tcp   closed auth
31337/tcp closed Elite

Nmap done: 1 IP address (1 host up) scanned in 50.68 seconds

-sU (UDP-Scan)
Bei einem UDP-Scan verschickt Nmap einen leeren UDP-Header an alle definierten Ports und wertet die ICMP-Antworten aus. Ein ICMP-Paket Typ 3 (unreachable) mit dem Code 3 bedeutet, dass der Port geschlossen ist. Wenn ein ICMP-Paket Typ 3 mit einem der Codes 1, 2, 9, 10, 13 als Antwort vom Zielhost kommt, wird der Port als "filtered" definiert. Wenn der Service direkt mit einem UDP-Paket antwortet ist der Port definitiv offen. Wenn Nmap keine Antwort bekommt, wird der port als "offen|gefiltert" klassifiziert (siehe Beispiel).

Ein UDP-Scan kann mit einem TCP-Scan oder einem SYN-Scan kombiniert werden (z.B. nmap -sS -Su). Beispiele für UDP-Service sind: DHCP (Port: 67 & 68), DNS (Port: 53) & SNMP (Port:161 & 162)

r-o-f:~# nmap -sU scanme.nmap.org

Starting Nmap 5.00 ( http://nmap.org ) at 2009-11-13 20:25 CET
All 1000 scanned ports on scanme.nmap.org (64.13.134.52) are open|filtered

Nmap done: 1 IP address (1 host up) scanned in 195.81 seconds


-sN (TCP-NULL-Scan), -sF ( FIN-Scan), -sX (Xmas-Scans), -sM (TCP-Maimon-Scan)

RFC konforme Systeme antworten auf Pakete, die kein ACK-, RST- oder SYN-Bit enthalten immer mit einem RST-Paket wenn der Port geschlossen ist. Bei offenen Ports kommt gar keine Antwort. Ein ICMP-Paket Typ 3 (unreachable) Code 1, 2, 3, 9, 10 oder 13 bedeutet, dass der Port gefiltert ist. Diese vier Scans sind sehr unauffällig, jedoch nicht unsichtbar. Ein gut konfiguriertes IDS kann auch diese Scan-Typen erkennen und entlarven.
Windows-Hosts halten sich nicht an den RFC-Standard und senden unabhängig davon, ob der Port offen oder geschlossen ist, ein RST-Paket zurück.

-sN (TCP-NULL-Scan)
Setzt keine Bits.

r-o-f:~# nmap -sN scanme.nmap.org

Starting Nmap 5.00 ( http://nmap.org ) at 2009-11-13 20:30 CET
All 1000 scanned ports on scanme.nmap.org (64.13.134.52) are open|filtered

Nmap done: 1 IP address (1 host up) scanned in 207.98 seconds

-sF (FIN-Scan)
Setzt nur TCP-FIN-Bit.

r-o-f:~# nmap -sF scanme.nmap.org

Starting Nmap 5.00 ( http://nmap.org ) at 2009-11-13 20:34 CET
All 1000 scanned ports on scanme.nmap.org (64.13.134.52) are open|filtered

Nmap done: 1 IP address (1 host up) scanned in 203.91 seconds

-sX (Xmas-Scan)
Setzt FIN-, PSH- und URG-Bit.

r-o-f:~# nmap -sX scanme.nmap.org

Starting Nmap 5.00 ( http://nmap.org ) at 2009-11-13 20:40 CET
All 1000 scanned ports on scanme.nmap.org (64.13.134.52) are open|filtered

Nmap done: 1 IP address (1 host up) scanned in 206.46 seconds

-sM (TCP-Maimon-Scan)
Setzt FIN- & ACK-Bit.

r-o-f:~# nmap -sM scanme.nmap.org

Starting Nmap 5.00 ( http://nmap.org ) at 2009-11-13 20:44 CET
All 1000 scanned ports on scanme.nmap.org (64.13.134.52) are open|filtered

Nmap done: 1 IP address (1 host up) scanned in 194.89 seconds

-sA (TCP-ACK-Scan)
Nmap schickt ein Testpaket, mit gesetztem ACK-Flag an die Zielports. Offene und geschlossene Ports werden mit einem RST-Paket antworten und sind somit ungefiltert. Ports, die eine ICMP Fehlermeldung zurückgeben werden als gefiltert markiert.
Mit diesem Scan-Typ lassen sich sehr gut Firewall-Regeln testen. Nmap unterscheidet hier nur zwischen gefiltert und ungefiltert.

r-o-f:~# nmap -sA scanme.nmap.org

Starting Nmap 5.00 ( http://nmap.org ) at 2009-11-13 20:46 CET
All 1000 scanned ports on scanme.nmap.org (64.13.134.52) are filtered

Nmap done: 1 IP address (1 host up) scanned in 193.81 seconds

-sW (TCP-Window-Scan)
Ein TCP-Window-Scan ist ein erweiterter TCP-ACK-Scan und kann bei einigen Systemen zwischen offenen und geschlossenen Ports anhand der TCP-Fenstergröße des RST-Pakets die beiden Zustände unterscheiden.
Nmap rechnet damit, dass bei offenen Ports die RST-Fenstergröße größer Null ist und das geschlossene Ports ein Fenstergröße von genau Null haben. Systeme, die nicht mit dieser Methode arbeiten, werden bei diesem Scan alle Ports als geschlossen anzeigen. Dieser Scan führt nur in sehr seltenen Fällen zu Erfolg.

r-o-f:~# nmap -sW scanme.nmap.org

Starting Nmap 5.00 ( http://nmap.org ) at 2009-11-13 20:48 CET
All 1000 scanned ports on scanme.nmap.org (64.13.134.52) are filtered

Nmap done: 1 IP address (1 host up) scanned in 204.00 seconds

--scanflags (Benutzerdefinierter TCP-Scan)
Bei diesem Scan, kann man die TCP-Flags je nach belieben setzen. Nmap erwartet eine numerischen Flag-Wert oder einen symbolischen Namen. Durch setzen verschiedener Flags, ist die Wahrscheinlichkeit einer IDS-Entdeckung sehr gering.

Beispiel mit gesetzen ACK-, SYN- & RST-Flag:

r-o-f:~# nmap --scanflags ACKSYNRST scanme.nmap.org

Starting Nmap 5.00 ( http://nmap.org ) at 2009-11-13 20:53 CET
All 1000 scanned ports on scanme.nmap.org (64.13.134.52) are filtered

Nmap done: 1 IP address (1 host up) scanned in 194.85 seconds

-sO (IP-Protokoll-Scan)
Bei einem IP-Protokoll-Scan gibt man mit -p die Protokollnummern zur Bestimmung des IP-Protokolls an, z.B. TCP = 6.
Eine aktuelle und vollständge Liste stellt die IANA online zur Verfügung: hier

r-o-f:~# nmap -sO -p 1-6 scanme.nmap.org

Starting Nmap 5.00 ( http://nmap.org ) at 2009-11-13 20:57 CET
Interesting protocols on scanme.nmap.org (64.13.134.52):
PROTOCOL STATE         SERVICE
1        open          icmp
2        open|filtered igmp
3        open|filtered ggp
4        open|filtered ip
5        open|filtered st
6        open|filtered tcp

Nmap done: 1 IP address (1 host up) scanned in 3.33 seconds

Quelle: nmap.org

Nmap 5.0 - Howto Teil 1: Ziele richtig definieren

Nmap 5.0 - Howto Teil 2: Host-Erkennung
Nmap Grundlagen: Port-Zustände
Nmap Grundlagen: Nmap 5.0 Installation

   
Get Adobe Flash playerPlugin by wpburn.com wordpress themes