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.
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.
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)
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.
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.
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.
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.
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.
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.
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:
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
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




