LINUXMAKER, OpenSource, Tutorials

Nmap der beliebte Port-Scanner

nmap ist ein umfassendes Werkzeug zur Netzwerk-Analyse für System- und Netzwerkadministratoren. Port-Scanning ist ein typischer Anwendungsfall für nmap. Hierbei geht es darum herauszufinden, ob ein Port offen ist, welche Anwendung dahinter läuft und ob dort Sicherheitslücken und Schwachstellen zu vermuten sind.
Ein einfacher Port-Scanner wird alle Ports pauschal in zwei oder drei Zustände einteilen (offen, geschlossen, gefiltert). Ein Port-Scanner wie nmap achtet aber auf mehr Details und kennt insgesamt sechs Port-Zustände.
Wer nmap für das Port-Scanning effektiv einsetzen will, der sollte sich mit diesen Port-Zuständen beschäftigen und wissen, was der jeweilige Zustand bedeutet und wie er zu interpretieren ist. Nur dann lässt sich ein qualifizierter Port-Scan durchführen.

Die Port-Zustände von nmap

Offen (open)

Der Zustand "Offen" bedeutet, dass eine Anwendung oder ein Dienst bereit ist TCP-Verbindungen oder UDP-Pakete auf diesem Port anzunehmen. Beim Port-Scanning hat man die Absicht "offene Ports" zu finden. Als Systemadministrator möchte man die dahinter lauschende Anwendung auf Schwachstellen abklopfen. Ein Angreifer wird versuchen einen Exploit auszuführen.
Um Kommunikationsverbindungen betreiben zu können bedarf es aber offener Ports. Allerdings stellt jeder offene Port auch ein gewisses Gefahrenpotenzial dar. Jeder verantwortungsvolle Systemadministrator ist deshalb bestrebt die Anzahl offener Ports zu begrenzen, um die Angriffsfläche so klein wie möglich zu halten. Aus diesem Grund werden offene Ports zusätzlich geschützt oder Verbindungsmöglichkeiten eingeschränkt.

Man bekommt einen offenen Port nur dadurch geschlossen, in dem man die verantwortliche Anwendung oder den Dienst abschaltet. Oder man konfiguriert einen Paketfilter so, dass Verbindungsversuche ablehnt (nicht blockiert) werden.

Geschlossen (closed)

Der Zustand "Geschlossen" bedeutet, dass keine Anwendung und kein Dienst an diesem Port auf eingehende Datenpakete und Verbindungsversuche lauscht bzw. hört. Der Port wird praktisch nicht genutzt. Auf ihm sind keine Kommunikationsverbindungen möglich.
Ein geschlossener Port ist nur so lange geschlossen, wie eine Anwendung auf diesen Port hört und Verbindungen und Pakete annimmt. Um sicher zu gehen, dass Ports nicht versehentlich genutzt werden können, blockieren Systemadministratoren Ports meist noch mit einer Firewall (Portfilter).
Ein Tool wie nmap ist allerdings in der Lage, den Filter zu umgehen und zu prüfen, ob der Port tatsächlich geschlossen ist.

Gefiltert (blocked)

Um offene, aber auch geschlossene Ports zu schützen, setzen Systemadministratoren einen Portfilter ein. So verhindern sie zum Beispiel die Verbindungsversuche durch Port-Scans. Da ein Port-Scan nur den Zustand eines Ports ermittelt, aber keine echte Verbindung aufbauen soll, weil er die dahinterliegende Anwendung nicht kennt, kann er nur Testpakete an einen Port schicken. Der Filter verhindert, dass diese Testpakete durchkommen. In der Regel werden diese Pakete verworfen.
In solchen Fall bekommt der Port-Scanner keine Antwort. Dann kann für diesen Port weder der Status "offen" oder "geschlossen" gelten. Dafür gibt es den Zustand "gefiltert" oder "blockiert".
Der eingesetzte Filter kann eine klassische Firewall, eine Router-Regel oder eine hostbasierte Firewall-Software sein. Damit lassen sich viele automatisierte Port-Scans vom System fernhalten.

Für einen Pentester bzw. Hacker sind gefilterte Ports ein Ärgernis. Weil ein Port-Scanner auf einem gefilterten Port keine Antwort erhält, muss der Scanner einen Timeout abwarten, bis er den Zustand "gefiltert" annehmen kann. Außerdem müssen diese Ports mehrmals geprüft werden, um sicherzustellen, dass die Pakete nicht unterwegs verloren gegangen sind (herkömmlicher Paketverlust). Das hat den Effekt, dass der Port-Scan verlangsamt wird.
Aus diesem Grund prüft nmap vor einem Port-Scan mit unterschiedlichen Methoden, ob das Zielsystem grundsätzlich erreichbar ist. Erst dann wird ein Port-Scan durchgeführt, bei dem ein nicht antwortender Port als "gefiltert" angenommen werden kann.

Ungefiltert (unblocked)

Der Zustand "Ungefiltert" bedeutet, dass der Port zugänglich ist, aber nicht festgestellt werden konnte, ob er offen oder geschlossen ist. Dieser Zustand wird vom ACK-Scan erkannt, der verwendet wird, um eventuelle Firewall-Regeln zu umgehen.
Um festzustellen, ob ein ungefilterter Port offen ist, muss man ihn mit anderen Scan-Methoden wie dem Window-Scan, SYN-Scan oder FIN-Scan prüfen.

Offen | Gefiltert (open | blocked)

Der Zustand "Offen | Gefiltert" bedeutet, dass der Port nicht eindeutig als offen oder geschlossen definiert werden kann. Das kommt bei Scan-Methoden vor, bei denen offene Ports keine Antwort geben. Das Fehlen einer Antwort kann aber auch auf einen Filter hinweisen.
Die Scan-Methoden UDP-, IP-Protokoll-, FIN-, NULL- und Xmas-Scan stellen diesen Zustand fest.

Geschlossen | Gefiltert (closed | blocked)

Der Zustand "Geschlossen | Gefiltert" bedeutet, das der Port nicht eindeutig als geschlossen oder gefiltert definiert werden kann. Der Zustand entsteht dann, wenn Antwort-Pakete nicht wie erwartet zurückkommen. Zum Beispiel von Hosts, die sich nicht RFC-konform verhalten.
Die Scan-Methoden FIN-, NULL- und Xmas-Scan sind hierfür anfällig.

Auswahl der zu scannenden Ports

Die Anzahl der Ports reicht von 1 bis 65.535. Ein Port-Scan auf alle Ports kann sehr lange dauern und ist meist auch noch unnötig. Deshalb scannt nmap standardmäßig nur etwa 1.000 der meistgenutzten Ports, die in der Datenbank "nmap-services" aufgelistet sind. Mit der Option "-F" (für engl. fast, dt. schnell) kann man den Port-Scan sogar auf die 100 meistgenutzten Ports beschränken.

Grundsätzlich gilt, je mehr Ports gescannt werden, desto länger dauert es. Wenn man nicht nur einen Host, sondern ein ganzes Subnetz scannt, dann vervielfältigt sich die Anzahl der Port-Scans und damit die Dauer des Scans und die Netzwerk-Belastung. Als Angreifer auf ein geschütztes und überwachtes System oder Netzwerk macht man sich dabei auch noch verdächtig. Weil ein Port-Scan auf mehrere tausend Ports kein normaler Netzwerk-Verkehr ist.

Wenn man schon vorab weiß, welche Ports interessant sind, macht es Sinn den Port-Scan auf einzelne Ports zu beschränken. Dafür gibt es die Option "-p".

  • Für den Port 22 verwendet man die Option "-p22".

  • Für die Ports 22, 25 und 80 verwendet man die Option "-p22,25,80".

  • Für die Ports von 1 bis 100 verwendet man die Option "-p-100".

  • Für die Ports von 80 bis 88 verwendet man die Option "-p80-88".

  • Für alle Ports über 60.000 verwendet man die Option "-p60000-".

  • Wenn man alle Ports von 1 bis 65.535 scannen will verwendet man die Option "-p-".

Scan-Ziel: IP-Adresse oder Subnetz?

nmap ist bei der Angabe des Scan-Ziels sehr flexibel. Das kann ein Domain-Name sein, eine IP-Adresse oder ein ganzes Subnetz.

  • Domain: www.linuxmaker.de

  • IP-Adresse: 192.168.0.1

  • Subnetz: 192.168.0.1/24

  • Subnetz: 192.168.0.*

Man sollte einen Port-Scan nicht auf ein ganzes Subnetz anwenden. Ein ganzes Subnetz zu scannen, kann sehr lange dauern, wenn die Hosts gefilterte Ports haben. Auf einen einzelnen Host ist der Port-Scan effektiver und dauert auch nicht so lange.

Format der Ausgabe

Die Ausgabe von nmap lässt sich an bestimmte Erfordernisse anpassen. In der Regel wird man die Bildschirmausgabe wählen (ohne Option). Wenn man diese Ausgabe in eine Datei schreiben möchte, dann wählt man die Option "-oN". Wenn man die Ausgabe mit GREP durchsuchen möchte, dann wählt man die Option "-oG". Wenn man eine XML-Datei haben möchte, dann wählt man die Option "-oX".
Allen diesen Optionen ist gemein, dass sie die Ausgabe in eine Datei schreiben können und dazu ein Dateiname angegeben werden muss.

Das Ausgabeformat mit der Option "-oG" hat den Vorteil, dass es mehr Informationen in einer Zeile und deshalb übersichtlicher dargestellt wird.

Port-Scan ohne vorherigen Ping-Scan (-PN)

nmap führt standardmäßig vor jedem Port-Scan auch einen Ping-Scan auf den Host einmal aus. Der Grund dafür ist, dass ein Port-Scan auf einen Host nur dann Sinn macht, wenn er tatsächlich erreichbar ist. Das kann man per Ping-Scan feststellen. Wenn man weiß, dass der Host erreichbar ist, dann kann man auf den Ping-Scan verzichten (-PN) und spart auf diese Weise viel Zeit und auch Bandbreite. Außerdem verhindert es die Entdeckung, weil man versucht Systeme zu erreichen, die nicht existieren. Von daher kann der Verzicht auf den Ping-Scan durchaus sinnvoll sein.

Wenn ein Host einen Ping-Filter hat, dann wird dieser Host beim Port-Scan ausgeklammert, obwohl ein Port-Scan erfolgreich gewesen wäre. Wenn der Port-Scan keine Host-Erkennung erfordert oder man den Ping-Filter umgehen möchte, dann kann man mit der Option "-PN" (no Ping) den Ping-Scan abschalten.
Auf diese Weise kann man auch die eigenen Absicht verbergen, weil ein Ping-Scan mit anschließendem Port-Scan kein normaler Netzwerkverkehr ist.

Port-Scan-Methoden

Ein Port-Scan macht dann Sinn, wenn man ein Angriffsziel ausgemacht hat und auf weitere Schwachstellen abklopfen will. Dieser Port-Scan beginnt dann mit der Auswahl der richtigen Scan-Methode. nmap bietet hierzu eine große Auswahl, deren Einsatz gründlich bedacht werden muss, um die gewünschten Informationen zu bekommen.

  • TCP-Ping-Scan

  • TCP-Full-Connect-Scan

  • TCP-SYN-Scan

  • TCP-ACK-Scan

  • TCP-FIN-Scan

  • TCP-XMAS-Scan

  • TCP-NULL-Scan

  • UDP-Scan

  • TCP-Window-Scan

  • TCP-Maimon-Scan

  • TCP-Idle-Scan

  • IP-Protokoll-Scan

  • TCP-FTP-Bounce-Scan

Die meisten Port-Scan-Methoden sind exotischer Natur und kommen nur in bestimmten Situation zur Anwendung. Vermutlich wird man nie in den Genuss kommen alle Port-Scan-Methoden vollumfänglich einzusetzen.
Trotzdem hat jede Port-Scan-Methode ihre Berechtigung. Es gilt zu beachten, dass entfernte Netzwerk-Umgebungen nicht identisch sind und manchmal nur leicht unterschiedliche Vorgehensweisen erforderlich sind, um die gewünschten Informationen zu erhalten oder Schwachstellen zu entdecken.
Manchmal erfordert es Erfahrung und eine Portion Cleverness, um Filter zu umgehen und die Entdeckung durch ein IDS zu vermeiden.

TCP-Ping-Scan (-sP)

nmap -sP 192.168.0.1

Der TCP-Ping-Scan ist eigentlich kein klassischer Port-Scan, sondern eher eine sinnvolle Erweiterung zu einem klassischen Ping.
Der TCP-Ping-Scan liefert keine Darstellung der Port-Zustände. Ziel dieses nmap-Kommandos ist, die Erreichbarkeit eines Hosts zu prüfen. Wie der Ping-Scan arbeitet, hängt davon ab, wo sich der Host befindet.

Befindet sich der Host im gleichen Subnetz, dann arbeitet der TCP-Ping-Scan ganz klassisch mit ARP-Requests (Schicht 2 des OSI-Schichtemodells). Dazu sendet nmap nur einen ARP-Request und gibt dann die verfügbaren Hosts aus, die mit einem ARP-Reply geantwortet haben. Wenn man das Subnetz korrekt wählt, kann man damit alle Hosts in einem lokalen Netzwerk ermitteln. Dieser TCP-Ping-Scan zeigt dann relativ zuverlässig alle Geräte mit IPv4-Adresse, MAC-Adresse und eventuell Hostnamen im Subnetz an.
Der Ping-Scan ist in lokalen Netzwerken sehr unauffällig, weil hier ARP-Request in hohem Maße vorkommen und die so angestoßenen ARP-Requests in der Masse untergehen.

Wenn sich der Host in einem anderen Netz befindet. Zum Beispiel im Internet. Dann funktioniert ARP nicht mehr. Es bedarf der Verbindungsaufnahme auf höheren Protokollen (Schicht 3 des OSI-Schichtenmodells).
Dazu sendet nmap zuerst einen ICMP-Echo-Request (Ping) an das Zielsystem. Erfolgt eine Antwort mit einem ICMP-Echo-Replay, dann erkennt nmap das Zielsystem als erreichbar. Damit wäre der Ping-Scan abgeschlossen.
Typischerweise blockieren Paketfilter solche ICMP-Echo-Requests. Weil das bekannt ist, gibt nmap an der Stelle noch nicht auf und versucht es mit einem TCP-Ping. Dazu sendet nmap ein TCP-SYN-Paket auf Port 443 und ein TCP-ACK-Paket auf Port 80 an das Zielsystem. Typischerweise wird das Zielsystem mit SYN/ACK (auf Port 443) und RST (auf Port 80) antworten. Damit sollte sich das Zielsystem ziemlich sicher als erreichbar bestimmen lassen.

Der TCP-Ping-Scan kombiniert den klassischen Ping mit dem TCP-SYN- und TCP-ACK-Scan. Auf diese Weise ermittelt er ziemlich sicher die Erreichbarkeit des Zielsystems.

TCP-Full-Connect-Scan (-sT)

nmap -sT 192.168.0.1

Beim Full-Connect-Scan versucht nmap, eine echte Verbindung mit einem Port aufzubauen. Dabei wird der komplette Drei-Wege-Handshake durchlaufen. Dabei will man wissen, ob eine Verbindung zu einer Anwendung funktioniert, bevor man diese Anwendung auf Schwachstellen prüft. Je nach dem, welchen Zustand der Port hat, wird der Port-Scan ein anderes Ergebnis liefern.

  • OPEN: SYN -> SYN+ACK -> ACK

  • CLOSED: SYN -> RST (Das Zielsystem antwortet mit einem RST-Paket)

  • FILTERED: SYN -> keine Antwort (Das SYN-Paket wird beim Zielsystem verworfen)

Der Drei-Wege-Handshake sieht in den ersten beiden Schritte SYN und SYN/ACK vor. Es folgt ein ACK, wodurch die Verbindung bestätigt und somit hergestellt wird. Normalerweise würde eine TCP-Verbindungen mit einem weiteren Handshake beendet. In diesem Fall erzwingt nmap mit einem RST-Paket ein sofortiges Verbindungsende.

Der Full-Connect-Scan sieht für das Zielsystem wie ein normaler Verbindungsaufbau aus. Normalerweise wird es keinen Verdacht schöpfen, dass hier das System auf offene Ports ausspioniert werden soll. Allerdings werden Full-Connects in der Regel in Logfiles aufgezeichnet. Wenn die ausgewertet werden, kann man die Vorbereitungen auf einen anschließenden Angriff nachvollziehen. Der Angreifer verrät sich also auf diese Weise bzw. seine Absicht.
Nachteilig ist auch, dass ein einzelner Full-Connect-Scan natürlich länger dauert, weil der komplette Verbindungsaufbau durchlaufen werden muss. Andere Scan-Methoden, die nur ein einziges Paket schicken, sind da schneller.

Ein Vorteil ist, dass einige Dienste von sich aus eine Dienst-Information schicken. Zum Beispiel sendet ein OpenSSH-Server seinen SSH-Banner-String. Dort steht dann zum Beispiel auch die Version von OpenSSH drin.

Der Full-Connect-Scan ist der Standard-Scan. Er wird automatisch dann angewendet, wenn nmap von einem nichtberechtigten Nutzer aufgerufen wird. Unter Windows wäre der Systemadministrator und unter Linux der Nutzer "root" berechtigt nmap uneingeschränkt zu nutzen.
Auch bei IPv6-Zielen wird er verwendet, weil andere Scan-Methoden hier nicht funktionieren.

TCP-SYN-Scan (-sS)

nmap -sS 192.168.0.1

Der SYN-Scan ist die schnellste und meistgenutzte Scan-Methode. Sie erlaubt eine zuverlässige Unterscheidung zwischen den Zuständen geschlossen und gefiltert. Wenn das Netzwerk schnell genug ist, dann kann man damit innerhalb weniger Sekunden mehrere Tausend Ports scannen.

Den SYN-Scan bezeichnet man auch als Halfopen oder Stealth Scan. Er basiert darauf, dass der Drei-Wege-Handshake nur initiiert, aber nicht mit ACK bestätigt, sondern vorzeitig mit RST abgebrochen wird.

  • OPEN: SYN -> SYN+ACK -> RST

  • CLOSED: SYN -> RST (Das Zielsystem antwortet mit einem RST-Paket)

  • FILTERED: SYN -> keine Antwort (Das SYN-Paket wird beim Zielsystem verworfen)

Dadurch, dass man die TCP-Verbindung nicht erst mit ACK bestätigt, sondern sofort mit RST beendet, ist die Scan-Geschwindigkeit um ungefähr 30 bis 40% schneller als beim Full-Connect-Scan.
Der SYN-Scan bleibt oft unbemerkt, weil in der Regel nur Full-Connects bei der Anwendung protokolliert werden. Nachteilig ist für den Angreifer oder Pentester, das der SYN-Scan von einem IDS erkannt werden kann, weil der Ablauf ziemlich untypisch für eine "normale Verbindung" ist.

Fast alle von nmap gesendete RST-Pakete enthalten auch ein gesetztes ACK-Bit. Der Grund ist, ein TCP-Paket ist in der Regel immer auch die Antwort bzw. Bestätigung auf ein empfangenes Paket.

TCP-FIN-/XMAS-/NULL-Scan (-sF, -sX, -sN)

Der TCP-FIN-/XMAS-/NULL-Scan sind Scan-Methoden, die nur Sinn machen, wenn man eine Firewall vermutet, die Ports blockiert. Um trotzdem die Systeme dahinter zu untersuchen, verwendet man diese speziellen Scan-Methoden. Leider sind die Ergebnisse dieser Port-Scans abhängig von einem bestimmten Verhalten des Ziel-Hosts. Manche Systeme verhalten sich nicht wie gewünscht, weshalb die Ergebnisse immer in Frage zu stellen sind.

Der TCP-FIN-Scan simuliert das Beenden einer Verbindung:

nmap -sF 192.168.0.1

Der TCP-XMAS-Scan sendet ein Paket mit gesetzten FIN-, PSH- und URG-Flags gleichzeitig an das Ziel:

nmap -sX 192.168.0.1

Der TCP-NULL-Scan sendet ein Paket ohne gesetzte TCP-Flags an das Ziel:

nmap -sN 192.168.0.1

Solche Port-Scans sind natürlich schwer als solche erkennbar, weil hier unerwartete TCP-Pakete ankommen. Das bedeutet aber auch, dass XMAS- und NULL-SCAN zu unerwarteten Reaktionen führen können. Man muss damit rechnen, dass alte Geräte abstürzen.

  • OPEN: FIN/XMAS/NULL -> keine Antwort

  • CLOSED: FIN/XMAS/NULL -> RST

  • FILTERED: FIN/XMAS/NULL -> keine Antwort

Beim Scannen von Systemen, die RFC-konform arbeiten (RFC 793), führt jedes Paket, das kein SYN-, RST- oder ACK-Bit enthält, dazu, dass ein RST zurückgesendet werden muss, wenn der Port geschlossen ist, bzw. zu keiner Antwort, wenn der Port offen ist. Das nutzt nmap mit diesen drei Scan-Typen aus, um herauszufinden, ob ein Port offen oder geschlossen ist.

Mit einem FIN/XMAS/NULL-Scan kommt man oftmals an Firewalls vorbei und deshalb gehört er im Rahmen eines Pentests auf jeden Fall dazu. Im Rahmen eines Angriffs kann man dadurch sehr gut herausfinden, welche Ports vielleicht doch offen sind, wenn die Zustände von Ports durch einen gewöhnlichen Port-Scan nicht herausgefunden werden konnten. Nachteilig ist, dass man zwischen OPEN und FILTERED nicht unterscheiden kann.

Zustandslosen Firewalls und paketfilternde Router versuchen eingehende TCP-Verbindungen zu verhindern (während sie die nach außen erlauben), indem sie alle TCP-Pakete mit gesetztem SYN-Bit und gelöschtem ACK-Bit blockieren. Das kommt recht häufig vor. Durch den FIN-, XMAS- und NULL-Scans wird diese Regel einfach ignoriert.

UDP-Scan (-sU)

nmap -sU 192.168.0.1

Manche Systemadministratoren, die ansonsten sehr umsichtig arbeiten, vergessen gelegentlich, dass es neben TCP auch das verbindungslose UDP (User Datagram Protocol) gibt. UDP-Pakete werden oft nicht gefiltert, weil viele Systemadministratoren erfahrungsgemäß hier keine Angriffe erwarten.

  • OPEN: keine Antwort oder Antwort per UDP

  • CLOSED: ICMP-Antwort "unreachable"

  • FILTERED: keine Antwort

Da UDP ohne Drei-Wege-Handshake auskommt, wird hier nur ein beliebiges UDP-Paket an den Port gesendet. Nachteilig für den Pentester und auch Angreifer ist, dass der UDP-Scan sehr langsam ist. Der Grund ist, dass der Zustand eines Ports nur dann definiert werden kann, wenn eine Antwort zurückkommt. Wenn nicht, dann muss ein Timeout abgewartet werden.

Das Scannen von UDP-Ports ist auch aus einem anderen Grund sehr schwierig. Um den Zustand eines Ports zu erhalten, benötigt man eine Antwort. Allerdings ist UDP ein verbindungsloses Protokoll. Ein per TCP verschicktes Paket bekommt in der Regel immer eine Antwort. Ein per UDP verschicktes Paket aber nicht zwangsläufig. Das heißt, wenn keine Antwort zurückkommt, dann weiß man nicht, ob das UDP-Paket überhaupt angekommen ist. Offene UDP-Ports antworten nur, wenn das Protokoll auf der Anwendungsebene das vorsieht.

Erschwerend kommt hinzu, dass nmap standardmäßig leere UDP-Pakete schickt, weil es nicht wissen kann, welche Anwendung hinter dem zu scannenden Port lauscht. Und deshalb kommt hier selten eine Antwort zurück, die den Port eindeutig als "offen" erkennbar macht. Und nur wenn eine ICMP-Port-unreachable-Nachricht zurückkommt, dann ist der Port eindeutig als "geschlossen" erkennbar. Andere ICMP-Fehlermeldungen werden als "gefiltert" interpretiert. Beim Ausbleiben einer Antwort wird deshalb "open|filtered" angenommen.
Die Problematik dabei ist, dass nicht eindeutig zu bestimmen ist, ob einfach nur das richtige Protokoll hätte verwendet werden müssen oder ob das Paket durch eine Firewall geblockt wurde.

TCP-ACK-Scan (-sA)

nmap -sA 192.168.0.1

Der TCP-ACK-Scan unterscheidet sich fundamental von allen anderen Port-Scan-Methoden. Hierbei geht es NICHT darum offene Ports zu bestimmen. Diese Methode dient allein um festzustellen, ob verwendete Firewall-Regeln zustandsbehaftet sind oder nicht, und um festzustellen, welche Ports gefiltert werden.
Der Nachteil dabei ist, dass er nicht zwischen offenen und geschlossenen Ports unterscheiden kann. Das muss man mit einer anderen Port-Scan-Methode ermitteln.

TCP-Window-Scan (-sW)

nmap -sW 192.168.0.1

Ein Window-Scan ist vergleichbar mit einem ACK-Scan. Der Unterschied ist, dass er auf manchen Rechnern zwischen offenen und geschlossenen Ports unterscheiden kann.

TCP-Maimon-Scan (-sM)

nmap -sM 192.168.0.1

Diese Scan-Methode ist einem FIN-Scan ähnlich, beinhaltet aber ein gesetztes ACK-Bit. Damit kommt man vielleicht an Paketfiltern vorbei. Es funktioniert aber seltener als beim FIN-Scan.

TCP-Idle-Scan (-sI)

nmap -sI 192.168.0.1

Der Idle-Scan ist die unauffälligste, komplexeste und damit langsamste aller Scan-Methode.

IP-Protokoll-Scan (-sO)

nmap -sO 192.168.0.1

Rein technisch ist der IP-Protocol-Scan kein Port-Scan, sondern dient zum Bestimmen, welche IP-Protokolle (TCP, ICMP, IGMP, etc.) auf dem Zielrechner unterstützt werden. Dieser Scan geht also Protokoll-Nummern durch und nicht Port-Nummern.
Mit der Option "-p" kann man die zu scannenden Protokoll-Nummern angeben.

TCP-FTP-Bounce-Scan (-b)

Diese Scan-Methode gilt als veraltet. Sie benutzt einen fehlerhaften FTP-Server als Proxy. Weil das bei den meisten FTP-Servern behoben ist, funktioniert es nur noch sehr selten. Aber wenn, dann ist es eine Möglichkeit, die Beschränkung einer Firewall zu umgehen.