Grundlagen von Port-Scans

Nmap hat über die Jahre an Funktionalität zugelegt, aber angefangen hat es als effizienter Port-Scanner, und das ist weiterhin seine Kernfunktion. Der einfache Befehl nmap <target> scannt die am häufigsten verwendeten 1000 TCP-Ports auf dem Host <target> und klassifiziert jeden Port in einen der Zustände offen, geschlossen, gefiltert, ungefiltert, offen|gefiltert oder geschlossen|gefiltert.

Diese Zustände sind keine echten Eigenschaften eines Ports selbst, sondern beschreiben, wie Nmap ihn sieht. Ein Nmap-Scan z.B., bei dem Ausgangs- und Zielnetzwerk identisch sind, könnte Port 135/tcp als offen anzeigen, während ein Scan zur selben Zeit mit denselben Optionen über das Internet diesen Port als gefiltert anzeigen könnte.

Die sechs von Nmap erkannten Port-Zustände
offen

Ein Programm ist bereit, TCP-Verbindungen oder UDP-Pakete auf diesem Port anzunehmen. Beim Port-Scanning ist es oftmals das Ziel, solche Ports zu finden. Sicherheitsbewusste Leute wissen, dass jeder offene Port eine breite Einfahrtstrasse für Angriffe darstellt. Angreifer und Penetrationstester wollen offene Ports ausbeuten (engl. exploit), während Administratoren versuchen, sie zu schließen oder mit Firewalls zu schützen, ohne legitime Benutzer zu behindern. Offene Ports sind auch für Scans von Interesse, bei denen es nicht um Sicherheit geht, weil sie Dienste anzeigen, die im Netzwerk benutzt werden können.

geschlossen

Ein geschlossener Port ist erreichbar (er empfängt und antwortet auf Nmap-Testpakete), aber es gibt kein Programm, das ihn abhört. Er kann von Nutzen sein, um zu zeigen, dass ein Host online ist und eine IP-Adresse benutzt (Host-Erkennung oder Ping-Scanning), sowie als Teil der Betriebssystemerkennung. Weil geschlossene Ports erreichbar sind, sind sie es wert, gescannt zu werden, falls sie später einmal geöffnet werden sollten. Administratoren möchten solche Ports vielleicht mit einer Firewall blockieren, damit sie im Zustand gefiltert erscheinen, der als Nächstes beschrieben wird.

gefiltert

Nmap kann nicht feststellen, ob der Port offen ist, weil eine Paketfilterung verhindert, dass seine Testpakete den Port erreichen. Die Filterung könnte durch dafür vorgesehene Firewall-Geräte, Router-Regeln oder hostbasierte Firewall-Software erfolgen. Weil sie so wenig Information bringen, sind diese Ports für Angreifer frustrierend. Manchmal antworten sie mit ICMP-Fehlermeldungen wie Typ 3, Code 13 (Destination Unreachable: Communication Administratively Prohibited), aber Filter, die Testpakete ohne Antwort einfach verwerfen, kommen wesentlich häufiger vor. Das zwingt Nmap zu mehreren wiederholten Versuchen, um auszuschließen, dass das Testpaket wegen einer Netzwerküberlastung statt durch eine Filterung verworfen wurde. Diese Art der Filterung verlangsamt einen Scan dramatisch.

ungefiltert

Der Zustand ungefiltert bedeutet, dass ein Port zugänglich ist, aber Nmap nicht feststellen kann, ob er offen oder geschlossen ist. Nur der ACK-Scan, der benutzt wird, um Firewall-Regelwerke zu bestimmen, klassifiziert Ports in diesen Zustand. Um festzustellen, ob ein ungefilterter Port offen ist, kann es hilfreich sein, ihn mit anderen Scan-Methoden wie Window-Scan, SYN-Scan oder FIN-Scan zu scannen.

offen|gefiltert

Nmap klassifiziert einen Port in diesen Zustand, wenn es nicht feststellen kann, ob der Port offen oder gefiltert ist. Das kommt bei Scan-Methoden vor, in denen offene Ports keine Antwort geben. Das Fehlen einer Antwort könnte auch bedeuten, dass ein Paketfilter das Testpaket verworfen hat oder dass keine Antwort provoziert werden konnte. Deswegen weiß Nmap nicht sicher, ob der Port offen ist oder gefiltert wird. Ports werden von den UDP-, IP-Protokoll-, FIN-, NULL- und Xmas-Scans auf diese Weise klassifiziert.

geschlossen|gefiltert

Dieser Zustand wird benutzt, wenn Nmap nicht feststellen kann, ob ein Port geschlossen ist oder gefiltert wird. Er wird nur vom IP-ID-Idle-Scan benutzt.