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