Host-Erkennung

Einer der allerersten Schritte bei jeder Netzwerkerkundung ist die Reduktion einer (manchmal riesigen) Menge von IP-Bereichen auf eine Liste aktiver oder interessanter Hosts. Wenn man für alle einzelnen IP-Adressen alle Ports scannt, so ist das nicht nur langsam, sondern normalerweise auch unnötig. Was einen Host interessant macht, hängt natürlich stark vom Zweck der Untersuchung ab. Netzwerkadministratoren interessieren sich vielleicht nur für Hosts, auf denen ein bestimmter Dienst läuft, während Sicherheitsprüfer sich vielleicht für alle Geräte interessieren, die eine IP-Adresse haben. Ein Administrator benötigt vielleicht nur einen ICMP-Ping, um Hosts in seinem internen Netzwerk zu finden, während ein externer Penetrationstester vielleicht Dutzende ganz verschiedener Tests einsetzen wird, um zu versuchen, die Firewall-Beschränkungen zu umgehen.

Da die Anforderungen bei der Host-Erkennung so verschieden sind, bietet Nmap eine breite Palette von Optionen zur Anpassung der eingesetzten Verfahren. Trotz seines Namens geht ein Ping-Scan weit über die einfachen ICMP Echo-Request-Pakete hinaus, die mit dem allgegenwärtigen Werkzeug ping verbunden sind. Man kann den Ping-Schritt völlig auslassen, indem man einen List-Scan (-sL) benutzt, Ping ausschaltet (-PN) oder beliebige Kombinationen von Multi Port TCP-SYN/ACK, UDP- und ICMP-Testanfragen auf ein Netzwerk loslässt. Der Zweck dieser Anfragen ist der, Antworten hervorzurufen, die zeigen, dass eine IP-Adresse tatsächlich aktiv ist (d.h. von einem Host oder Gerät im Netzwerk benutzt wird). In vielen Netzwerken ist nur ein kleiner Prozentsatz von IP-Adressen zu einem bestimmten Zeitpunkt aktiv. Das gilt besonders für einen privaten Adressraum wie 10.0.0.0/8. Dieses Netzwerk enthält 16,8 Millionen IPs, aber ich habe auch Firmen gesehen, die es mit weniger als tausend Rechnern benutzen. Mit der Host-Erkennung kann man diese spärlichen Rechnerinseln in einem Meer von IP-Adressen finden.

Falls keine Optionen für die Host-Erkennung angegeben werden, sendet Nmap ein TCP-ACK-Paket an Port 80 und ein ICMP Echo-Request an alle Zielrechner. Eine Ausnahme ist, dass bei allen Zielen in einem lokalen Ethernet-Netzwerk ein ARP-Scan benutzt wird. Für unprivilegierte Unix-Shell-Benutzer wird mit dem connect-Systemaufruf ein SYN-Paket statt eines ACK gesendet. Diese Standardeinstellungen sind äquivalent zu den Optionen -PA -PE. Diese Host-Erkennung ist oft ausreichend, wenn man lokale Netzwerke scannt, aber für Sicherheitsüberprüfungen empfiehlt sich eine umfangreichere Menge von Erkennungstestpaketen.

Die Optionen -P* (die Ping-Typen auswählen) lassen sich kombinieren. Sie können Ihre Chancen steigern, bei strengen Firewalls durchzukommen, indem Sie viele Testpaketarten mit verschiedenen TCP-Ports/-Flags und ICMP-Codes senden. Beachten Sie auch, dass die ARP-Erkennung (-PR) bei Zielen in einem lokalen Ethernet-Netzwerk standardmäßig erfolgt, selbst dann, wenn Sie andere -P*-Optionen angeben, weil sie fast immer schneller und effizienter ist.

Standardmäßig führt Nmap eine Host-Erkennung und dann einen Port-Scan auf jedem Host aus, den es als online erkennt. Das gilt auch dann, wenn Sie nicht standardmäßige Host-Erkennungstypen wie UDP-Testpakete (-PU) angeben. Lesen Sie über die Option -sP nach, um zu lernen, wie man nur eine Host-Erkennung durchführt, oder über -PN, um die Host-Erkennung zu überspringen und einen Port-Scan aller Zielhosts durchzuführen. Folgende Optionen steuern die Host-Erkennung:

-sL (List-Scan)

Ein List-Scan ist eine degenerierte Form der Host-Erkennung, die einfach jeden Host im angegebenen Netzwerk (bzw. den Netzwerken) auflistet, ohne Pakete an die Ziel-Hosts zu senden. Standardmäßig führt Nmap immer noch eine Reverse-DNS-Auflösung der Hosts durch, um deren Namen zu lernen. Es ist oft erstaunlich, wie viel nützliche Informationen einfache Hostnamen verraten. Zum Beispiel ist fw.chi der Name einer Firewall einer Firma in Chicago. Nmap gibt am Ende auch die gesamte Anzahl der IP-Adressen aus. Ein List-Scan ist eine gute Plausibilitätsprüfung, um sicherzustellen, dass Sie saubere IP-Adressen für Ihre Ziele haben. Falls die Hosts Domainnamen enthalten, die Ihnen nichts sagen, lohnt sich eine weitere Untersuchung, um zu verhindern, dass Sie das Netzwerk der falschen Firma scannen.

Da die Idee einfach die ist, eine Liste der Zielhosts auszugeben, lassen sich Optionen für eine höhere Funktionalität wie z.B. Port-Scanning, Betriebssystemerkennung oder Ping-Scanning damit nicht kombinieren. Falls Sie einen Ping-Scan abschalten und trotzdem solch höhere Funktionalität durchführen möchten, lesen Sie bei der Option -PN weiter.

-sP (Ping-Scan)

Diese Option verlangt, dass Nmap nur einen Ping-Scan (Host-Erkennung) durchführt und dann die verfügbaren Hosts ausgibt, die auf den Scan geantwortet haben. Darüber hinaus werden keine weiteren Tests (z.B. Port-Scans oder Betriebssystemerkennung) durchgeführt, außer bei Host-Scripts mit der Nmap Scripting Engine und traceroute-Tests, sofern Sie diese Optionen angegeben haben. Das ist eine Stufe aufdringlicher als ein List-Scan und kann oft für dieselben Zwecke benutzt werden. Sie führt schnell eine schwache Aufklärung des Zielnetzwerks durch, ohne viel Aufmerksamkeit zu erregen. Für Angreifer ist es wertvoller, zu wissen, wie viele Hosts verfügbar sind, als die Liste aller IPs und Hostnamen aus einem List-Scan zu kennen.

Für Systemadministratoren ist diese Option oft ebenfalls wertvoll. Mit ihr kann man sehr leicht die verfügbaren Rechner in einem Netzwerk zählen oder die Server-Verfügbarkeit überwachen. So etwas nennt man oft auch einen Ping-Sweep, und es ist zuverlässiger als ein Pinging auf die Broadcast-Adresse, weil viele Hosts auf Broadcast-Anfragen nicht antworten.

Die Option -sP sendet standardmäßig einen ICMP Echo-Request und ein TCP-ACK-Paket an Port 80. Bei Ausführung ohne Sonderrechte wird nur ein SYN-Paket (mit einem connect-Aufruf) an Port 80 an das Ziel gesendet. Wenn ein Benutzer mit Sonderrechten versucht, Ziele in einem lokalen Ethernet-Netzwerk zu scannen, werden ARP-Requests verwendet, es sei denn, die Option --send-ip wird angegeben. Die Option -sP kann mit allen Erkennungsmethoden (die Optionen -P*, außer -PN) kombiniert werden, um eine höhere Flexibilität zu erhalten. Falls zwischen dem Ausgangs-Host, auf dem Nmap läuft, und dem Zielnetzwerk strenge Firewalls installiert sind, empfehlen sich diese fortgeschrittenen Methoden. Ansonsten könnten Hosts übersehen werden, wenn die Firewall Testanfragen oder Antworten darauf verwirft

-PN (Ping abschalten)

Eine weitere Möglichkeit ist die, die Erkennungsphase von Nmap völlig auszulassen. Normalerweise bestimmt Nmap in dieser Phase aktive Rechner, die es anschließend stärker scannt. Standardmäßig führt Nmap heftigere Tests wie Port-Scans, Versions- oder Betriebssystemerkennung bei Hosts durch, die es bereits als aktiv eingestuft hat. Das Ausschalten der Host-Erkennung mit der Option -PN bewirkt, dass Nmap versucht, die gewünschten Scan-Funktionen auf allen angegebenen Ziel-IP-Adresssen durchzuführen. Wenn also ein Zieladressraum der Größe Klasse B (/16) auf der Kommandozeile angegeben wird, werden alle 65.536 IP-Adressen gescannt. Eine richtige Host-Erkennung wird wie bei einem List-Scan übersprungen, aber statt anzuhalten und die Zielliste auszugeben, fährt Nmap mit der Durchführung der gewünschten Funktionen fort, so als ob jede Ziel-IP aktiv wäre. Bei Rechnern im lokalen Ethernet-Netzwerk wird ein ARP-Scan weiterhin ausgeführt (es sei denn, es wird --send-ip angegeben), da Nmap MAC-Adressen braucht, um Zielhosts weiter zu scannen. Diese Option lautete früher einaml P0 (mit einer Null), wurde dann aber umbenannt, um Verwirrung mit der Option PO von Protokoll-Pings (benutzt den Buchstaben O) zu vermeiden.

-PS <port list> (TCP-SYN-Ping)

Diese Option sendet ein leeres TCP-Paket mit gesetztem SYN-Flag. Der vorgegebene Zielport ist 80 (lässt sich zum Zeitpunkt des Kompilierens durch Ändern von DEFAULT_TCP_PROBE_PORT_SPEC in nmap.h konfigurieren), aber man kann einen alternativen Port als Parameter angeben. Die Syntax ist dieselbe wie bei -p, mit dem Unterschied, dass Porttypenbezeichner wie T: nicht erlaubt sind. Beispiele hierfür sind -PS22 und -PS22-25,80,113,1050,35000. Beachten Sie, dass es kein Leerzeichen zwischen -PS und der Port-Liste geben darf. Falls mehrere Tests angegeben werden, werden sie parallel durchgeführt.

Das SYN-Flag bedeutet für das entfernte System, dass Sie versuchen, eine Verbindung herzustellen. Normalerweise wird der Zielport geschlossen sein, und es wird ein RST-(Reset-)Paket zurückgeschickt. Falls der Port offen ist, führt das Ziel den zweiten Schritt eines TCP-three-way-handshake durch, indem es mit einem SYN/ACK-TCP-Paket antwortet. Der Rechner, auf dem Nmap läuft, bricht dann die entstehende Verbindung ab, indem er mit einem RST antwortet, statt ein ACK-Paket zu senden, mit dem der three-way handshake komplett und eine vollständige Verbindung hergestellt wäre. Das RST-Paket wird als Antwort auf das unerwartete SYN/ACK vom Betriebssystem-Kernel des Rechners gesendet, auf dem Nmap läuft, nicht von Nmap selbst.

Für Nmap ist es egal, ob der Port offen oder geschlossen ist. Aus beiden Antworten, ob RST oder SYN/ACK, schließt Nmap, dass der Host verfügbar ist und antwortet.

Auf Unix-Rechnern kann im Allgemeinen nur der mit Sonderrechten ausgestattete Benutzer root rohe TCP-Pakete senden und empfangen. Bei normalen Benutzern kommt automatisch eine Umgehungslösung zum Tragen, bei der für alle Zielports der connect-Systemaufruf verwendet wird. Das bewirkt, dass an den Zielhost ein SYN-Paket gesendet wird, mit der Absicht, eine Verbindung herzustellen. Falls connect schnell ein erfolgreiches Ergebnis oder einen ECONNREFUSED-Fehler zurückgibt, muss der darunterliegende TCP-Stack ein SYN/ACK oder RST empfangen haben, und der Host wird als verfügbar vermerkt. Falls der Verbindungsversuch hängenbleibt, bis eine Zeitbeschränkung erreicht ist, wird der Host als inaktiv vermerkt. Diese Behelfslösung wird auch bei IPv6-Verbindungen verwendet, da Nmap den Bau roher IPv6-Pakete noch nicht unterstützt.

-PA <port list> (TCP-ACK-Ping)

Der TCP-ACK-Ping ist ziemlich ähnlich zum SYN-Ping. Der Unterschied ist der, dass das TCP-ACK-Flag statt dem SYN-Flag gesetzt wird, was Sie sich bestimmt schon gedacht haben. Ein solches ACK-Paket erweckt den Eindruck, es wolle Daten auf einer bestehenden TCP-Vebindung bestätigen, während eine solche Verbindung gar nicht existiert. Entfernte Hosts sollten darauf immer mit einem RST-Paket antworten, wobei sie ihre Existenz verraten.

Die Option -PA benutzt denselben Standard-Port wie der SYN-Test (80) und nimmt ebenfalls eine Liste von Zielports im selben Format an. Falls ein unprivilegierter Benutzer das ausprobiert oder falls ein IPv6-Ziel angegeben wird, wird die bereits erwähnte Behelfslösung mit connect eingesetzt. Diese ist nicht perfekt, da connect tatsächlich ein SYN-Paket statt eines ACK sendet.

Der Grund für die Existenz sowohl von SYN- als auch ACK-Ping-Tests liegt darin, die Chancen für die Umgehung von Firewalls zu erhöhen. Viele Administratoren konfigurieren Router und andere einfache Firewalls so, dass sie eingehende SYN-Pakete blockieren, außer bei solchen für öffentliche Dienste wie bei der Website oder dem Mailserver der Firma. Das verhindert weitere eingehende Verbindungen zur Organisation, während es den Benutzern freie Verbindungen ins Internet erlaubt. Dieser zustandslose Ansatz benötigt wenige Ressourcen in der Firewall bzw. im Router und wird von Hardware- und Software-Filtern weithin unterstützt. Die Firewall-Software Netfilter/iptables in Linux bietet die komfortable Option --syn, um diesen zustandslosen Ansatz zu implementieren. Wenn solche Firewall-Regeln vorhanden sind, werden SYN-Ping-Tests (-PS), die an geschlossene Zielports gesendet werden, sehr wahrscheinlich blockiert. In solchen Fällen greift der ACK-Test, da er diese Regeln einfach kappt.

Eine weitere häufige Art von Firewalls verwendet zustandsbehaftete Regeln, die unerwartete Pakete verwerfen. Dieses Merkmal konnte man zuerst bei hochwertigen Firewalls finden, es hat sich aber mit der Zeit deutlich verbreitet. In Linux unterstützt das Netfilter/iptables-System das mit der Option --state, die Pakete nach einem Verbindungszustand kategorisiert. In solchen Fällen hat der SYN-Test eine wesentlich bessere Chance auf Erfolg, da unerwartete ACK-Pakete im Allgemeinen als fehlerhaft erkannt und verworfen werden. Eine Lösung aus diesem Dilemma besteht darin, mit -PS und -PA SYN- und ACK-Testpakete zu senden.

-PU <port list> (UDP-Ping)

Eine weitere Möglichkeit bei der Host-Erkennung ist der UDP-Ping, bei dem ein leeres (außer bei Angabe von --data-length) UDP-Paket an die angegebenen Ports gesendet wird. Die Portliste hat dasselbe Format wie bei den weiter oben beschriebenen Optionen -PS und -PA. Falls keine Ports angegeben werden, ist die Standardeinstellung 31338. Dieser Wert kann zum Zeitpunkt des Kompilierens dürch Änderung von DEFAULT_UDP_PROBE_PORT_SPEC in nmap.h konfiguriert werden. Es wird absichtlich ein sehr unwahrscheinlicher Port verwendet, weil bei dieser bestimmten Art des Scannens das Senden an offene Ports oft unerwünscht ist.

Trifft der UDP-Test beim Zielrechner auf einen geschlossenen Port, so sollte dieser ein ICMP-Paket zurückschicken, das besagt, dass der Port nicht erreichbar ist. Daraus schließt Nmap, dass der Rechner läuft und verfügbar ist. Viele weitere Arten von ICMP-Fehlern, z.B. bei unerreichbaren Hosts/Netzwerken oder überschrittener TTL (Time To Live), sind Zeichen für einen abgeschalteten oder unerreichbaren Host. Auch eine ausbleibende Antwort wird so interpretiert. Falls ein offener Port erreicht wird, ignorieren die meisten Dienste das leere Paket einfach und geben keine Antwort zurück. Deswegen wird als Standardport 31338 benutzt, bei dem es sehr unwahrscheinlich ist, dass er benutzt wird. Einige Dienste, wie z.B. das Character Generator-Protokoll (chargen), antworten auf ein leeres UDP-Paket und enthüllen damit Nmap gegenüber, dass der Rechner zugänglich ist.

Der Hauptvorteil dieses Scan-Typs liegt darin, dass er Firewalls und Filter umgeht, die nur TCP überprüfen. Ich hatte z.B. einmal ein BEFW11S4, einen Wireless-Breitband-Router von Linksys. Die externe Schnittstelle dieses Geräts filterte standardmäßig alle TCP-Ports, aber UDP-Tests entlockten ihm weiterhin Meldungen über unerreichbare Ports und verrieten damit das Gerät.

-PE; -PP; -PM (ICMP-Ping-Arten)

Zusätzlich zu den genannten ungewöhnlichen TCP- und UDP-Host-Erkennungsarten kann Nmap auch Standardpakete senden, wie sie das allgegenwärtige Programm ping sendet. Nmap sendet ein ICMP Typ-8-Paket (Echo-Request) an die Ziel-IP-Adressen und erwartet eine Typ-0-Antwort (Echo-Reply) vom verfügbaren Host. Zum Leidwesen von Netzwerkerkundern blockieren viele Hosts und Firewalls heute diese Pakete, statt, wie in RFC 1122 verlangt, darauf zu antworten. Aus diesem Grund sind ICMP-Scans allein bei unbekannten Zielen über das Internet selten zuverlässig genug. Aber für Systemadministratoren, die ein internes Netzwerk überwachen, kann das ein praktischer und wirksamer Ansatz sein. Benutzen Sie die Option -PE, um dieses Verhalten mit Echo-Requests einzuschalten.

Auch wenn ein Echo-Request die Standard-ICMP-Ping-Abfrage ist, hört Nmap hier nicht auf. Der ICMP-Standard (RFC 792) spezifiziert auch Anfragepakete für Zeitstempel, Information und Adressmaske mit den jeweiligen Codes 13, 15 und 17. Während diese Anfragen angeblich den Zweck haben, an Informationen wie Address Mask und Timestamp zu gelangen, können sie auch leicht für die Host-Erkennung benutzt werden. Im Moment implementiert Nmap keine Information-Request-Pakete, da sie nicht weit verbreitet sind (RFC 1122 besteht darauf, dass ein Host diese Nachrichten NICHT implementieren SOLLTE). Anfragen nach Timestamp und Address Mask können jeweils mit den Optionen -PP und -PM gesendet werden. Eine Timestamp-Antwort (ICMP-Code 14) oder Address-Mask-Antwort (Code 18) enthüllt, dass der Host greifbar ist. Diese beiden Abfragen können wertvoll sein, wenn Administratoren ausdrücklich Echo-Request-Pakete blockieren, aber vergessen, dass man für den gleichen Zweck auch andere ICMP-Abfragen benutzen kann.

-PO <protocol list> (IP-Protokoll-Ping)

Die neueste Möglichkeit der Host-Erkennung ist ein IP-Protokoll-Ping, der IP-Pakete sendet, in deren IP-Header die angegebene Protokollnummer gesetzt ist. Die Protokoll-Liste hat dasselbe Format wie Portlisten bei den weiter oben vorgestellten Optionen der TCP- und UDP-Host-Erkennung. Ohne Angabe von Protokollen werden standardmäßig mehrere IP-Pakete für ICMP (Protokoll 1), IGMP (Protokoll 2) und IP-in-IP (Protokoll 4) gesendet. Die Standardprotokolle können zum Zeitpunkt des Kompilierens durch Veränderung von DEFAULT_PROTO_PROBE_PORT_SPEC in nmap.h konfiguriert werden. Beachten Sie, dass für ICMP, IGMP, TCP (Protokoll 6) und UDP (Protokoll 17) die Pakete mit den richtigen Protokoll-Headern gesendet werden, während andere Protokolle ohne weitere Daten über den IP-Header hinaus gesendet werden (es sei denn, die Option --data-length wird angegeben).

Diese Methode der Host-Erkennung sucht nach Antworten, die entweder dasselbe Protokoll wie der Test haben, oder Meldungen, dass das ICMP-Protokoll nicht erreichbar ist, was bedeutet, dass das gegebene Protokoll vom Zielhost nicht unterstützt wird. Beide Antworten bedeuten, dass der Zielhost am Leben ist.

-PR (ARP-Ping)

Eines der häufigsten Einsatzszenarien für Nmap ist das Scannen eines Ethernet-LANs. In den meisten LANs, besonders jenen, die durch RFC 1918 erteilte private Adressbereiche verwenden, wird der Großteil der IP-Adressen meistens nicht genutzt. Wenn Nmap versucht, ein rohes IP-Paket wie z.B. ein ICMP Echo-Request zu senden, muss das Betriebssystem die der Ziel-IP entsprechende Hardware-Zieladresse (ARP) bestimmen, damit es den Ethernet-Frame korrekt adressieren kann. Das ist oft langsam und problematisch, da Betriebssysteme nicht in der Erwartung geschrieben wurden, dass sie in kurzer Zeit Millionen von ARP-Anfragen bei nicht erreichbaren Hosts durchführen müssen.

Beim ARP-Scan ist Nmap mit seinen optimierten Algorithmen zuständig für ARP-Anfragen. Und wenn es eine Antwort erhält, muss sich Nmap nicht einmal um die IP-basierten Ping-Pakete kümmern, da es bereits weiß, dass der Host aktiv ist. Das macht den ARP-Scan viel schneller und zuverlässiger als IP-basierte Scans. Deswegen wird er standardmäßig ausgeführt, wenn Ethernet-Hosts gescannt werden, bei denen Nmap bemerkt, dass sie sich in einem lokalen Ethernet-Netzwerk befinden. Selbst wenn verschiedene Ping-Arten (wie z.B. -PE oder -PS) angegeben werden, benutzt Nmap stattdessen ARP bei allen Zielen, die im selben LAN sind. Wenn Sie einen ARP-Scan auf gar keinen Fall durchführen möchten, geben Sie --send-ip an.

--traceroute (Traceroutes zum Host)

Traceroutes werden nach einem Scan mit Hilfe der Information aus den Scan-Ergebnissen durchgeführt, um den wahrscheinlichsten Port und das wahrscheinlichste Protokoll zu bestimmen, die zum Ziel führen. Es funktioniert mit allen Scan-Arten außer Connect-Scans (-sT) und Idle-Scans (-sI). Alle Traces benutzen Nmaps dynamisches Timing-Modell und werden parallel durchgeführt.

Traceroute funktioniert dadurch, dass es Pakete mit kurzer TTL (Time To Live) sendet und damit versucht, ICMP Time-Exceeded-Nachrichten von Sprungstellen zwischen dem Scanner und dem Zielhost hervorzurufen. Standardimplementationen von Traceroute fangen mit einer TTL von 1 an und inkrementieren die TTL, bis der Zielhost erreicht ist. Nmaps Traceroute fängt mit einer hohen TTL an und verringert sie, bis sie Null erreicht. Durch dieses umgekehrte Vorgehen kann Nmap clevere Caching-Algorithmen benutzen, um Traces über mehrere Hosts zu beschleunigen. Im Durchschnitt sendet Nmap je nach Netzwerkbedingungen 5–10 Pakete weniger pro Host. Wenn ein einziges Unternetz gescannt wird (z.B. 192.168.0.0/24), muss Nmap an die meisten Hosts eventuell nur ein einziges Paket senden.

-n (keine DNS-Auflösung)

Weist Nmap an, niemals eine Reverse-DNS-Auflösung bei den gefundenen aktiven IP-Adressen durchzuführen. Da DNS selbst mit Nmaps eingebautem parallelen Stub-Resolver langsam sein kann, kann diese Option die Scan-Zeiten dramatisch reduzieren.

-R (DNS-Auflösung für alle Ziele)

Weist Nmap an, immer eine Reverse-DNS-Auflösung bei den Ziel-IP-Adressen durchzuführen. Normalerweise wird Reverse-DNS nur bei anwortenden Hosts (die online sind) durchgeführt.

--system-dns (verwendet DNS-Auflösung des Systems)

Standardmäßig löst Nmap IP-Adressen auf, indem es Anfragen direkt an die auf Ihrem Host konfigurierten Nameserver schickt und dann auf Antworten wartet. Um die Performance zu erhöhen, werden viele Anfragen (oftmals Dutzende) parallel ausgeführt. Wenn Sie diese Option angeben, verwenden Sie stattdessen die Auflösungsmethode Ihres Systems (zu jedem Zeitpunkt nur eine IP mit dem Aufruf getnameinfo call). Das ist langsam und selten nützlich, es sei denn, Sie finden einen Fehler bei der parallelen Auflösung in Nmap (bitte teilen Sie uns das mit). Bei IPv6-Scans wird immer die Auflösungsmethode des Systems verwendet.

--dns-servers <server1>[,<server2>[,...]] (Server, die für Reverse-DNS-Anfragen benutzt werden)

Standardmäßig bestimmt Nmap Ihre DNS-Server (für die rDNS-Auflösung) aus Ihrer Datei resolv.conf (Unix) oder der Registry (Win32). Mit dieser Option können Sie alternative Server dazu angeben. Diese Option bleibt unbeachtet, falls Sie --system-dns oder einen IPv6-Scan benutzen. Oft ist es schneller, mehrere DNS-Server zu benutzen, besonders dann, wenn Sie für Ihren Ziel-IP-Raum maßgebende Server benutzen. Diese Option kann auch die Heimlichkeit erhöhen, da Ihre Anfragen von fast jedem rekursiven DNS-Server im Internet abprallen können.

Diese Option ist auch beim Scannen privater Netzwerke praktisch. Manchmal bieten nur einige wenige Nameserver saubere rDNS-Information, und Sie wissen vielleicht nicht einmal, wo sie sind. Sie können das Netzwerk auf Port 53 scannen (vielleicht mit Versionserkennung), dann Nmap-List-Scans versuchen (-sL) und dabei mit der Option --dns-servers immer nur einen Nameserver angeben, bis Sie einen finden, der funktioniert.