|
|
Zeile 758: |
Zeile 758: |
| </noinclude> | | </noinclude> |
|
| |
|
| = Manpage =
| | {{DEFAULTSORT:nmap}} |
| == 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[1]
| |
| 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[2]) 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[3]
| |
| 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.
| |
| | |
| 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.
| |
| | |
| PORT-SCANNING-METHODEN
| |
| Als Hobby-Automechaniker kann ich mich stundenlang damit herumquälen, meine einfachsten Werkzeuge (Hammer, Klebeband, Schraubenschlüssel etc.) an
| |
| mein Problem anzupassen. Wenn ich dann kläglich versage und meine alte Blechkiste zu einem echten Mechaniker schleppe, fischt er immer so lange in
| |
| einer riesigen Werkzeugkiste herum, bis er das perfekte Ding gefunden hat, mit dem sich die Aufgabe fast von allein löst. Bei der Kunst des
| |
| Port-Scannings ist es ähnlich. Experten kennen Dutzende von Scan-Methoden und wählen für jede Aufgabe die geeignete (oder eine Kombination von
| |
| mehreren) aus. Auf der anderen Seite versuchen unerfahrene Benutzer und Script-Kiddies, jedes Problem mit dem standardmäßigen SYN-Scan zu lösen. Da
| |
| Nmap gratis ist, ist Unwissen das einzige Hindernis auf dem Weg zur Meisterschaft im Port-Scanning. Das ist bestimmt besser als in der Autowelt, wo
| |
| man eventuell sehr viel Können haben muss, um festzustellen, dass man einen Federbein-Kompressor benötigt, und dann immer noch Tausende dafür
| |
| bezahlen muss.
| |
| | |
| Die meisten Scan-Typen stehen nur privilegierten Benutzern zur Verfügung, und zwar deswegen, weil sie rohe IP-Pakete senden und empfangen, wofür auf
| |
| Unix-Systemen root-Rechte benötigt werden. Auf Windows empfiehlt sich ein Administrator-Account, wenngleich auf dieser Plattform Nmap manchmal auch
| |
| für unprivilegierte Benutzer funktioniert, sofern WinPcap bereits in das Betriebssystem geladen wurde. Als Nmap 1997 veröffentlicht wurde, war die
| |
| Voraussetzung von root-Rechten eine ernsthafte Beschränkung, da viele Benutzer nur Zugriff zu Shell-Accounts hatten. Die Welt von heute ist anders.
| |
| Computer sind billiger, wesentlich mehr Menschen verfügen über einen immer verfügbaren direkten Internet-Zugang, und Desktop-Unix-Systeme (inklusive
| |
| Linux und Mac OS X) sind weit verbreitet. Eine Windows-Version von Nmap ist nun auch verfügbar, wodurch es nun auf noch mehr Rechnern laufen kann.
| |
| Aus all diesen Gründen sind Benutzer nur noch selten gezwungen, Nmap von einem beschränkten Shell-Account aus einzusetzen. Das ist erfreulich, denn
| |
| die privilegierten Optionen machen Nmap wesentlich mächtiger und flexibler.
| |
| | |
| Auch wenn Nmap versucht, genaue Ergebnisse zu produzieren, sollten Sie nicht vergessen, dass all seine Erkenntnisse auf Paketen basieren, die von
| |
| den Zielrechnern (oder den Firewalls davor) zurückkommen. Solche Hosts können unzuverlässig sein und eine Antwort senden, die Nmap verwirren oder
| |
| täuschen soll. Wesentlich häufiger sind Hosts, die nicht RFC-konform sind und auf Testpakete von Nmap nicht so antworten, wie sie sollten. FIN-,
| |
| NULL- und Xmas-Scans sind für dieses Problem besonders anfällig. Solche Probleme sind spezifisch für bestimmte Scan-Methoden und werden daher in den
| |
| jeweiligen Abschnitten erörtert.
| |
| | |
| Dieser Abschnitt dokumentiert die etwa ein Dutzend von Nmap unterstützten Port-Scan-Methoden. Es darf immer nur eine Methode allein benutzt werden,
| |
| mit der Ausnahme von UDP-Scans (-sU), die sich mit allen anderen TCP-Scan-Methoden kombinieren lassen. Hier eine Gedächtnisstütze: Optionen für
| |
| Port-Scan-Methoden haben die Form -sC, wobei C ein bedeutender Buchstabe im Scan-Namen ist, normalerweise der erste. Die eine Ausnahme hiervon ist
| |
| der als veraltet betrachtete FTP-Bounce-Scan (-b). Nmap führt standardmäßig einen SYN-Scan durch, ersetzt diesen aber mit einem Connect-Scan, falls
| |
| der Benutzer nicht die nötigen Rechte hat, um rohe Pakete (benötigen unter Unix root-Rechte) zu senden, oder falls er IPv6-Ziele angegeben hat. Von
| |
| den in diesem Abschnitt aufgelisteten Scans dürfen Benutzer ohne Sonderrechte nur den Connect- und FTP-Bounce-Scan ausführen.
| |
| | |
| -sS (TCP-SYN-Scan)
| |
| Der SYN-Scan ist aus gutem Grund die Standardeinstellung und die beliebteste Scan-Methode. Er kann schnell durchgeführt werden und scannt dabei
| |
| Tausende von Ports pro Sekunde, wenn das Netzwerk schnell ist und nicht von einer intrusiven Firewall behindert wird. Der SYN-Scan ist relativ
| |
| unauffällig, da er TCP-Verbindungen niemals abschließt. Außerdem funktioniert er auch bei allen konformen TCP-Stacks und ist unabhängig von
| |
| spezifischen Eigenarten von Plattformen, wie es bei den FIN-/NULL-/Xmas-, Maimon- und Idle-Scans in Nmap der Fall ist. Er erlaubt auch eine
| |
| klare, zuverlässige Unterscheidung zwischen den Zuständen offen, geschlossen und gefiltert.
| |
| | |
| Diese Methode wird oft als halboffenes Scannen bezeichnet, weil keine vollständige TCP-Verbindung hergestellt wird. Sie senden ein SYN-Paket,
| |
| als ob Sie eine echte Verbindung herstellen würden, und warten dann auf eine Antwort. Ein SYN/ACK zeigt, dass jemand auf dem Port lauscht (dass
| |
| er offen ist), während ein RST (Reset) anzeigt, dass niemand darauf lauscht. Falls nach mehreren erneuten Übertragungen keine Antwort erhalten
| |
| wird, wird der Port als gefiltert markiert. Der Port wird auch dann als gefiltert markiert, wenn ein ICMP Unreachable-Fehler (Typ 3, Code 1, 2,
| |
| 3, 9, 10 oder 13) empfangen wird.
| |
| | |
| -sT (TCP-Connect-Scan)
| |
| Der TCP-Connect-Scan ist der standardmäßig eingestellte TCP-Scan-Typ, falls der SYN-Scan nicht möglich ist. Das ist dann der Fall, wenn der
| |
| Benutzer kein Recht hat, rohe Pakete zu senden, oder wenn er IPv6-Netzwerke scannt. Statt rohe Pakete zu schreiben, wie es die meisten anderen
| |
| Scan-Typen machen, bittet Nmap das darunterliegende Betriebssystem, eine Verbindung mit dem Zielrechner und -port herzustellen, indem es einen
| |
| Systemaufruf namens connect benutzt. Das ist derselbe Systemaufruf auf höherer Ebene, den Webbrowser, P2P-Clients und die meisten anderen
| |
| netzwerkfähigen Anwendungen benutzen, um eine Verbindung herzustellen. Er ist Teil einer Programmierschnittstelle, die unter dem Namen Berkeley
| |
| Sockets-API bekannt ist. Statt Antworten in Form roher Pakete von der Leitung zu lesen, benutzt Nmap diese API, um zu jedem Verbindungsversuch
| |
| eine Statusinformation zu erhalten.
| |
| | |
| Wenn der SYN-Scan verfügbar ist, ist er normalerweise die bessere Wahl. Nmap hat weniger Einfluss auf den connect-Systemaufruf als auf rohe
| |
| Pakete, wodurch es weniger effizient wird. Der Systemaufruf beendet Verbindungen zu offenen Ziel-Ports vollständig, statt sie in halboffenen
| |
| Zustand zurückzusetzen, wie es der SYN-Scan macht. Das dauert nicht nur länger und erfordert mehr Pakete, um an dieselbe Information zu
| |
| gelangen, sondern es ist sehr viel wahrscheinlicher, dass die Zielrechner die Verbindung protokollieren. Ein anständiges IDS wird beides
| |
| mitbekommen, aber die meisten Rechner verfügen nicht über ein solches Alarmsystem. Viele Dienste auf Ihrem durchschnittlichen Unix-System fügen
| |
| eine Notiz ins syslog hinzu und manchmal eine kryptische Fehlermeldung, wenn Nmap eine Verbindung herstellt und sofort wieder schließt, ohne
| |
| Daten zu senden. Ganz armselige Dienste stürzen auch ab, wenn so etwas passiert, was aber eher selten ist. Ein Administrator, der in seinen
| |
| Protokollen einen Haufen Verbindungsversuche von einem einzelnen System aus sieht, sollte wissen, dass er Ziel eines Connect-Scans wurde.
| |
| | |
| -sU (UDP-Scan)
| |
| Obwohl die meisten bekannten Dienste im Internet über das TCP-Protokoll laufen, sind UDP[4]-Dienste weitverbreitet. Drei der häufigsten sind
| |
| DNS, SNMP und DHCP (auf den registrierten Ports 53, 161/162 und 67/68). Weil UDP-Scans im Allgemeinen langsamer und schwieriger als TCP-Scans
| |
| sind, werden diese Ports von manchen Sicherheitsprüfern einfach ignoriert. Das ist ein Fehler, denn ausbeutbare UDP-Dienste sind recht häufig,
| |
| und Angreifer ignorieren bestimmt nicht das ganze Protokoll. Zum Glück kann Nmap helfen, diese UDP-Ports zu inventarisieren.
| |
| | |
| Ein UDP-Scan wird mit der Option -sU aktiviert. Er kann mit einem TCP-Scan-Typ wie einem SYN-Scan (-sS) kombiniert werden, um beide Protokolle
| |
| im gleichen Durchlauf zu prüfen.
| |
| | |
| Beim UDP-Scan wird ein leerer UDP-Header (ohne Daten) an alle Ziel-Ports geschickt. Falls ein ICMP Port-unreachable-Fehler (Typ 3, Code 3)
| |
| zurückkommt, ist der Port geschlossen. Andere ICMP Unreachable-Fehler (Typ 3, Codes 1, 2, 9, 10 oder 13) markieren den Port als filtered.
| |
| Gelegentlich wird ein Dienst mit einem UDP-Paket antworten, was beweist, das er offen ist. Falls nach einigen erneuten Übertragungen keine
| |
| Antwort erhalten wird, wird der Port als offen|gefiltert klassifiziert. Das heißt, der Port könnte offen sein, oder aber es gibt Paketfilter,
| |
| die die Kommunikation blockieren. Man kann eine Versionserkennung (-sV) benutzen, um bei der Unterscheidung der wirklich offenen von den
| |
| geschlossenen Ports zu helfen.
| |
| | |
| Eine große Herausforderung beim UDP-Scanning ist Geschwindigkeit. Offene und gefilterte Ports antworten nur selten, wodurch Nmap
| |
| Zeitbeschränkungen überschreitet und seine Anfragen erneut sendet, für den Fall, dass das Testpaket oder die Antwort verloren ging. Geschlossene
| |
| Ports sind oftmals ein noch größeres Problem. Sie senden normalerweise eine ICMP Port-unreachable-Fehlermeldung zurück. Aber anders als die
| |
| RST-Pakete, die von geschlossenen TCP-Ports als Antwort auf einen SYN- oder Connect-Scan geschickt werden, beschränken viele Hosts standardmäßig
| |
| die Rate der ICMP Port-unreachable-Nachrichten. Linux und Solaris sind dabei besonders streng. Der Linux-Kernel 2.4.20 z. B. beschränkt
| |
| Destination-unreachable-Nachrichten auf eine pro Sekunde (in net/ipv4/icmp.c).
| |
| | |
| Nmap erkennt eine Ratenbeschränkung und verlangsamt seinen Betrieb entsprechend, um zu vermeiden, dass das Netzwerk mit nutzlosen Paketen
| |
| überflutet wird, die vom Zielrechner verworfen werden. Unglücklicherweise führt eine Beschränkung wie in Linux auf ein Paket pro Sekunde dazu,
| |
| dass ein Scan von 65.536 Ports über 18 Stunden dauert. Um Ihre UDP-Scans zu beschleunigen, können Sie z. B. mehr Hosts parallel scannen, zuerst
| |
| nur einen schnellen Scan der beliebten Ports durchführen, von hinter der Firewall scannen und die Option --host-timeout benutzen, um langsame
| |
| Hosts auszulassen.
| |
| | |
| -sN; -sF; -sX (TCP-NULL-, FIN- und -Xmas-Scans)
| |
| Diese drei Scan-Typen (noch mehr sind mit der im nächsten Abschnitt beschriebenen Option --scanflags möglich) beuten ein subtiles Schlupfloch im
| |
| TCP RFC[5] aus, um zwischen offenen und geschlossenen Ports zu unterscheiden. Seite 65 von RFC 793 besagt: „Falls der Zustand des [Ziel-] Ports
| |
| GESCHLOSSEN ist ... bewirkt ein eingehendes Segment, in dem sich kein RST befindet, dass ein RST als Antwort gesendet wird.“ Die nächste Seite
| |
| beschreibt dann Pakete, die ohne gesetztes SYN-, RST- oder ACK-Bit an offene Ports geschickt werden, und dort heißt es weiter: „Es ist
| |
| unwahrscheinlich, dass Sie hierhin kommen, aber wenn doch, dann verwerfen Sie das Segment und springen Sie zurück.“
| |
| | |
| Beim Scannen von Systemen, die konform zu diesem RFC-Text sind, führt jedes Paket, das kein SYN-, RST- oder ACK-Bit enthält, dazu, dass ein RST
| |
| zurückgegeben wird, wenn der Port geschlossen ist, bzw. zu gar keiner Antwort, falls der Port offen ist. Solange keines dieser drei Bits gesetzt
| |
| ist, sind alle Kombinationen der anderen drei (FIN, PSH und URG) okay. Das nutzt Nmap mit drei Scan-Typen aus:
| |
| | |
| Null-Scan (-sN)
| |
| Setzt keinerlei Bits (der TCP-Flag-Header ist 0).
| |
| | |
| FIN-Scan (-sF)
| |
| Setzt nur das TCP-FIN-Bit.
| |
| | |
| Xmas-Scan (-sX)
| |
| Setzt die FIN-, PSH- und URG-Flags und beleuchtet das Paket wie einen Weihnachtsbaum (engl. Xmas).
| |
| | |
| Diese drei Scan-Typen haben exakt dasselbe Verhalten und unterscheiden sich nur in den TCP-Flags ihrer Testpakete. Wenn ein RST-Paket empfangen
| |
| wird, wird der Port als geschlossen betrachtet, während keine Antwort bedeutet, dass er offen|gefiltert ist. Der Port wird als gefiltert
| |
| markiert, falls ein ICMP Unreachable-Fehler (Type 3, Code 1, 2, 3, 9, 10 oder 13) empfangen wird.
| |
| | |
| Der Schlüsselvorteil dieser Scan-Arten ist, dass sie sich an bestimmten zustandslosen Firewalls und paketfilternden Routern vorbeschleichen
| |
| können. Ein weiterer Vorteil ist, dass diese Scan-Arten ncoh ein wenig unauffälliger sind als ein SYN-Scan. Aber verlassen Sie sich nicht darauf
| |
| – die meisten modernen IDS-Produkte können so konfiguriert werden, dass sie diese Scans erkennen. Der große Nachteil ist, dass nicht alle
| |
| Systeme sich ganz genau an RFC 793 halten. Eine Reihe von Systemen sendet RST-Antworten auf die Testpakete, unabhängig davon, ob der Port offen
| |
| ist oder nicht. Das bewirkt, dass alle Ports als geschlossen markiert werden. Hauptvertreter der Betriebssysteme, die das machen, sind Microsoft
| |
| Windows, viele Cisco-Geräte, BSDI und IBM OS/400. Aber auf den meisten Unix-basierten Systemen funktioniert dieser Scan. Ein weiterer Nachteil
| |
| dieser Scans ist, dass sie keine Unterscheidung zwischen offenen und bestimmten gefilterten Ports machen, sondern lediglich das Ergebnis
| |
| offen|gefiltert ausgeben.
| |
| | |
| -sA (TCP-ACK-Scan)
| |
| Dieser Scan unterscheidet sich insofern von den bisher hier vorgestellten, als er nie offene (oder auch nur offene|gefilterte) Ports bestimmt.
| |
| Er wird dazu benutzt, Firewall-Regeln zu bestimmen, festzustellen, ob sie zustandsbehaftet sind oder nicht, und welche Ports gefiltert werden.
| |
| | |
| Beim Testpaket eines ACK-Scans wird nur das ACK-Flag gesetzt (es sei denn, Sie benutzen --scanflags). Beim Scannen ungefilterter Systeme werden
| |
| sowohl offene als auch geschlossene Ports ein RST-Paket zurückgeben. Nmap markiert sie dann als ungefiltert, d.h. sie werden vom ACK-Paket
| |
| erreicht, aber es kann nicht bestimmt werden, ob sie offen oder geschlossen sind. Ports, die nicht antworten oder bestimmte ICMP-Fehlermeldungen
| |
| zurückgeben (Type 3, Code 1, 2, 3, 9, 10 oder 13), werden als gefiltert markiert.
| |
| | |
| -sW (TCP-Window-Scan)
| |
| Der Window-Scan ist genau derselbe wie der ACK-Scan, nur dass er ein Implementationsdetail bestimmter Systeme zur Unterscheidung zwischen
| |
| offenen und geschlossenen Ports nutzt, statt bei jedem erhaltenen RST immer nur ungefiltert anzugeben. Das geschieht durch Analyse der
| |
| TCP-Fenstergröße der zurückgegebenen RST-Pakete. Auf manchen Systemen benutzen offene Ports eine positive Fenstergröße (sogar für RST-Pakete),
| |
| während geschlossene eine Fenstergröße von Null haben. Statt einen Port immer als ungefiltert aufzulisten, wenn von dort ein RST zurückkommt,
| |
| listet der Window-Scan den Port als offen oder geschlossen auf, je nachdem, ob die TCP-Fenstergröße in diesem Reset jeweils positiv oder Null
| |
| ist.
| |
| | |
| Dieser Scan baut auf einem Implementationsdetail einer Minderheit von Systemen im Internet auf, d.h. Sie können sich nicht immer darauf
| |
| verlassen. Systeme, die es nicht unterstützen, werden normalerweise alle Ports als geschlossen zurückgeben. Natürlich ist es möglich, dass auf
| |
| dem Rechner wirklich keine offenen Ports sind. Falls die meisten gescannten Ports geschlossen, aber einige Ports mit geläufigen Nummern (wie 22,
| |
| 25 und 53) gefiltert sind, dann ist das System sehr wahrscheinlich anfällig. Gelegentlich zeigen Systeme auch genau das gegenteilige Verhalten.
| |
| Falls Ihr Scan 1000 offene und drei geschlossene oder gefilterte Ports anzeigt, dann könnten jene drei sehr wohl die wirklich wahren offenen
| |
| Ports sein.
| |
| | |
| -sM (TCP-Maimon-Scan)
| |
| Der Maimon-Scan wurde nach seinem Erfinder, Uriel Maimon, benannt. Er hat diese Methode im Phrack-Magazin, Ausgabe #49 (November 1996),
| |
| beschrieben. Zwei Ausgaben später war diese Methode in Nmap enthalten. Sie macht genau das Gleiche wie der NULL-, FIN- und Xmas-Scan, außer,
| |
| dass sie ein FIN/ACK-Testpaket verwendet. Laut RFC 793[5] (TCP) sollte als Antwort auf solch ein Paket ein RST-Paket erzeugt werden, egal ob der
| |
| Port offen oder geschlossen ist. Allerdings hatte Uriel bemerkt, dass viele von BSD abgeleitete Systeme das Paket einfach verwerfen, wenn der
| |
| Port offen ist.
| |
| | |
| --scanflags (Benutzerdefinierter TCP-Scan)
| |
| Wirklich fortgeschrittene Nmap-Benutzer brauchen sich nicht auf die vorgefertigten Scan-Typen zu beschränken. Mit der Option --scanflags können
| |
| Sie Ihren eigenen Scan entwerfen, für den Sie beliebige TCP-Flags angeben können. Lassen Sie Ihrer Kreativität freien Lauf und umgehen Sie
| |
| Intrusion-Detection-Systeme, deren Hersteller einfach die Nmap-Manpage durchgeblättert und spezifische Regeln dafür angegeben haben!
| |
| | |
| Das Argument für --scanflags kann ein numerischer Flag-Wert wie z. B. 9 (PSH und FIN) sein, aber symbolische Namen sind einfacher zu benutzen.
| |
| Erstellen Sie einfach eine beliebige Kombination von URG, ACK, PSH, RST, SYN und FIN. So setzt z. B. --scanflags URGACKPSHRSTSYNFIN alle Flags,
| |
| auch wenn das beim Scannen nicht besonders hilfreich ist. Die Reihenfolge, in der Sie diese Flags angeben, spielt keine Rolle.
| |
| | |
| Zusätzlich zu den gewünschten Flags können Sie einen TCP-Scan-Typen (z. B. -sA oder -sF) angeben. Dieser Basistyp sagt Nmap, wie es die Antworten
| |
| interpretieren soll. Ein SYN-Scan z. B. betrachtet das Fehlen einer Antwort als einen Hinweis auf einen gefilterten Port, während ein FIN-Scan
| |
| das als einen Hinweis auf einenoffen|gefilterten Port ansieht. Nmap verhält sich genauso wie beim Scan-Basistyp, nur mit dem Unterschied, dass
| |
| es die von Ihnen angegebenen TCP-Flags benutzt. Ohne Angabe eines Basistyps wird ein SYN-Scan benutzt.
| |
| | |
| -sI zombie host[:probeport] (Idle-Scan)
| |
| Diese fortgechrittene Scan-Methode ermöglicht einen wirklich blinden TCP-Port-Scan des Ziels, d.h. es werden keine Pakete von Ihrer wahren
| |
| IP-Adresse an das Ziel gesendet. Stattdessen wird mit einem Angriff auf einem parallelen Kanal eine vorhersagbare Erzeugung von Folgen von
| |
| IP-Fragmentation-IDs auf dem Zombie-Host ausgebeutet, um an Information über offene Ports auf dem Ziel zu gelangen. IDS-Systeme zeigen als
| |
| Urheber des Scans den Zombie-Rechner an, den Sie angeben (der aktiv sein und einige bestimmte Bedingungen erfüllen muss). Da dieser
| |
| faszinierende Scan-Typ zu komplex ist, um ihn in diesem Handbuch vollständig zu beschreiben, habe ich einen Artikel mit vollständigen Details
| |
| dazu geschrieben und unter https://nmap.org/book/idlescan.html veröffentlicht.
| |
| | |
| Dieser Scan-Typ ist nicht nur extrem unauffällig (wegen seiner Blindheit), sondern erlaubt auch, IP-basierte Vetrauensbeziehungen zwischen
| |
| Rechnern festzustellen. Die Portliste zeigt offene Ports aus der Sicht des Zombie-Hosts an. Also können Sie versuchen, ein Ziel mit
| |
| verschiedenen Zombies zu scannen, von denen Sie denken, dass sie vertrauenswürdig sind (über Router-/Paketfilterregeln).
| |
| | |
| Wenn Sie einen bestimmten Port auf dem Zombie auf IP-ID-Änderungen testen möchten, können Sie einen Doppelpunkt gefolgt von einer Portnummer an
| |
| den Zombie-Host hinzufügen. Sonst benutzt Nmap den Port, den es standardmäßig bei TCP-Pings benutzt (80).
| |
| | |
| -sO (IP-Protokoll-Scan)
| |
| Der IP-Protokoll-Scan ermöglicht die Bestimmung der IP-Protokolle (TCP, ICMP, IGMP etc.), die von Zielrechnern unterstützt werden. Rein
| |
| technisch ist das kein Port-Scan, da er über Nummern von IP-Protokollen statt TCP- oder UDP-Ports vorgeht. Dennoch benutzt er die Option -p für
| |
| die Auswahl der zu scannenden Protokollnummern, gibt seine Ergebnisse im normalen Port-Tabellenformat aus und benutzt sogar dieselbe
| |
| grundlegende Scan-Engine wie die echten Port-Scanning-Methoden. Damit ist er einem Port-Scan ähnlich genug, um an dieser Stelle beschrieben zu
| |
| werden.
| |
| | |
| Abgesehen davon, dass er schon als solcher nützlich ist, zeigt der Protokoll-Scan die Macht von Open-Source-Software. Auch wenn die grundlegende
| |
| Idee recht simpel ist, hatte ich nicht daran gedacht, ihn hinzuzufügen, und bekam auch keine Anfragen nach einer solchen Funktionalität. Dann,
| |
| im Sommer 2000, hatte Gerhard Rieger die Idee, schrieb einen exzellenten Patch als Implementation und sendete ihn an die Mailingliste
| |
| nmap-hackers. Diesen Patch habe ich in den Nmap-Baum aufgenommen und einen Tag später eine neue Version veröffentlicht. Es gibt nur wenig
| |
| kommerzielle Software, deren Benutzer so enthusiastisch sind, dass sie eigene Verbesserungen dafür entwerfen und beitragen!
| |
| | |
| Der Protokoll-Scan funktioniert auf ähnliche Weise wie der UDP-Scan. Statt über das Portnummernfeld eines UDP-Pakets zu iterieren, sendet er
| |
| IP-Paketheader und iteriert über das acht Bit große IP-Protokollfeld. Die Header sind normalerweise leer, enthalten keine Daten und nicht einmal
| |
| den richtigen Header für das behauptete Protokoll. Die drei Ausnahmen davon sind TCP, UDP und ICMP. Für diese werden richtige Protokoll-Header
| |
| verwendet, da manche Systeme sie sonst nicht versenden und weil Nmap bereits über die Funktionen verfügt, um sie zu erzeugen. Statt Nachrichten
| |
| der Art ICMP Port unreachable sucht der Protokoll-Scan nach ICMP Protocol unreachable. Falls Nmap zu irgendeinem Protokoll eine Antwort vom
| |
| Zielhost erhält, markiert es das Protokoll als offen. Bei einem ICMP Protocol-unreachable-Fehler (Typ 3, Code 2) wird das Protokoll als
| |
| geschlossen markiert. Bei anderen ICMP Unreachable-Fehlern (Typ 3, Code 1, 3, 9, 10 oder 13) wird das Protokoll als gefiltert markiert (auch
| |
| wenn sie gleichzeitig beweisen, dass ICMP offen ist). Falls nach einigen erneuten Übertragungen keine Antwort erhalten wird, wird das Protokoll
| |
| als offen|gefiltert markiert.
| |
| | |
| -b FTP relay host (FTP-Bounce-Scan)
| |
| Eine interessante Eigenschaft des FTP-Protokolls (RFC 959[6]) ist dessen Unterstützung sogenannter Proxy-FTP-Verbindungen. Damit kann sich ein
| |
| Benutzer mit einem FTP-Server verbinden und dann verlangen, dass Dateien an einen Server einer dritten Partei gesendet werden. Solch eine
| |
| Eigenschaft ist auf vielen Ebenen sturmreif für Missbrauch, weswegen die meisten Server sie nicht mehr unterstützen. Ein solcher Missbrauch, den
| |
| diese Eigenschaft ermöglicht, ist, den FTP-Server für Port-Scans anderer Hosts zu benutzen. Bitten Sie den FTP-Server einfach, eine Datei
| |
| nacheinander an alle interessanten Ports eines Zielhosts zu senden. Die Fehlermeldung wird beschreiben, ob der Port offen ist oder nicht. Das
| |
| ist ein guter Weg, Firewalls zu umgehen, weil FTP-Server von Organisationen oft an Orten platziert sind, von denen aus sie besseren Zugriff auf
| |
| weitere interne Hosts haben, als es jeder alte Internet-Host hätte. Nmap unterstützt den FTP-Bounce-Scan mit der Option -b. Sie erwartet ein
| |
| Argument der Form username:password@server:port. Dabei ist Server der Name oder die IP-Adresse eines anfälligen FTP-Servers. Wie bei einer
| |
| normalen URL können Sie username:password auch weglassen, wobei dann eine anonyme Anmeldung erfolgt (username: anonymous password:-wwwuser@).
| |
| Die Portnummer (samt Doppelpunkt davor) können Sie ebenfalls weglassen, wobei dann auf server der Standard-FTP-Port (21) benutzt wird.
| |
| | |
| Als Nmap 1997 veröffentlicht wurde, war diese Schwachstelle weit verbreitet, wurde seitdem aber größtenteils behoben. Aber da es immer noch
| |
| anfällige Server gibt, lohnt sich ein Versuch, falls alles andere versagt. Wenn Sie eine Firewall umgehen möchten, scannen Sie das Zielnetzwerk
| |
| nach einem offenen Port 21 (oder sogar nach beliebigen FTP-Diensten, falls Sie alle Ports mit Versionserkennung scannen können), und probieren
| |
| Sie dann für jeden einen Bounce-Scan aus. Nmap wird Ihnen sagen, ob der Host angreifbar ist oder nicht. Versuchen Sie lediglich, Ihre Spuren zu
| |
| verwischen, dann brauchen Sie sich nicht (und tatsächlich sollten Sie das nicht einmal) auf Hosts im Zielnetzwerk zu beschränken. Bevor Sie
| |
| anfangen, zufällige Internet-Adressen nach anfälligen FTP-Servern zu scannen, bedenken Sie, dass Sysadmins keinen Gefallen daran finden werden,
| |
| dass Sie ihre Server auf diese Weise missbrauchen.
| |
| | |
| PORT-ANGABE UND SCAN-REIHENFOLGE
| |
| Zusätzlich zu all den bisher erläuterten Scan-Methoden bietet Nmap Optionen, mit denen man angibt, welche Ports gescannt werden und ob die
| |
| Scan-Reihenfolge randomisiert oder sequentiell ist. Nmap scannt standardmäßig für jedes Protokoll die 1000 meistbenutzten Ports.
| |
| | |
| -p port ranges (scannt nur angegebene Ports)
| |
| Diese Option gibt an, welche Ports Sie scannen möchten, und überschreibt die Voreinstellung. Einzelne Portnummern sind okay, ebenso wie mit
| |
| einem Bindestrich getrennte Bereiche (z. B. 1-1023). Anfangs- und/oder Endwerte eines Bereichs können weggelassen werden und werden von Nmap dann
| |
| mit jeweils 1 bzw. 65535 ersetzt. So können Sie mit -p- alle Ports von 1 bis 65535 scannen. Es ist erlaubt, den Port Null zu scannen, wenn Sie
| |
| ihn explizit angeben. Bei IP-Protokoll-Scans (-sO) gibt diese Option die Protokollnummern an, die Sie scannen möchten (0–255).
| |
| | |
| Wenn Sie sowohl TCP- als auch UDP-Ports scannen, können Sie ein bestimmtes Protokoll angeben, indem Sie den Portnummern ein T: bzw. U:
| |
| voranstellen. Dieser Kennzeichner gilt so lange, bis Sie einen anderen angeben. Zum Beispiel werden bei dem Argument -p
| |
| U:53,111,137,T:21-25,80,139,8080 die UDP-Ports 53, 111 und 137 sowie die angegebenen TCP-Ports gescannt. Beachten Sie, dass Sie -sU und
| |
| mindestens einen TCP-Scan-Typ (z. B. -sS, -sF oder -sT) angeben müssen, um sowohl UDP als auch TCP zu scannen. Falls kein Protokollkennzeichner
| |
| angegeben ist, werden die Portnummern zu allen Protokolllisten hinzugefügt. Ports können auch mit dem Namen angegeben werden, der für diesen
| |
| Port in nmap-services definiert ist. Sie können bei diesen Namen sogar die Joker * und ? verwenden. Um z. B. FTP und alle Ports zu scannen, deren
| |
| Namen mit „http“ anfangen, benutzen Sie -p ftp,http*. Passen Sie auf eine eventuelle Erweiterung durch die Shell auf und setzen Sie das Argument
| |
| von -p in Anführungszeichen, wenn Sie unsicher sind.
| |
| | |
| Port-Bereiche können in eckigen Klammern angegeben werden, um Ports innerhalb dieses Bereiches anzugeben, die in nmap-services vorkommen. Zum
| |
| Beispiel scannt Folgendes alle Ports in nmap-services kleiner oder gleich 1024: -p [-1024]. Passen Sie auf eine eventuelle Erweiterung durch die
| |
| Shell auf und setzen Sie das Argument von -p in Anführungszeichen, wenn Sie unsicher sind.
| |
| | |
| -F (schneller (beschränkter Port-) Scan)
| |
| Gibt an, dass Sie weniger Ports scannen möchten, als standardmäßig vorgesehen. Normalerweise scannt Nmap die 1000 am häufigsten vorkommenden
| |
| Ports bei jedem gescannten Protokoll. Mit -F werden diese auf 100 beschränkt.
| |
| | |
| Nmap benötigt die Datei nmap-services mit Informationen zur Häufigkeit, um zu wissen, welche Ports am häufigsten benutzt werden. Wenn keine
| |
| Angaben über die Port-Häufigkeit verfügbar sind, vielleicht weil eine benutzerdefinierte nmap-services-Datei verwendet wird, dann bedeutet -F,
| |
| dass nur Ports gescannt werden, die in der Dienstedatei mit Namen vorkommen (normalerweise scannt Nmap alle benannten Ports plus die Ports
| |
| 1–1024).
| |
| | |
| -r (Ports nicht randomisieren)
| |
| Standardmäßig randomisiert Nmap die Reihenfolge der gescannten Ports (bis auf einige allgemein zugängliche Ports, die aus Effizienzgründen
| |
| vorgezogen werden). Diese Randomisierung ist normalerweise erwünscht, aber Sie können stattdessen auch -r für einen sequentiellen Port-Scan
| |
| angeben.
| |
| | |
| --port-ratio <decimal number between 0 and 1>
| |
| Scannt alle Ports in der Datei nmap-services mit einem größeren Bruchteil als die Zahl, die als Argument angegeben wird.
| |
| | |
| --top-ports <integer of 1 or greater>
| |
| Scannt die N Ports mit dem höchsten Bruchteil in der Datei nmap-services.
| |
| | |
| DIENST- UND VERSIONSERKENNUNG
| |
| Lassen Sie Nmap auf einen entfernten Rechner los, und Sie erfahren z. B. dass die Ports 25/tcp, 80/tcp und 53/udp offen sind. Dank der über 2200
| |
| bekannten Dienste in seiner Datenbank in nmap-services würde Nmap noch ausgeben, dass diese Ports wahrscheinlich jeweils zu einem Mailserver (SMTP),
| |
| Webserver (HTTP) und Nameserver (DNS) gehören. Normalerweise sind diese Angaben genau — die überwiegende Mehrheit an Daemons, die den TCP-Port 25
| |
| abhören, sind tatsächlich Mailserver. Allerdings sollten Sie nicht Ihre Sicherheit darauf verwetten! Manche Leute können nicht nur Dienste auf
| |
| seltsamen Ports betreiben, sondern tun es auch.
| |
| | |
| Selbst wenn Nmap recht hat und auf dem Server im obigen Beispiel SMTP-, HTTP- und DNS-Server laufen, ist das nicht besonders viel an Information.
| |
| Bei der Beurteilung der Angreifbarkeit (oder auch nur beim Erstellen einfacher Netzwerkinventare) Ihrer Firmen oder Kunden möchten Sie auch wissen,
| |
| welche Mail- und DNS-Server und welche Versionen davon laufen. Eine genaue Versionsnummer hilft enorm bei der Bestimmung der Exploits, für die ein
| |
| Server anfällig ist. Die Versionserkennung hilft Ihnen, an diese Information heranzukommen.
| |
| | |
| Nachdem TCP- und/oder UDP-Ports mit einer der anderen Scan-Methoden entdeckt wurden, fragt die Versionserkennung diese Ports ab, um mehr darüber zu
| |
| erfahren, was tatsächlich darauf läuft. Die Datenbank in nmap-service-probes enthält Testpakete für die Abfrage verschiedenster Dienste und
| |
| Ausdrücke für den Vergleich und das Parsen der Antworten. Nmap versucht, das Dienstprotokoll zu bestimmen (z. B. FTP, SSH, Telnet, HTTP), aber auch
| |
| Anwendungsnamen (z. B. ISC BIND, Apache httpd, Solaris telnetd), Versionsnummer, Hostnamen, Gerätetyp (z. B. Drucker, Router), die
| |
| Betriebssystemfamilie (z. B. Windows, Linux) und manchmal verschiedene Details: etwa ob ein X-Server Verbindungen annimmt, die SSH-Protokollversion
| |
| oder der KaZaA-Benutzername. Natürlich bieten die meisten Dienste nicht all diese Information. Falls Nmap mit OpenSSL-Unterstützung kompiliert
| |
| wurde, verbindet es sich mit SSL-Servern, um den hinter dieser Verschlüsselungsebene lauschenden Dienst zu ermitteln. Wenn RPC-Dienste erkannt
| |
| werden, wird automatisch Nmaps RPC-Holzhammer (-sR) benutzt, um die RPC-Programm- und Versionsnummern zu bestimmen. Manche UDP-Ports bleiben im
| |
| Zustand offen|gefiltert, nachdem ein UDP-Port-Scan nicht bestimmen konnte, ob der Port offen oder gefiltert ist. Die Versionserkennung versucht,
| |
| diesen Ports eine Antwort zu entlocken (genauso wie bei offenen Ports) und den Zustand auf offen zu ändern, wenn das gelingt. Offene|gefilterte
| |
| TCP-Ports werden genauso behandelt. Beachten Sie, dass die Nmap-Option -A unter anderem auch die Versionserkennung einschaltet. A paper documenting
| |
| the workings, usage, and customization of version detection is available at https://nmap.org/book/vscan.html.
| |
| | |
| Wenn Nmap Antworten von einem Dienst erhält, aber keine Übereinstimmungen dafür in seiner Datenbank finden kann, gibt es einen speziellen
| |
| Fingerprint und eine URL aus, damit Sie diese Antwort einsenden können, falls Sie genau wissen, was auf diesem Port läuft. Bitte nehmen Sie sich ein
| |
| paar Minuten Zeit, um sie einzusenden, damit Ihr Fund für alle ein Gewinn sein kann. Dank dieser Beiträge hat Nmap über 3000 Musterübereinstimmungen
| |
| für über 350 Protokolle wie SMTP, FTP, HTTP usw.
| |
| | |
| Die Versionserkennung wird mit den folgenden Optionen aktiviert und gesteuert:
| |
| | |
| -sV (Versionserkennung)
| |
| Aktiviert die Versionserkennung wie oben beschrieben. Alternativ dazu können Sie -A benutzen, was unter anderem auch die Versionserkennung
| |
| aktiviert.
| |
| | |
| --allports (keine Ports von der Versionserkennung ausschließen)
| |
| Standardmäßig schließt Nmaps Versionserkennung den TCP-Port 9100 aus, weil manche Drucker einfach alles ausdrucken, was an diesen Port gesendet
| |
| wird, was zu Dutzenden von Seiten mit HTTP-GET-Requests, binären SSL-Session-Requests usw. führen würde. Dieses Verhalten kann man ändern, indem
| |
| man die Exclude-Anweisung in nmap-service-probes verändert oder entfernt, oder Sie geben --allports an, um alle Port zu scannen, unabhängig von
| |
| einer Exclude-Anweisung.
| |
| | |
| --version-intensity intensity (Intensität des Versions-Scans setzen)
| |
| Bei einem Versions-Scan (-sV) sendet Nmap eine Reihe von Testpaketen, die alle über einen zugeordneten Seltenheitswert zwischen eins und neun
| |
| verfügen. Die Testpakete mit kleineren Werten sind bei einer großen Zahl verbreiteter Dienste wirkungsvoll, während die mit höheren Werten
| |
| seltener nützlich sind. Die Intensitätsstufe gibt an, welche Testpakete angewendet werden sollten. Je höher die Zahl, desto wahrscheinlicher
| |
| wird der Dienst richtig identifiziert. Allerdings brauchen Scans mit hoher Intensität mehr Zeit. Diese Intensität muss zwischen 0 und 9 liegen.
| |
| | |
| Die Standardeinstellung ist 7.
| |
| | |
| Wenn ein Testpaket mit der ports-Anweisung in nmap-service-probes für den Zielport registriert ist, wird dieses Testpaket ausprobiert,
| |
| unabhängig von der Intensitätsstufe. Das garantiert, dass die DNS-Testpakete bei jedem offenen Port 53 immer benutzt werden, das SSL-Testpaket
| |
| bei Port 443 usw.
| |
| | |
| --version-light (leichten Modus setzen)
| |
| Das ist ein Alias für --version-intensity 2 aus Bequemlichkeitsgründen. Dieser leichte Modus macht die Versionserkennung wesentlich schneller,
| |
| identifiziert die Dienste aber mit geringerer Wahrscheinlichkeit.
| |
| | |
| --version-all (benutze alle Testpakete)
| |
| Das ist ein Alias für --version-intensity 9, der garantiert, dass jedes einzelne Testpaket bei jedem Port ausprobiert wird.
| |
| | |
| --version-trace (verfolge Aktivität des Versions-Scans)
| |
| Das bewirkt, dass Nmap umfangreiche Debugging-Information darüber ausgibt, was die Versionserkennung gerade macht. Das ist eine Untermenge
| |
| dessen, was Sie mit --packet-trace erhalten.
| |
| | |
| -sR (RPC-Scan)
| |
| Diese Methode funktioniert zusammen mit den verschiedenen Port-Scan-Methoden von Nmap. Sie nimmt alle offenen TCP-/UDP-Ports und überflutet sie
| |
| mit NULL-Befehlen für das SunRPC-Programm, in dem Versuch, festzustellen, ob es RPC-Ports sind, und wenn ja, welches Programm und welche
| |
| Versionsnummer darauf läuft. Dadurch können Sie quasi dieselbe Information herausfinden wie mit rpcinfo -p, selbst wenn der Portmapper des Ziels
| |
| hinter einer Firewall liegt (oder von TCP-Wrappern geschützt wird). Köder funktionieren im Moment nicht mit dem RPC-Scan. Das wird automatisch
| |
| als Teil einer Versionserkennung aktiviert (-sV), wenn Sie diese verlangen. Da die Versionserkennung das enthält und wesentlich umfangreicher
| |
| ist, wird -sR selten benötigt.
| |
| | |
| BETRIEBSSYSTEM-ERKENNUNG
| |
| Eines der bekanntesten Merkmale von Nmap ist dessen Erkennung entfernter Betriebssysteme mit TCP/IP-Stack-Fingerprinting. Nmap sendet eine Reihe von
| |
| TCP- und UDP-Paketen an den entfernten Host und untersucht praktisch jedes Bit in der Antwort. Nach der Durchführung Dutzender von Tests, wie z. B.
| |
| einer TCP-ISN-Abtastung, Unterstützung und Reihenfolge von TCP-Optionen, IP-ID-Abtastung und Prüfung der initialen Fenstergröße, vergleicht Nmap die
| |
| Ergebnisse mit seiner Datenbank in nmap-os-db von über eintausend bekannten Betriebssystem-Fingerprints und gibt die Details zum Betriebssystem aus,
| |
| wenn es eine Übereinstimmung gefunden hat. Jeder Fingerprint enthält eine formlose Beschreibung des Betriebssystems und eine Klassifikation, aus der
| |
| der Herstellername (z. B. Sun), das eigentliche Betriebssystem (z. B. Solaris), dessen Generation (z. B. 10) und der Gerätetyp (allgemein, Router,
| |
| Switch, Spielkonsole usw.) hervorgeht.
| |
| | |
| Falls Nmap das Betriebssystem eines Rechner nicht erraten kann und die Umstände günstig sind (z. B. wenn mindestens ein offener und ein geschlossener
| |
| Port gefunden wurde), präsentiert Nmap eine URL, unter der Sie den Fingerprint einsenden können, wenn Sie (ganz sicher) wissen, welches
| |
| Betriebssystem auf dem Rechner läuft. Dadurch erweitern Sie den Pool der Betriebssysteme, die Nmap kennt, wodurch es für alle Benutzer genauer wird.
| |
| | |
| Die Betriebssystem-Erkennung verwendet einige weitere Tests, die Informationen benutzen, die während des Vorgangs ohnehin gesammelt werden. Eine
| |
| davon ist die Klassifikation der Vorhersagbarkeit der TCP-Sequenznummern. Sie gibt ungefähr an, wie schwer es ist, eine gefälschte TCP-Verbindung
| |
| zum entfernten Host aufzubauen. Sie ist hilfreich zur Ausbeutung von Vertrauensbeziehungen auf Basis von Quell-IPs (rlogin, Firewall-Filter usw.)
| |
| oder zum Verbergen des Ursprungs eines Angriffs. Diese Art von Täuschung wird kaum noch praktiziert, aber viele Rechner sind nach wie vor anfällig
| |
| dafür. Die eigentliche Maßzahl basiert auf statistischen Abtastungen und kann schwanken. Im Allgemeinen ist es besser, die englische Bezeichnung wie
| |
| z. B. „worthy challenge“ oder „trivial joke“ zu benutzen. Das wird nur in der normalen Ausgabe im ausführlichen Modus (-v) ausgegeben. Wenn dieser
| |
| Modus zusammen mit -O aktiviert ist, wird auch die IP-ID-Sequenzerzeugung berichtet. Die meisten Rechner finden sich in der Klasse „incremental“,
| |
| d.h. sie inkrementieren das ID-Feld im IP-Header für jedes von ihnen gesendete Paket. Dadurch werden sie anfällig für diverse avancierte Angriffe
| |
| mittels Täuschung und Sammlung von Informationen.
| |
| | |
| Eine weitere zusätzliche Information, die die Betriebssystem-Erkennung aktiviert, ist eine Schätzung der Betriebszeit des Zielhosts. Dabei wird die
| |
| TCP-Timestamp-Option (RFC 1323[7]) benutzt, um zu raten, wann ein Rechner das letzte Mal neu gestartet wurde. Wenn der Timestamp-Zähler nicht bei
| |
| null gestartet wurde oder der Zähler überläuft und wieder von vorn zählt, kann diese Schätzung ungenau werden, weshalb sie nur im ausführlichen
| |
| Modus ausgegeben wird.
| |
| | |
| A paper documenting the workings, usage, and customization of OS detection is available at https://nmap.org/book/osdetect.html.
| |
| | |
| Eingeschaltet und gesteuert wird die Betriebssystem-Erkennung mit den folgenden Optionen:
| |
| | |
| -O (Betriebssystem-Erkennung aktivieren)
| |
| Aktiviert die Betriebssystem-Erkennung wie oben beschrieben. Alternativ dazu können Sie -A benutzen, um eine Betriebssystem-Erkennung zusammen
| |
| mit anderen Dingen einzuschalten.
| |
| | |
| --osscan-limit (Betriebssystem-Erkennung auf vielversprechende Ziele beschränken)
| |
| Die Betriebssystem-Erkennung ist wesentlich effektiver, wenn mindestens ein offener und ein geschlossener TCP-Port gefunden werden. Wenn Sie
| |
| diese Option angeben, versucht Nmap eine Betriebssystem-Erkennung gar nicht erst bei Hosts, die dieses Kriterium nicht erfüllen. Das kann viel
| |
| Zeit sparen, besonders bei Scans mit -PN auf vielen Hosts. Diese Option gilt nur, wenn eine Betriebssystem-Erkennung mit -O oder -A verlangt
| |
| wird.
| |
| | |
| --osscan-guess; --fuzzy (Ergebnisse der Betriebssystem-Erkennung raten)
| |
| Falls Nmap keine perfekte Übereinstimmung mit einem Betriebssystem finden kann, präsentiert es manchmal mögliche Kandidaten, die dem sehr nahe
| |
| kommen. Damit Nmap das standardmäßig macht, muss die Übereinstimmung sehr hoch sein. Diese beiden (äquivalenten) Optionen lassen Nmap
| |
| aggressiver schätzen. Dann gibt Nmap auch unvollkommene Übereinstimmungen aus, zusammen mit einem Vertrauensgrad (in Prozent).
| |
| | |
| --max-os-tries (setzt die maximale Anzahl der Versuche für eine Betriebssystem-Erkennung bei einem Ziel)
| |
| Wenn Nmap eine Betriebssystem-Erkennung auf einem Ziel durchführt und dafür keine perfekte Übereinstimmung findet, macht es normalerweise einen
| |
| weiteren Versuch. Standardmäßig macht Nmap fünf Versuche, wenn die Bedingungen zum Einsenden eines Betriebssystem-Fingerprints günstig sind, und
| |
| zwei, wenn sie es nicht sind. Die Angabe eines kleineren Wertes für --max-os-tries (z. B. 1) beschleunigt Nmap, auch wenn Sie Versuche auslassen,
| |
| bei denen das Betriebssystem möglicherweise erkannt werden könnte. Alternativ dazu kann ein hoher Wert gesetzt werden, um bei günstigen
| |
| Bedinungen noch mehr Versuche zu erlauben. Das macht man aber selten, außer um bessere Fingerprints zu erzeugen, die man einsenden kann, um sie
| |
| in Nmaps Betriebssystem-Datenbank zu integrieren.
| |
| | |
| NMAP SCRIPTING ENGINE (NSE)
| |
| Die Nmap Scripting Engine (NSE) ist eines der mächtigsten und flexibelsten Merkmale von Nmap. Mit ihr können Benutzer einfache Scripts schreiben und
| |
| weitergeben (geschrieben in der Programmiersprache Lua[8] ), um eine breite Palette von Netzwerkaufgaben zu automatisieren. Diese Scripts werden
| |
| dann parallel mit der Geschwindigkeit und Effizienz abgearbeitet, die Sie von Nmap erwarten. Als Benutzer können Sie auf eine wachsende und
| |
| vielfältige Menge von Scripts vertrauen, die mit Nmap veröffentlicht werden, oder eigene Scripts für eigene Bedürfnisse schreiben.
| |
| | |
| Zu den Aufgaben, die wir bei der Konzeption dieses Systems anvisierten, gehören die Netzwerkerkennung, eine ausgefeiltere Versionserkennung sowie
| |
| eine Verwundbarkeitserkennung. NSE kann aber sogar bei der Ausbeutung von Schwachstellen benutzt werden.
| |
| | |
| Um diese verschiedenen Anwendungen widerzuspiegeln und um die Auswahl des richtigen Scripts zu vereinfachen, verfügen alle Scripts über ein
| |
| Kategorie-Feld. Im Moment sind folgende Kategorien definiert: safe, intrusive, malware, version, discovery, vuln, auth und default. Sie alle werden
| |
| at https://nmap.org/book/nse-usage.html#nse-categories.
| |
| | |
| Die Nmap Scripting Engine wird detailliert at https://nmap.org/book/nse.html
| |
| | |
| beschrieben und wird mit den folgenden Optionen gesteuert:
| |
| | |
| -sC
| |
| Führt einen Script-Scan mit dem Standardsatz an Scripts durch. Das ist äquivalent zu --script=default. Manche der Scripts in dieser Kategorie
| |
| werden als aufdringlich betrachtet und sollten nicht ohne Genehmigung auf einem Zielnetzwerk ausgeführt werden.
| |
| | |
| --script script-categories|directory|filename|all
| |
| Führt einen Script-Scan (wie z. B. -sC) durch und benutzt dabei die mit Kommata getrennte Liste von Script-Kategorien, individuellen Scripts oder
| |
| Script-Verzeichnissen statt des Standardsatzes. Zuerst versucht Nmap, die Argumente als Kategorien zu interpretieren, dann (wenn das nicht
| |
| gelingt) als Datei- oder Verzeichnisnamen. Ein Script oder Verzeichnis von Scripts kann als absoluter oder relativer Pfad angegeben werden.
| |
| Absolute Pfade werden unverändert benutzt. Relative Pfade werden an den folgenden Orten gesucht, bis sie gefunden werden: --datadir/; $NMAPDIR/;
| |
| ~/.nmap/ (wird unter Windows nicht durchsucht); NMAPDATADIR/ oder ./. In all diesen Verzeichnissen wird außerdem auch ein
| |
| scripts/-Unterverzeichnis ausprobiert.
| |
| | |
| Falls ein Verzeichnis angegeben und gefunden wird, lädt Nmap alle NSE-Scripts (alle Dateinamen, die mit .nse enden) aus diesem Verzeichnis.
| |
| Dateinamen ohne die Endung nse werden ignoriert. Nmap sucht keine Unterverzeichnisse rekursiv durch, um Scripts zu finden. Wenn individuelle
| |
| Dateinamen angegeben werden, dann muss deren Dateierweiterung nicht nse lauten.
| |
| | |
| Nmap-Scripts werden standardmäßig in einem scripts-Unterverzeichnis des Nmap-Datenverzeichnisses gespeichert (see
| |
| https://nmap.org/book/data-files.html).
| |
| | |
| Aus Effizienzgründen werden Scripts in einer Datenbank indiziert, die in scripts/script.db. gespeichert ist und für jedes Script auflistet, in
| |
| welche Kategorie bzw. Kategorien es gehört. Um alle Scripts in der Nmap-Script-Datenbank auszuführen, geben Sie das Argument all an.
| |
| | |
| Die Scripts werden nicht in einer Sandbox ausgeführt und können Ihr System somit versehentlich oder böswillig beschädigen oder in Ihre
| |
| Privatsphäre eindringen. Sie sollten Scripts von Dritten nur dann ausführen, wenn Sie deren Autoren vertrauen oder sie selbst eingehend studiert
| |
| haben.
| |
| | |
| --script-args name1=value1,name2={name3=value3},name4=value4
| |
| Hiermit können Sie Argumente für NSE-Scripts angeben. Argumente werden als name=value-Paare angegeben. Die Argumente werden verarbeitet und in
| |
| einer Lua-Tabelle gespeichert, auf die alle Scripts Zugriff haben. Die Namen werden als Strings (die alphanumerische Werte sein müssen) in
| |
| argument-table als Schlüssel gespeichert. Die Werte sind ihrerseits entweder Strings oder Tabellen (innerhalb von ‘{’ und ‘}’). Sie könnten z. B.
| |
| diese mit Kommmata getrennten Argumente angeben: user=bar,pass=foo,whois={whodb=nofollow+ripe}. String-Argumente werden potenziell von mehreren
| |
| Scripts benutzt, während Untertabellen normalerweise nur von einem Script benutzt werden. In Scripts, die eine Untertabelle annehmen, wird diese
| |
| Untertabelle normalerweise nach dem Script benannt (in diesem Fall z. B. whois).
| |
| | |
| --script-trace
| |
| Diese Option macht das, was --packet-trace macht, aber eine ISO-Ebene höher. Wenn diese Option angegeben wird, wird die gesamte ein- und
| |
| ausgehende Kommunikation von Scripts ausgegeben. Die angezeigte Information enthält das Kommunikationsprotokoll, Quell- und Zieladressen sowie
| |
| die übertragenen Daten. Falls mehr als fünf Prozent der übertragenen Daten nicht druckbar sind, werden sie stattdessen als Hexadezimal-Auszug
| |
| ausgegeben. Auch die Angabe von --packet-trace schaltet diese Mitverfolgung von Scripts ein.
| |
| | |
| --script-updatedb
| |
| Diese Option aktualisiert die Script-Datenbank in scripts/script.db, die von Nmap benutzt wird, um die verfügbaren Standard-Scripts und
| |
| Kategorien zu bestimmen. Man muss die Datenbank nur dann aktualisieren, wenn man NSE-Scripts in das Standardverzeichnis scripts hinzufügt oder
| |
| von dort entfernt, oder wenn man die Kategorie eines Scripts ändert. Diese Option wird ohne Argumente benutzt: nmap --script-updatedb.
| |
| | |
| == TIMING UND PERFORMANCE ==
| |
| Bei der Entwicklung von Nmap hatte dessen Performance immer eine der höchsten Prioritäten. Ein Standardscan (nmap hostname) eines Hosts in meinem
| |
| lokalen Netzwerk dauert eine Fünftelsekunde. In dieser Zeit kann man kaum blinzeln, aber wenn man Hunderte oder Tausende von Rechnern scannt, dann
| |
| kommt einiges zusammen. Außerdem können bestimmte Scan-Optionen wie UDP-Scanning und eine Versionserkennung die Scan-Zeiten erheblich erhöhen. Das
| |
| Gleiche gilt für bestimmte Firewall-Konfigurationen und besonders für die Beschränkung der Antwortrate. Auch wenn Nmap parallel arbeitet und viele
| |
| ausgefeilte Algorithmen benutzt, um diese Scans zu beschleunigen, hat doch der Benutzer die letzte Kontrolle darüber, was Nmap genau macht. Experten
| |
| erstellen ihre Nmap-Befehle sehr sorgfältig, um in einer beschränkten Zeit genau die gewünschte Information zu bekommen.
| |
| | |
| Um die Scan-Zeiten zu verbessern, kann man z. B. nicht-kritische Tests weglassen und auf die neueste Version von Nmap aktualisieren
| |
| (Performance-Verbesserungen werden häufig gemacht). Auch die Optimierung von Timing-Parametern kann einen großen Unterschied ausmachen. Diese
| |
| Optionen werden im Folgenden beschrieben.
| |
| | |
| Manche Optionen erwarten einen time-Parameter. Dieser wird standardmäßig in Millisekunden angegeben, aber Sie können ‘s’, ‘m’ oder ‘h’ an den Wert
| |
| anhängen, um Sekunden, Minuten oder Stunden anzugeben. Das heißt, bei --host-timeout haben die Argumente 900000, 900s und 15m alle denselben Effekt.
| |
| | |
| --min-hostgroup numhosts; --max-hostgroup numhosts (Größe der parallel gescannten Gruppen anpassen)
| |
| Nmap hat die Fähigkeit, Port-Scans oder Versions-Scans von mehreren Hosts parallel durchzuführen. Das macht Nmap, indem es den
| |
| Ziel-IP-Adressraum in Gruppen aufteilt und dann jeweils eine Gruppe scannt. Im Allgemeinen sind größere Gruppen effizienter. Der Nachteil daran
| |
| ist, dass die Host-Ergebnisse erst dann ausgegeben werden können, wenn die gesamte Gruppe fertig ist. Wenn Nmap mit einer Gruppengröße von 50
| |
| anfängt, würde der Benutzer erst dann Ergebnisse sehen (bis auf die Aktualisierungen im ausführlichen Modus), wenn die ersten 50 Hosts
| |
| abgearbeitet sind.
| |
| | |
| Diesen Konflikt löst Nmap standardmäßig mit einem Kompromissansatz. Es fängt mit einer kleinen Gruppengröße von etwa fünf an, damit die ersten
| |
| Ergebnisse schnell kommen, und erhöht dann die Gruppengröße bis auf etwa 1024. Die genau vorgegebenen Zahlen hängen von den benutzten Optionen
| |
| ab. Aus Effizienzgründen benutzt Nmap größere Gruppen bei UDP-Scans oder bei TCP-Scans über wenige Ports.
| |
| | |
| Falls mit --max-hostgroup eine maximale Gruppengröße angegeben wird, wird Nmap diese nie überschreiten. Und wenn Sie mit --min-hostgroup eine
| |
| minimale Größe angeben, versucht Nmap, die Gruppengröße oberhalb dieses Wertes zu belassen. Falls es auf einer gegebenen Schnittstelle nicht
| |
| genug Zielhosts gibt, um dieses Minimum zu erfüllen, muss Nmap einen kleineren Wert benutzen. Es können auch beide gesetzt werden, um die
| |
| Gruppengröße in einem bestimmten Bereich zu belassen, aber das ist selten gewünscht.
| |
| | |
| Diese Optionen haben während der Host-Entdeckungsphase eines Scans keinen Effekt. Dazu gehören einfache Ping-Scans (-sP). Die Host-Entdeckung
| |
| funktioniert immer in großen Gruppen von Hosts, um die Geschwindigkeit und Genauigkeit zu verbessern.
| |
| | |
| Der Hauptnutzen dieser Optionen liegt darin, eine hohe minimale Gruppengröße anzugeben, damit der gesamte Scan schneller läuft. Häufig wird 256
| |
| gewählt, um ein Netzwerk in Brocken der Größe von Klasse C zu scannen. Bei einem Scan mit vielen Ports bringt eine größere Zahl vermutlich keine
| |
| Vorteile. Bei Scans über nur wenige Ports können Gruppengrößen von 2048 oder mehr hilfreich sein.
| |
| | |
| --min-parallelism numprobes; --max-parallelism numprobes (Parallelität von Testpaketen anpassen)
| |
| Diese Optionen steuern die Gesamtanzahl an Testpaketen, die für eine Host-Gruppe anstehen dürfen. Sie werden beim Port-Scanning und bei der
| |
| Host-Entdeckung benutzt. Abhängig von der Netzwerk-Performance berechnet Nmap standardmäßig eine immer wechselnde ideale Parallelität. Falls
| |
| Pakete verworfen werden, verlangsamt sich Nmap und erlaubt weniger unerledigte Testpakete. Die ideale Anzahl von Testpaketen steigt mit den
| |
| zunehmenden Möglichkeiten des Netzwerks. Diese Optionen setzen minimale oder maximale Schranken für diese Variable. Standardmäßig kann die
| |
| ideale Parallelität auf eins sinken, wenn sich das Netzwerk als unzuverlässig herausstellt, und im Idealfall kann sie auf mehrere hundert
| |
| steigen.
| |
| | |
| Meistens setzt man --min-parallelism auf eine Zahl größer als eins, um Scans von langsamen Hosts oder Netzwerken zu beschleunigen. Aber das
| |
| Spielen mit dieser Option kann gefährlich sein, weil die Genaugkeit leiden kann, wenn man einen zu großen Wert setzt. Dabei verringert sich auch
| |
| Nmaps Möglichkeit, die Parallelität je nach Netzwerkbedingungen dynamisch anzupassen. Ein Wert von zehn mag vernünftig sein, auch wenn ich nur
| |
| als letzter Ausweg an diesem Wert drehe.
| |
| | |
| Die Option --max-parallelism wird manchmal auf eins gesetzt, um zu verhindern, dass Nmap mehr als ein Testpaket auf einmal an Hosts sendet. In
| |
| Kombination mit --scan-delay (wird später behandelt) kann das nützlich sein, auch wenn Letzteres diesen Zweck gut genug allein erfüllt.
| |
| | |
| --min-rtt-timeout time, --max-rtt-timeout time, --initial-rtt-timeout time (Timeouts von Testpaketen anpassen)
| |
| Nmap verwaltet einen laufenden Timeout-Wert, der bestimmt, wie lange es auf eine Antwort zu einem Testpaket wartet, bevor es aufgibt oder das
| |
| Paket erneut sendet. Dieser wird auf der Grundlage der Antwortzeiten bei früheren Testpaketen berechnet.
| |
| | |
| Falls die Netzwerk-Latenzzeit sich als groß genug und variabel erweist, kann dieser Timeout bis auf mehrere Sekunden wachsen. Er beginnt auch
| |
| bei einem konservativen (hohen) Wert und kann diesen eine Weile behalten, wenn Nmap Hosts scannt, die nicht antworten.
| |
| | |
| Werden Werte für --max-rtt-timeout und --initial-rtt-timeout angegeben, die kleiner als deren Standardwerte sind, so kann die Scan-Zeit
| |
| erheblich verkürzt werden. Das gilt besonders für pinglose (-PN) Scans und solche von stark gefilterten Netzwerken. Aber verlangen Sie nicht zu
| |
| viel. Der Scan kann am Ende länger brauchen, wenn Sie einen so kleinen Wert angeben, dass bei vielen Testpaketen der Timeout erreicht wird und
| |
| sie erneut gesendet werden, während die Antwort unterwegs ist.
| |
| | |
| Falls alle Hosts in einem lokalen Netzwerk sind, sind 100 Millisekunden ein vernünftig aggressiver Wert für --max-rtt-timeout. Falls ein Routing
| |
| ins Spiel kommt, pingen Sie zuerst einen Host im Netzwerk, sei es mit einem ICMP-Ping oder mit einem Programm zur Erstellung benutzerdefinierter
| |
| Pakete wie hping2, das eine höhere Chance hat, durch eine Firewall zu kommen. Betrachten Sie dann die maximale Umlaufzeit bei circa zehn
| |
| Paketen. Diese möchten Sie vielleicht für --initial-rtt-timeout verdoppeln und für --max-rtt-timeout verdrei- oder vervierfachen. Im Allgemeinen
| |
| setze ich die maximale RTT nicht unter 100 ms, egal, welche Ping-Zeiten ich habe. Und ich gehe auch nicht über 1000 ms.
| |
| | |
| Die Option --min-rtt-timeout wird selten benutzt, könnte aber nützlich sein, wenn ein Netzwerk so unzuverlässig ist, dass selbst Nmaps
| |
| Standardeinstellung zu aggressiv ist. Da Nmap das Timeout nur dann auf das Minimum reduziert, wenn das Netzwerk zuverlässig scheint, sollte ein
| |
| Bedarf hierfür eher ungewöhnlich sein und sollte als Fehler auf der nmap-dev-Mailingliste berichtet werden.
| |
| | |
| --max-retries numtries (gibt die maximale Anzahl erneuter Sendeversuche bei Port-Scan-Testpaketen an)
| |
| Falls Nmap keine Antwort auf ein Testpaket eines Port-Scans erhält, könnte das heißen, dass der Port gefiltert ist. Oder aber das Testpaket oder
| |
| die Antwort darauf ging im Netzwerk verloren. Es ist auch möglich, dass der Zielhost eine Ratenbeschränkung aktiviert hat, die die Antwort
| |
| temporär blockiert hat. Also versucht es Nmap erneut, indem es das ursprüngliche Paket noch einmal sendet. Falls Nmap eine mangelnde
| |
| Netzwerkzuverlässigkeit feststellt, führt es eventuell viele weitere Wiederholungen durch, bevor es bei einem Port aufgibt. Das verbessert zwar
| |
| die Genauigkeit, verlängert aber auch die Scan-Zeiten. Wenn es auf die Performance ankommt, kann man die Scans durch eine Beschränkung der
| |
| Anzahl dieser Wiederholungen beschleunigen. Sie können sogar --max-retries 0 angeben, um sie ganz zu verbieten, auch wenn sich das nur in
| |
| Situationen wie formlosen Überprüfungen empfiehlt, bei denen einige verpasste Ports oder Hosts nicht so wichtig sind.
| |
| | |
| Der Standardwert (ohne -T-Template) sind bis zu zehn Wiederholungen. Falls das Netzwerk zuverlässig zu sein scheint und die Zielhosts keine
| |
| Ratenbeschränkung haben, führt Nmap normalerweise nur eine Wiederholung durch. Daher sind die meisten Scans gar nicht betroffen, wenn man
| |
| --max-retries z. B. auf den kleinen Wert drei verringert. Solche Werte können Scans von langsamen (ratenbeschränkten) Hosts aber erheblich
| |
| beschleunigen. Wenn Nmap frühzeitig bei Ports aufgibt, verlieren Sie eventuell einiges an Information, aber das kann vorteilhafter sein, als ein
| |
| Timeout von --host-timeout zu erreichen und alle Informationen über das Ziel zu verlieren.
| |
| | |
| --host-timeout time (bei langsamen Zielhosts aufgeben)
| |
| Bei manchen Hosts braucht es einfach lange, sie zu scannen. Das kann an leistungsschwacher oder unzuverlässiger Netzwerk-Hardware oder
| |
| -Software, an einer Paketratenbeschränkung oder einer restriktiven Firewall liegen. Die langsamsten paar Prozent der gescannten Hosts können
| |
| einen Großteil der Scan-Zeit verbrauchen. Dann ist es manchmal das Beste, die Verluste abzuschneiden und diese Hosts erst einmal wegzulassen.
| |
| Geben Sie --host-timeout mit der gewünschten maximalen Wartezeit an. Sie können z. B. 30m angeben, um sicherzustellen, dass Nmap nicht mehr als
| |
| eine halbe Stunde verschwendet, indem es auf einen einzelnen Host wartet. Beachten Sie, dass Nmap während dieser halben Stunde auch andere Hosts
| |
| scannen kann, d.h. es ist keine komplette Zeitverschwendung. Ein Host, der das Timeout erreicht, wird übersprungen. Für diesen Host werden keine
| |
| Ergebnisse der Port-Tabelle, Betriebssystem- oder Versionserkennung ausgegeben.
| |
| | |
| --scan-delay time; --max-scan-delay time (Verzögerung zwischen Testpaketen anpassen)
| |
| Diese Option bewirkt, dass Nmap mindestens die angegebene Zeit zwischen zwei Testpaketen an einen Host wartet. Das ist besonders bei einer
| |
| Ratenbeschränkung sinnvoll. Solaris-Rechner (und viele andere auch) antworten auf UDP-Scan-Testpakete normalerweise nur mit einer ICMP-Nachricht
| |
| pro Sekunde. Wenn Nmap mehr sendet, ist das Verschwendung. Mit einem --scan-delay von 1s bleibt Nmap bei dieser langsamen Rate. Nmap versucht
| |
| eine Ratenbeschränkung zu erkennen und die Scan-Verzögerung entsprechend anzupassen, aber es schadet nicht, sie explizit anzugeben, falls Sie
| |
| schon wissen, welche Rate am besten funktioniert.
| |
| | |
| Wenn Nmap die Scan-Verzögerung nach oben anpasst, um mit der Ratenbeschränkung klarzukommen, verlangsamt sich der Scan dramatisch. Die Option
| |
| --max-scan-delay gibt die größte Verzögerung an, die Nmap erlaubt. Ein kleiner Wert für --max-scan-delay kann Nmap beschleunigen, ist aber
| |
| riskant. Ein zu kleiner Wert kann zu verschwenderischen wiederholten Sendungen führen und möglicherweise zu verpassten Ports, wenn das Ziel eine
| |
| strenge Ratenbeschränkung implementiert.
| |
| | |
| Ein weiterer Einsatz von --scan-delay liegt bei der Umgehung schwellwertbasierter Intrusion-Detection- und -Prevention-Systeme (IDS/IPS).
| |
| | |
| --min-rate number; --max-rate number (direkte Steuerung der Scan-Rate)
| |
| Nmaps dynamisches Timing findet sehr gut die passende Scan-Geschwindigkeit. Aber manchmal kennen Sie vielleicht die passende Scan-Rate für ein
| |
| Netzwerk, oder vielleicht müssen Sie garantieren, dass ein Scan bis zu einem bestimmten Zeitpunkt fertig wird. Oder Sie müssen Nmap vielleicht
| |
| davon abhalten, zu schnell zu scannen. Für diese Situationen sind die Optionen --min-rate und --max-rate vorgesehen.
| |
| | |
| Bei der Option --min-rate versucht Nmap sein Bestes, um Pakete so schnell wie die damit angegebene Rate zu senden oder noch schneller. Das
| |
| Argument ist eine positive Fießkommazahl, die die Paketrate in Paketen pro Sekunde angibt. Die Angabe --min-rate 300 bedeutet z. B. , dass Nmap
| |
| eine Rate von 300 Paketen pro Sekunde oder höher einzuhalten versucht. Die Angabe einer Minimalrate hält Nmap nicht davon ab, bei günstigen
| |
| Bedingungen schneller zu werden.
| |
| | |
| Umgekehrt beschränkt --max-rate die Senderate auf das angegebene Maximum. Bei --max-rate 100 wird sie auf 100 Pakete pro Sekunde bei einem
| |
| schnellen Netzwerk beschränkt. Und bei --max-rate 0.1 wird der Scan auf ein Paket pro zehn Sekunden verlangsamt. Mit --min-rate und --max-rate
| |
| gleichzeitig können Sie die Rate in einem bestimmten Bereich halten.
| |
| | |
| Diese beiden Optionen sind global und betreffen den gesamten Scan, nicht nur einzelne Hosts. Sie betreffen nur Port-Scans und
| |
| Host-Entdeckungs-Scans. Andere Merkmale wie die Betriebssystemerkennung implementieren ihr eigenes Timing.
| |
| | |
| Unter zwei Bedingungen kann die tatsächliche Scan-Rate unter das verlangte Minimum fallen. Die erste ist, wenn das Minimum schneller als die
| |
| schnellste Rate ist, mit der Nmap senden kann, was hardwareabhängig ist. In diesem Fall sendet Nmap Pakete einfach so schnell wie möglich, aber
| |
| Sie sollten wissen, dass solch hohe Raten sehr wahrscheinlich einen Verlust an Genauigkeit bedeuten. Die zweite Bedingung ist, wenn Nmap nichts
| |
| zu senden hat, z. B. am Ende eines Scans, nachdem die letzten Testpakete gesendet wurden und Nmap darauf wartet, dass sie einen Timeout
| |
| verursachen oder beantwortet werden. Eine sinkende Scan-Rate am Ende eines Scans oder zwischen Gruppen von Hosts ist normal. Die Senderate kann
| |
| temporär das Maximum übersteigen, um unvorhergesehene Verzögerungen auszugleichen, aber im Durchschnitt bleibt die Rate bei oder unter dem
| |
| Maximum.
| |
| | |
| Eine minimale Rate sollte man mit Vorsicht angeben. Scans, die schneller sind, als das Netzwerk erlaubt, können zu einem Verlust von Genauigkeit
| |
| führen. In manchen Fällen kann die Wahl eines schnelleren Scans dazu führen, dass er länger braucht als bei einer kleineren Rate. Das liegt
| |
| daran, dass Nmaps Algorithmen für die
| |
| | |
| adaptive retransmission die von einer zu hohen Scan-Rate verursachte Netzwerküberlastung erkennen und die Anzahl der Wiederholungen erhöhen, um
| |
| die Genauigkeit zu verbessern. Das heißt, selbst wenn Pakete mit höherer Rate gesendet werden, werden mehr Pakete insgesamt gesendet. Begrenzen
| |
| Sie diese Anzahl von Wiederholungen nach oben mit der Option --max-retries, wenn Sie eine obere Grenze für die gesamte Scan-Zeit setzen müssen.
| |
| | |
| --defeat-rst-ratelimit
| |
| Viele Hosts haben lange eine Ratenbeschränkung benutzt, um die Anzahl der von ihnen gesendeten ICMP-Fehlermeldungen (z. B.
| |
| Port-Unreachable-Fehler) zu reduzieren. Manche Systeme wenden nun ähnliche Ratenbeschränkungen auf die von ihnen erzeugten RST-(Reset-)Pakete
| |
| an. Das kann Nmap dramatisch verlangsamen, weil es sein Timing an diese Ratenbeschränkungen anpasst. Mit der Option --defeat-rst-ratelimit
| |
| können Sie Nmap sagen, dass es diese Ratenbeschränkungen ignorieren soll (z. B. bei Port-Scans wie dem SYN-Scan, die nicht-antwortende Ports
| |
| nicht als offen behandeln).
| |
| | |
| Diese Option kann die Genauigkeit reduzieren, da einige Ports nicht zu antworten scheinen, weil Nmap nicht lange genug auf eine ratenbeschränkte
| |
| RST-Antwort gewartet hat. Bei einem SYN-Scan führt die ausbleibende Antwort dazu, dass für den Port der Zustand gefiltert und geschlossen
| |
| markiert wird, den wir sehen, wenn RST-Pakete empfangen werden. Diese Option ist nützlich, wenn Sie sich nur für offene Ports interessieren und
| |
| eine Unterscheidung zwischen geschlossenen und gefilterten Ports die zusätzliche Zeit nicht wert ist.
| |
| | |
| -T paranoid|sneaky|polite|normal|aggressive|insane (setzt ein Timing-Template)
| |
| Auch wenn die feinkörnigen Timing-Einstellungen im letzten Abschnitt mächtig und effektiv sind, finden manche Leute sie verwirrend. Außerdem
| |
| kann die Wahl der passenden Werte manchmal mehr Zeit erfordern als der Scan, den Sie damit optimieren möchten. Deswegen bietet Nmap auch einen
| |
| einfacheren Ansatz mit sechs Timing-Templates. Diese können Sie mit der Option -T und ihrer Nummer (0–5) oder mit ihrem Namen angeben. Diese
| |
| Template-Namen lauten: paranoid (0), sneaky (1), polite (2), normal (3), aggressive (4) und insane (5). Die ersten beiden sind für die Umgehung
| |
| von IDS gedacht. Der Polite-Modus verlangsamt den Scan, damit er weniger Bandbreite und Ressourcen auf dem Zielrechner verbraucht. Der
| |
| Normal-Modus ist der Standardwert, d.h. -T3 macht gar nichts. Der Aggressive-Modus beschleunigt Scans, indem er davon ausgeht, dass Sie sich in
| |
| einem einigermaßen schnellen und zuverlässigen Netzwerk befinden. Und schließlich geht der Insane-Modus davon aus, dass sie sich in einem
| |
| außergewöhnlich schnellen Netzwerk befinden bzw. gewillt sind, für mehr Geschwindigkeit auf etwas Genauigkeit zu verzichten.
| |
| | |
| Mit diesen Templates können Benutzer angeben, wie aggressiv sie vorgehen möchten, und trotzdem Nmap die Wahl der genauen Zeitwerte überlassen.
| |
| Diese Templates führen außerdem auch kleine Geschwindigkeitsanpassungen aus, für die es zur Zeit keine feinkörnigen Einstellungsoptionen gibt.
| |
| Zum Beispiel verbietet -T4, dass die dynamische Scan-Verzögerung bei TCP-Ports über 10 ms ansteigt, und -T5 begrenzt diesen Wert auf 5 ms.
| |
| Templates könen auch in Kombination mit feinkörnigen Einstellungen benutzt werden, wobei die feinkörnigeren Optionen die entsprechenden
| |
| allgemeinen Werte aus den Templates überschreiben. Ich empfehle den Einsatz von -T4 beim Scannen halbwegs moderner und zuverlässiger Netzwerke.
| |
| Wenn Sie diese Option angeben, auch dann, wenn Sie zusätzliche feinkörnige Einstellungen benutzen, profitieren Sie von den weiteren kleinen
| |
| Optimierungen, die damit verbunden sind.
| |
| | |
| Falls Sie eine anständige Breitband- oder Ethernet-Verbindung haben, würde ich empfehlen, immer -T4 zu benutzen. Manche Leute lieben -T5, was
| |
| für meinen Geschmack aber zu aggressiv ist. Manchmal geben Leute -T2 an, weil sie denken, dadurch würden Hosts weniger abstürzen, oder weil sie
| |
| sich selbst im Allgemeinen für höflich halten. Oft realisieren sie einfach nicht, wie langsam -T polite tatsächlich ist. Ein solcher Scan kann
| |
| zehnmal mehr Zeit benötigen als ein Standard-Scan. Rechnerabstürze und Bandbreitenprobleme kommen mit den standardmäßigen Timing-Optionen (-T3)
| |
| selten vor, weswegen ich das normalerweise vorsichtigen Scannern empfehle. Auf die Versionserkennung zu verzichten ist weit wirksamer bei der
| |
| Reduktion dieser Probleme als das Herumprobieren mit Zeiteinstellungen.
| |
| | |
| Zwar sind -T0 und -T1 vielleicht hilfreich bei der Vermeidung von IDS-Alarmen, benötigen aber außergewöhnlich viel Zeit beim Scannen von
| |
| Tausenden von Rechnern oder Ports. Für einen derart langen Scan möchten Sie vielleicht doch lieber die genau benötigten Zeitwerte angeben, statt
| |
| sich auf die vorgefertigten Werte von -T0 und -T1 zu verlassen.
| |
| | |
| Die Haupteffekte von T0 sind die Serialisierung des Scans, bei der immer nur ein Port gescannt wird, und eine Wartezeit von fünf Minuten
| |
| zwischen zwei Testpaketen. T1 und T2 sind ähnlich, warten aber jeweils nur 15 bzw. 0,4 Sekunden zwischen zwei Testpaketen. T3 ist die
| |
| Standardeinstellung in Nmap, die eine Parallelisierung beinhaltet. -T4 macht das Äquivalent von --max-rtt-timeout 1250 --initial-rtt-timeout 500
| |
| --max-retries 6 und setzt die maximale TCP-Scan-Verzögerung auf 10 Millisekunden. T5 macht das Äquivalent von --max-rtt-timeout 300
| |
| --min-rtt-timeout 50 --initial-rtt-timeout 250 --max-retries 2 --host-timeout 15m und setzt die maximale TCP-Scan-Verzögerung auf 5 ms.
| |
| | |
| FIREWALL-/IDS-UMGEHUNG UND -TÄUSCHUNG
| |
| Viele Internet-Pioniere hatten die Vision eines globalen, offenen Netzwerks, in dem ein universeller IP-Adressraum virtuelle Verbindungen zwischen
| |
| zwei beliebigen Knoten erlaubt. Dadurch können Hosts als echte, gleichberechtigte Partner agieren und Information untereinander senden und
| |
| empfangen. Die Menschen könnten von ihrer Arbeitsstelle auf all ihre Systeme daheim zugreifen, die Einstellungen der Klimaanlage ändern oder die
| |
| Türen für verfrühte Gäste aufsperren. Diese Vision einer universellen Konnektivität wurde durch eine Verknappung im Adressraum und
| |
| Sicherheitsbedenken abgewürgt. In den frühen 1990er Jahren begannen Organisationen mit der Aufstellung von Firewalls mit dem ausdrücklichen Zweck
| |
| einer Reduktion der Konnektivität. Riesige Netzwerke wurden mit Anwendungs-Proxies, NAT (Network Address Translation)-Geräten und Paketfiltern vom
| |
| ungefilterten Internet abgeriegelt. Der ungehinderte Fluss von Informationen hat einer strengen Regulierung von zugelassenen Kommunikationskanälen
| |
| und der darüber ausgetauschten Inhalte Platz gemacht.
| |
| | |
| Netzwerkhindernisse wie Firewalls können die Analyse eines Netzwerks außerordentlich schwer machen. Und leichter wird es nicht werden, da das
| |
| Verhindern von Ausspähungen oft ein Schlüsselziel beim Einsatz dieser Geräte ist. Trotzdem bietet Nmap viele Eigenschaften, um beim Verständnis
| |
| dieser komplexen Netzwerke zu helfen und um zu überprüfen, dass diese Filter arbeiten wie gewünscht. Es bietet sogar Mechanismen zur Umgehung
| |
| schlechter Abwehrstrategien. Eine der besten Methoden, Ihre Lage in puncto Netzwerksicherheit zu verstehen, ist die, sie anzugreifen. Versetzen Sie
| |
| sich selbst in die Denkweise eines Angreifers und wenden Sie Verfahren aus diesem Kapitel gegen Ihr Netzwerk an. Starten Sie einen FTP-Bounce-Scan,
| |
| Idle-Scan, Fragmentierungsangriff, oder versuchen Sie durch einen Ihrer eigenen Proxies zu tunneln.
| |
| | |
| Zusätzlich zur Beschränkung der Netzwerkaktivität überwachen Firmen ihren Datenverkehr immer mehr mit Intrusion-Detection-Systemen (IDS). Alle
| |
| wichtigen IDS werden mit Regeln ausgeliefert, die entworfen wurden, um Nmap-Scans zu erkennen, weil Scans manchmal Vorboten von Angriffen sind.
| |
| Viele dieser Produkte haben sich in Intrusion-Prevention-Systeme (IPS) verwandelt, die für böswillig gehaltenen Datenverkehr aktiv blockieren.
| |
| Dummerweise ist es für Netzwerkadministratoren und IDS-Hersteller eine sehr schwierige Aufgabe, böswillige Absichten durch die Analyse von
| |
| Paketdaten zuverlässig zu erkennen. Angreifer mit Geduld, Geschick und der Hilfe bestimmter Nmap-Optionen können meist unerkannt an einem IDS
| |
| vorbeikommen. Währenddessen müssen Administratoren mit riesigen Mengen falscher positiver Ergebnisse kämpfen, bei denen eine nicht böswillige
| |
| Aktivität fehldiagnostiziert wird und Alarm schlägt oder blockiert wird.
| |
| | |
| Ab und zu schlagen Leute vor, dass Nmap keine Eigenschaften für die Umgehung von Firewallregeln oder IDS enthalten sollte. Ihr Argument ist, dass
| |
| diese Eigenschaften genauso wahrscheinlich von Angreifern missbraucht werden wie von Administratoren, die die Sicherheit verbessern. Das Problem bei
| |
| dieser Logik ist, dass diese Methoden trotzdem von Angreifern benutzt würden, die einfach andere Werkzeuge finden oder die Funktionalität in Nmap
| |
| einbauen würden. Zugleich wäre es für Administratoren sehr viel schwerer, ihren Job zu machen. Das Aufstellen nur moderner, gepatchter FTP-Server
| |
| ist eine wesentlich bessere Verteidigung als der Versuch, die Verbreitung von Werkzeugen zu verhindern, die einen FTP-Bounce-Angriff implementieren.
| |
| | |
| Es gibt keine Wunderlösung (oder Nmap-Option) zur Erkennung und Umgehung von Firewalls und IDS-Systemen. Es braucht Kompetenz und Erfahrung. Eine
| |
| Anleitung dazu würde den Rahmen dieses Referenz-Handbuches sprengen, das nur die wichtigsten Optionen auflistet und beschreibt, was sie machen.
| |
| | |
| -f (Pakete fragmentieren); --mtu (benutzt angegebene MTU)
| |
| Die Option -f bewirkt, dass der gewünschte Scan (inklusive Ping-Scans) winzig fragmentierte IP-Pakete benutzt. Die Idee dabei ist, den
| |
| TCP-Header über mehrere Pakete aufzuteilen, um es Paketfiltern, Intrusion-Detection-Systemen und anderen Ärgernissen schwerer zu machen, Ihre
| |
| Aktivitäten zu durchschauen. Seien Sie dabei vorsichtig! Manche Programme haben Mühe, mit diesen winzigen Paketen umzugehen. Ein Sniffer alter
| |
| Schule namens Sniffit ist beim Erhalt des ersten Fragments sofort mit einem Segmentation-Fault-Fehler abgestürzt. Wenn Sie diese Option einmal
| |
| angeben, spaltet Nmap die Pakete in acht Bytes oder weniger nach dem IP-Header auf. Das heißt, ein 20 Byte langer TCP-Header würde in drei
| |
| Pakete aufgeteilt, zwei mit acht Bytes des TCP-Headers und eines mit den restlichen vier. Natürlich hat jedes Fragment auch einen IP-Header.
| |
| Geben Sie erneut -f an, um 16 Bytes pro Fragment zu benutzen (was die Anzahl der Fragmente verkleinert). Oder Sie geben eine eigene Offset-Größe
| |
| mit der Option --mtu (für engl. maximum transmission unit) an. Wenn Sie --mtu angeben, sollten Sie nicht auch -f angeben. Das Offset muss ein
| |
| Vielfaches von acht sein. Zwar kommen fragmentierte Pakete nicht durch Paketfilter und Firewalls durch, die alle IP-Fragmente in eine
| |
| Warteschlange stellen, wie z. B. die Option CONFIG_IP_ALWAYS_DEFRAG im Linux-Kernel, aber einige Netzwerke können sich den damit verbundenen
| |
| Performance-Einbruch nicht leisten und lassen sie folglich deaktiviert. Andere können sie nicht aktivieren, weil die Fragmente auf verschiedenen
| |
| Routen in ihre Netzwerke kommen könnten. Manche Quellsysteme defragmentieren hinausgehende Pakete im Kernel. Ein Beispiel dafür ist Linux mit
| |
| dem Verbindungsmodul iptables. Führen Sie einen Scan aus, während ein Sniffer wie z. B. Wireshark läuft, um sicherzustellen, dass die gesendeten
| |
| Pakete fragmentiert sind. Falls Ihr Host-Betriebssystem Probleme macht, probieren Sie die Option --send-eth aus, um die IP-Schicht zu umgehen
| |
| und rohe Ethernet-Rahmen zu schicken.
| |
| | |
| Eine Fragmentierung wird von Nmap nur für rohe Pakete unterstützt, die man mit TCP- und UDP-Port-Scans (außer beim Connect-Scan und
| |
| FTP-Bounce-Scan) und der Betriebssystemerkennung benutzen kann. Merkmale wie die Versionserkennung und die Nmap Scripting Engine unterstützen im
| |
| Allgemeinen keine Fragmentierung, weil sie sich auf den TCP-Stack Ihres Hosts verlassen, um mit anderen Zielen zu kommunizieren.
| |
| | |
| -D decoy1[,decoy2][,ME][,...] (verdeckt einen Scan mit Ködern)
| |
| Führt einen Decoy-Scan durch, was für den entfernten Host den Anschein erweckt, dass der oder die Hosts, die Sie als Köder angeben, das
| |
| Zielnetzwerk ebenfalls scannen. Deren IDS kann also 5–10 Port-Scans von eindeutigen IP-Adressen verzeichnen, aber es weiß nicht, welche IP sie
| |
| gescannt hat und welche unschuldige Köder waren. Das kann man zwar bekämpfen, indem man Router-Pfade mitverfolgt, Antworten verwirft oder
| |
| weitere aktive Mechanismen anwendet, aber im Allgemeinen ist es eine wirksame Methode zum Verbergen Ihrer IP-Adresse.
| |
| | |
| Trennen Sie alle Köder mit Kommata voneinander, wobei Sie optional ME als einen der Köder angeben können, um die Position Ihrer echten
| |
| IP-Adresse zu bestimmen. Falls Sie ME an sechster Stelle oder später setzen, zeigen einige verbreitete Port-Scan-Detektoren (wie z. B. der
| |
| hervorragende Scanlogd von Solar Designer) Ihre IP-Adresse wahrscheinlich überhaupt nicht an. Wenn Sie kein ME angeben, setzt es Nmap an eine
| |
| zufällig gewählte Position. Sie können auch RND benutzen, um eine zufällige, nicht-reservierte IP-Adresse zu erzeugen, oder RND:number, um
| |
| number Adressen zu erzeugen.
| |
| | |
| Beachten Sie, dass die Hosts, die Sie als Köder benutzen, eingeschaltet sein sollten, sonst könnten Sie versehentlich einen SYN-Flood-Angriff
| |
| auf Ihre Ziele auslösen. Außerdem lässt sich der scannende Host sehr einfach bestimmen, wenn nur einer davon im Netzwerk eingeschaltet ist.
| |
| Vielleicht möchten Sie IP-Adressen statt -Namen benutzen (damit die Köder-Netzwerke Sie nicht in ihren Nameserver-Protokollen sehen).
| |
| | |
| Köder werden sowohl im initialen Ping-Scan (mit ICMP, SYN, ACK oder was auch immer) als auch während der eigentlichen Port-Scan-Phase benutzt.
| |
| Auch bei der Erkennung entfernter Betriebssysteme (-O) werden Köder benutzt. Bei der Versionserkennung oder beim TCP-Connect-Scan funktionieren
| |
| Köder jedoch nicht. Falls eine Scan-Verzögerung stattfindet, wird sie zwischen zwei Stapeln vorgetäuschter Testpakete erzwungen, nicht zwischen
| |
| einzelnen Testpaketen. Weil Köder stapelweise auf einmal gesendet werden, können sie vorübergehend die Beschränkungen der Überlastungssteuerung
| |
| verletzen.
| |
| | |
| Man sollte hierbei noch erwähnen, dass beim Einsatz von zu vielen Ködern Ihr Scan sich verlangsamen und sogar ungenauer werden kann. Manche ISPs
| |
| filtern außerdem Ihre vorgetäuschten Pakete, aber viele beschränken solche vorgetäuschten IP-Pakete in keinster Weise.
| |
| | |
| -S IP_Address (Quelladresse vortäuschen)
| |
| Unter gewissen Umständen kann Nmap eventuell Ihre Quelladresse nicht bestimmen (wenn dem so ist, dann sagt Ihnen Nmap Bescheid). Benutzen Sie in
| |
| diesem Fall -S mit der IP-Adresse der Schnittstelle, über die Sie die Pakete senden möchten.
| |
| | |
| Eine weitere mögliche Anwendung dieses Flags ist eine Vortäuschung des Scans, um die Ziele glauben zu machen, dass jemand anderes sie scannt.
| |
| Stellen Sie sich eine Firma vor, die wiederholt von einem Mitbewerber gescannt wird! Bei dieser Art von Anwendung werden im Allgemeinen die
| |
| Optionen -e und -PN benötigt. Beachten Sie, dass Sie normalerweise Antwortpakete zurückbekommen (sie werden an die IP adressiert, die Sie
| |
| vortäuschen), d.h. Nmap kann keinen sinnvollen Bericht produzieren.
| |
| | |
| -e interface (angegebene Schnittstelle benutzen)
| |
| Sagt Nmap, auf welcher Schnittstelle es Pakete senden und empfangen soll. Nmap sollte das automatisch erkennen können, sagt Ihnen aber Bescheid,
| |
| wenn nicht.
| |
| | |
| --source-port portnumber; -g portnumber (Quell-Portnummer vortäuschen)
| |
| Eine Fehlkonfiguration, die überraschend häufig vorkommt, ist es, dem Netzwerkverkehr allein auf Basis der Quell-Portnummer zu vertrauen. Wie
| |
| das zustande kommt, kann man leicht verstehen. Ein Administrator setzt eine glänzende neue Firewall auf und wird sofort mit Beschwerden von
| |
| undankbaren Benutzern überflutet, deren Anwendungen nicht mehr laufen. Vor allem DNS könnte einen Aussetzer haben, weil die UDP-DNS-Antworten
| |
| von externen Servern nicht länger ins Netzwerk hineinkommen. Ein weiteres häufiges Beispiel ist FTP. Bei aktiven FTP-Übertragungen versucht der
| |
| entfernte Server, eine Verbindung zurück zum Client herzustellen, um die gewünschte Datei zu übertragen.
| |
| | |
| Für diese Probleme existieren sichere Lösungen, oftmals in Form von Proxies auf Anwendungsebene oder Protokoll-parsenden Firewall-Modulen.
| |
| Leider gibt es auch einfachere, unsichere Lösungen. Viele Administratoren haben beobachtet, dass DNS-Antworten von Port 53 und aktive
| |
| FTP-Antworten von Port 20 kommen, und sind in die Falle getappt, eingehenden Datenverkehr nur von diesen Ports zu erlauben. Oft gehen sie davon
| |
| aus, dass kein Angreifer solche Firewall-Lecks bemerken und ausbeuten würde. In anderen Fällen betrachten das Administratoren als kurzfristige
| |
| Überbrückungsmaßnahme, bis sie eine sicherere Lösung implementieren können. Und dann vergessen sie diese Sicherheitsaktualisierung.
| |
| | |
| Aber nicht nur überarbeitete Netzwerkadministratoren tappen in diese Falle. Zahlreiche Produkte wurden mit diesen unsicheren Regeln
| |
| ausgeliefert. Sogar Microsoft hat sich schuldig gmacht. Die IPsec-Filter, die mit Windows 2000 und Windows XP ausgeliefert wurden, enthalten
| |
| eine implizite Regel, die jeden TCP- oder UDP-Datenverkehr von Port 88 (Kerberos) erlaubt. Ein weiterer bekannter Fall sind Versionen der Zone
| |
| Alarm Personal-Firewall bis 2.1.25, die alle empfangenen UDP-Pakete vom Quell-Port 53 (DNS) oder 67 (DHCP) erlauben.
| |
| | |
| Nmap bietet die Optionen -g und --source-port (sind äquivalent), um diese Schwächen auszunutzen. Geben Sie einfach eine Portnummer an, und Nmap
| |
| wird, wenn möglich, Pakete von diesem Port senden. Damit es richtig funktioniert, muss Nmap für bestimmte Betriebssystemerkennungstests
| |
| verschiedene Portnummern benutzen, und DNS-Anfragen ignorieren das --source-port-Flag, weil Nmap sich bei ihnen auf System-Bibliotheken
| |
| verlässt. Die meisten TCP-Scans, inklusive dem SYN-Scan, unterstützen die Option vollständig, ebenso wie der UDP-Scan.
| |
| | |
| --data-length number (Zufallsdaten an gesendete Pakete anfügen)
| |
| Normalerweise sendet Nmap minimale Pakete, die nur einen Header enthalten. Daher haben seine TCP-Pakete im Allgemeinen nur 40 Bytes und die ICMP
| |
| Echo-Requests nur 28. Mit dieser Option sagen Sie Nmap, dass es die angegebene Anzahl von zufälligen Bytes an die meisten gesendeten Pakete
| |
| hinzufügen soll. Pakete für die Betriebssystemerkennung (-O) sind davon nicht betroffen, weil dort aus Genauigkeitsgründen konsistente Pakete
| |
| verlangt werden, aber die meisten Ping- und Port-Scan-Pakete unterstützen das. Das kann den Scan etwas verlangsamen, aber auch etwas
| |
| unauffälliger machen.
| |
| | |
| --ip-options S|R [route]|L [route]|T|U ... ; --ip-options hex string (sendet Pakete mit angegebenen IP-Optionen)
| |
| Laut IP-Protokoll[9] können in den Paket-Headern mehrere Optionen enthalten sein. Anders als die allgegenwärtigen TCP-Optionen sieht man
| |
| IP-Optionen aus Gründen der praktischen Anwendbarkeit und Sicherheit nur selten. Tatsächlich blockieren die meisten Internet-Router die
| |
| gefährlichsten Optionen wie Source Routing sogar. Dennoch können diese Optionen in manchen Fällen nützlich sein, um die Netzwerk-Route zu
| |
| Zielrechnern zu bestimmen und zu manipulieren. Sie können z. B. vielleicht die Option Record Route dazu benutzen, einen Pfad zum Ziel sogar dann
| |
| zu bestimmen, wenn traditionellere, traceroute-artige Ansätze versagen. Oder wenn Ihre Pakete von einer bestimmten Firewall verworfen werden,
| |
| können Sie mit den Optionen Strict oder Loose Source Routing möglicherweise eine andere Route angeben.
| |
| | |
| Die meisten Möglichkeiten bei der Angabe von IP-Optionen hat man, wenn man einfach Werte als Argumente für --ip-options angibt. Stellen Sie vor
| |
| jede Hex-Zahl ein \x und zwei Ziffern. Einzelne Zeichen können Sie wiederholen, indem Sie ihnen ein Sternchen und dann die Anzahl der
| |
| Wiederholungen nachstellen. So ist z. B. \x01\x07\x04\x00*36\x01 ein Hex-String mit 36 NUL-Bytes.
| |
| | |
| Nmap bietet auch einen verkürzten Mechanismus für die Angabe von Optionen. Geben Sie einfach die Buchstaben R, T oder U an, um jeweils Record
| |
| Route, Record Timestamp oder beide Optionen gemeinsam anzugeben. Loose oder Strict Source Routing kann man mit L bzw. S, gefolgt von einem
| |
| Leerzeichen und einer mit Leerzeichen getrennten Liste von IP-Adressen angeben.
| |
| | |
| Wenn Sie die Optionen in den gesendeten und empfangenen Paketen sehen möchten, geben Sie --packet-trace an. Mehr Informationen und Beispiele zum
| |
| Einsatz von IP-Optionen mit Nmap finden Sie unter https://seclists.org/nmap-dev/2006/q3/0052.html.
| |
| | |
| --ttl value (setzt IP-Time-to-live-Feld)
| |
| Setzt bei IPv4 das Time-to-live-Feld in gesendeten Paketen auf den angegebenen Wert.
| |
| | |
| --randomize-hosts (randomisiert Reihenfolge der Zielhosts)
| |
| Verlangt von Nmap, dass es alle Gruppen von bis zu 16.384 Hosts durcheinanderwürfelt, bevor es sie scannt. Das kann den Scan für verschiedene
| |
| Netzwerk-Überwachungssysteme weniger offensichtlich machen, besonders dann, wenn Sie ihn mit einer langsamen Timing-Option kombinieren. Wenn Sie
| |
| größere Gruppen randomisieren möchten, müssen Sie PING_GROUP_SZ in nmap.h erhöhen und neu kompilieren. Eine alternative Lösung ist es, die Liste
| |
| der Ziel-IPs mit einem List-Scan (-sL -n -oN filename) zu erzeugen, dann z. B. mit einem Perl-Script zu randomisieren, um sie schließlich als
| |
| Ganzes mit -iL an Nmap zu übergeben.
| |
| | |
| --spoof-mac MAC address, prefix, or vendor name (MAC-Adresse vortäuschen)
| |
| Verlangt von Nmap, dass es in allen gesendeten rohen Ethernet-Rahmen die angegebene MAC-Adresse benutzt. Diese Option impliziert --send-eth, um
| |
| sicherzustellen, dass Nmap tatsächlich Pakete auf Ethernet-Ebene sendet. Die MAC-Adresse kann in mehreren Formaten angegeben werden. Wenn es
| |
| einfach die Zahl 0 ist, wählt Nmap eine völlig zufällige MAC-Adresse für diese Sitzung. Falls der angegebene String aus einer geraden Anzahl von
| |
| Hexadezimalziffern besteht (in dem Paare optional mit Doppelpunkten getrennt sein können), benutzt Nmap diese als MAC. Werden weniger als 12
| |
| Hexadezimalziffern angegeben, dann füllt Nmap die restlichen sechs Bytes mit zufälligen Werten. Falls das Argument weder null noch ein
| |
| Hex-String ist, schaut Nmap in nmap-mac-prefixes nach, um einen Herstellernamen zu finden, der den angegebenen String enthält (unabhängig von
| |
| der Schreibweise). Wird eine Übereinstimmung gefunden, benutzt Nmap die OUI dieses Herstellers (einen drei Byte langen Präfix) und füllt die
| |
| verbleibenden drei Bytes mit Zufallswerten. Gültige Beispiele für Argumente von --spoof-mac sind Apple, 0, 01:02:03:04:05:06, deadbeefcafe,
| |
| 0020F2 und Cisco. Diese Option betrifft nur Scans mit rohen Paketen wie den SYN-Scan oder die Betriebssystemerkennung, keine
| |
| verbindungsorientierten Merkmale wie die Versionserkennung oder die Nmap Scripting Engine.
| |
| | |
| --badsum (sendet Pakete mit falschen TCP/UDP-Prüfsummen)
| |
| Verlangt von Nmap, bei den an Zielhosts gesendeten Paketen ungültige TCP- oder UDP-Prüfsummen zu benutzen. Da so gut wie alle Host-IP-Stacks
| |
| solche Pakete verwerfen, kommen eventuelle Antworten sehr wahrscheinlich von einer Firewall oder einem IDS, das sich nicht die Mühe macht, die
| |
| Prüfsumme zu überprüfen. Mehr Details zu dieser Methode finden Sie unter https://nmap.org/p60-12.html.
| |
| | |
| == VERSCHIEDENE OPTIONEN ==
| |
| Dieser Abschnitt beschreibt einige wichtige (und weniger wichtige) Optionen, für die es keinen anderen richtig passenden Ort gibt.
| |
| | |
| -6 (schaltet IPv6-Scans ein)
| |
| Seit 2002 unterstützt Nmap bei seinen beliebtesten Features IPv6. Insbesondere das Ping-Scanning (nur für TCP), Connect-Scanning und die
| |
| Versionserkennung unterstützen IPv6. Die Befehlssyntax ist die übliche, nur dass man auch die Option -6 angibt. Natürlich müssen Sie die
| |
| IPv6-Syntax angeben, wenn Sie eine Adresse statt eines Hostnamens angeben. Eine Adresse könnte wie folgt aussehen:
| |
| 3ffe:7501:4819:2000:210:f3ff:fe03:14d0, d.h. es empfehlen sich Hostnamen. Die Ausgabe sieht genauso aus wie üblich. Nur die IPv6-Adresse in der
| |
| Zeile der „interessanten Ports“ deutet auf IPv6.
| |
| | |
| Zwar hat IPv6 die Welt nicht gerade im Sturm erobert, aber in einigen (besonders asiatischen) Ländern wird es stark eingesetzt, und von den
| |
| meisten modernen Betriebssystemen wird es unterstützt. Um Nmap mit IPv6 zu benutzen, müssen sowohl die Quelle als auch das Ziel Ihres Scans für
| |
| IPv6 konfiguriert sein. Falls Ihnen Ihr ISP (so wie die meisten) keine IPv6-Adressen bereitstellt, gibt es frei verfügbare sogenannte
| |
| Tunnel-Broker, die mit Nmap funktionieren. Weitere Tunnel-Broker sind in Wikipedia aufgelistet[12]. Ein weiterer freier Ansatz sind
| |
| 6to4-Tunnels.
| |
| | |
| -A (aggressive Scan-Optionen)
| |
| Diese Option schaltet zusätzlich erweiterte und aggressive Optionen ein. Ich habe noch nicht entschieden, wofür sie genau steht. Im Moment
| |
| schaltet sie die Betriebssystemerkennung (-O), die Versionserkennung (-sV), das Scannen mit Scripts (-sC) und traceroute (--traceroute) ein.
| |
| | |
| In der Zukunft kommen vielleicht noch weitere Eigenschaften hinzu. Ziel ist es, einen umfassenden Satz von Scan-Optionen zu aktivieren, ohne
| |
| dass man sich viele Flags merken muss. Weil aber das scriptbasierte Scannen mit dem Standardsatz als aufdringlich betrachtet wird, sollten Sie
| |
| -A nicht ohne Genehmigung auf Zielnetzwerke loslassen. Diese Option aktiviert nur Eigenschaften, aber keine Optionen für das Timing (z. B. -T4)
| |
| oder die Ausführlichkeit (-v), die Sie eventuell auch benutzen möchten.
| |
| | |
| --datadir directoryname (gibt benutzerdefinierten Ort für Nmap-Datendateien an)
| |
| Nmap erhält einige spezielle Daten zur Laufzeit aus Dateien namens nmap-service-probes, nmap-services, nmap-protocols, nmap-rpc,
| |
| nmap-mac-prefixes und nmap-os-db. Falls der Ort einer dieser Dateien angegeben wurde (mit den Optionen --servicedb oder --versiondb), wird
| |
| dieser Ort für diese Datei benutzt. Danach sucht Nmap diese Dateien im Verzeichnis, das mit der Option --datadir angegeben wurde (sofern
| |
| vorhanden). Dateien, die dort nicht gefunden werden, werden in einem Verzeichnis gesucht, das durch die Umgebungsvariable NMAPDIR angegeben
| |
| wird. Danach kommt ~/.nmap für echte und effektive UIDs (nur bei POSIX-Systemen) oder der Ort des ausführbaren Nmap-Programms (nur unter Win32)
| |
| und dann ein bei der Kompilierung angegebener Ort wie z. B. /usr/local/share/nmap oder /usr/share/nmap. Als letzte Rettung sucht Nmap im
| |
| aktuellen Arbeitsverzeichnis.
| |
| | |
| --servicedb services file (gibt benutzerdefinierte Dienstedatei an)
| |
| Verlangt von Nmap, die angegebene Dienstedatei zu benutzen statt der Datendatei nmap-services, die in Nmap enthalten ist. Bei dieser Option wird
| |
| außerdem auch ein schneller Scan (-F) benutzt. Weitere Details zu Nmaps Datendateien finden Sie in der Beschreibung zu --datadir.
| |
| | |
| --versiondb service probes file (gibt benutzerdefinierte Dienstepakete an)
| |
| Verlangt von Nmap, die angegebene Dienstepaketedatei zu benutzen statt der Datendatei nmap-service-probes, die in Nmap enthalten ist. Weitere
| |
| Details zu Nmaps Datendateien finden Sie in der Beschreibung zu --datadir.
| |
| | |
| --send-eth (sendet rohe Ethernet-Pakete)
| |
| Verlangt von Nmap, Pakete auf der rohen Ethernet-(Datenlink-)Schicht zu schicken, statt auf der höheren IP-(Netzwerk-)Schicht. Nmap wählt
| |
| standardmäßig diejenige, die im Allgemeinen die beste für die gegebene Plattform ist. Rohe Sockets (IP-Schicht) sind im Allgemeinen auf
| |
| Unix-Rechnern am effizientesten, während unter Windows Ethernet-Rahmen benötigt werden, da Microsoft keine rohen Sockets unterstützt. Trotz
| |
| dieser Option benutzt Nmap rohe IP-Pakete unter Unix, wenn es keine andere Wahl hat (z. B. Verbindungen über etwas anderes als Ethernet).
| |
| | |
| --send-ip (sendet auf der rohen IP-Schicht)
| |
| Verlangt von Nmap, Pakete über rohe IP-Sockets zu senden, statt über low-level Ethernet-Rahmen. Diese Option ist das Komplement zur weiter oben
| |
| beschriebenen Option --send-eth.
| |
| | |
| --privileged (nimmt an, dass der Benutzer alle Sonderrechte genießt)
| |
| Sagt Nmap, dass es davon ausgehen soll, dass es über genügend Rechte verfügt, um über rohe Sockets zu senden, Paket-Sniffing und ähnliche
| |
| Operationen zu betreiben, die auf Unix-Rechnern normalerweise root-Rechte benötigen. Standardmäßig terminiert Nmap, wenn solche Operationen
| |
| verlangt werden, aber geteuid nicht null ist. --privileged ist nützlich bei Linux-Kernel-Capabilities und ähnlichen Systemen, die so
| |
| konfiguriert sein können, dass sie Benutzern ohne Sonderrechte erlauben, rohe Paket-Scans durchzuführen. Vergewissern Sie sich, dass Sie diese
| |
| Option vor weiteren Optionen angeben, die Sonderrechte benötigen (SYN-Scan, Betriebssystemerkennung usw.). Als äquivalente Alternative zur
| |
| Option --privileged kann die Umgebungsvariable NMAP_PRIVILEGED gesetzt werden.
| |
| | |
| --unprivileged (nimmt an, dass der Benutzer keine Sonderrechte für rohe Sockets genießt)
| |
| Diese Option ist das Gegenteil von --privileged. Sie sagt Nmap, dass es den Benutzer so behandeln soll, als genösse er keine Sonderrechte für
| |
| rohe Sockets und Sniffing. Das ist nützlich beim Testen, Debugging oder falls die Möglichkeiten des rohen Netzwerkzugriffs auf Ihrem
| |
| Betriebssystem vorübergehend irgendwie defekt sind. Als äquivalente Alternative zur Option --unprivileged kann die Umgebungsvariable
| |
| NMAP_UNPRIVILEGED gesetzt werden.
| |
| | |
| --release-memory (gibt Speicher vor Terminierung frei)
| |
| Diese Option ist nur bei der Suche nach Speicherlecks nützlich. Sie bewirkt, dass Nmap den von ihm belegten Speicher direkt vor seiner
| |
| Terminierung freigibt, damit man echte Speicherlecks einfacher finden kann. Normalerweise macht Nmap das nicht, weil es das Betriebssystem
| |
| ohnehin macht, wenn es den Prozess terminiert.
| |
| | |
| -V; --version (gibt Versionsnummer aus)
| |
| Gibt Nmaps Versionsnummer aus und terminiert.
| |
| | |
| -h; --help (gibt zusammengefasste Hilfeseite aus)
| |
| Gibt eine kurze Hilfeseite mit den am meisten benutzten Optionen aus. Sie kommt auch dann, wenn man Nmap ganz ohne Argumente startet.
| |
| | |
| LAUFZEIT-INTERAKTION
| |
| Während der Ausführung von Nmap wird jeder Tastendruck abgefangen. Das ermöglicht Ihnen, mit dem Programm zu interagieren, ohne es abzubrechen und
| |
| neu zu starten. Bestimmte Spezialtasten ändern Optionen, während alle anderen Tasten eine Statusmeldung über den Scan ausgeben. Konvention ist, dass
| |
| der Ausgabeumfang durch Kleinbuchstaben vergrößert und durch Großbuchstaben verkleinert wird. Sie können auch ‘?’ drücken, um eine Hilfe zu
| |
| erhalten.
| |
| | |
| v / V
| |
| Vergrößert/verkleinert die Ausführlichkeit
| |
| | |
| d / D
| |
| Vergrößert/verkleinert die Debugging-Stufe
| |
| | |
| p / P
| |
| Schaltet Paketverfolgung ein/aus
| |
| | |
| ?
| |
| Gibt einen Hilfeschirm zur Laufzeit-Interaktion aus
| |
| | |
| Alles andere
| |
| Gibt eine Statusmeldung wie die folgende aus:
| |
| | |
| Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan
| |
| | |
| Service scan Timing: About 28.00% done; ETC: 16:18 (0:00:15 remaining)
| |
| | |
| == FUßNOTEN ==
| |
| 1. RFC 1122
| |
| http://www.rfc-editor.org/rfc/rfc1122.txt
| |
| | |
| 2. RFC 792
| |
| http://www.rfc-editor.org/rfc/rfc792.txt
| |
| | |
| 3. RFC 1918
| |
| http://www.rfc-editor.org/rfc/rfc1918.txt
| |
| | |
| 4. UDP
| |
| http://www.rfc-editor.org/rfc/rfc768.txt
| |
| | |
| 5. TCP RFC
| |
| http://www.rfc-editor.org/rfc/rfc793.txt
| |
| | |
| 6. RFC 959
| |
| http://www.rfc-editor.org/rfc/rfc959.txt
| |
| | |
| 7. RFC 1323
| |
| http://www.rfc-editor.org/rfc/rfc1323.txt
| |
| | |
| 8. Programmiersprache Lua
| |
| http://lua.org
| |
| | |
| 9. IP-Protokoll
| |
| http://www.rfc-editor.org/rfc/rfc791.txt
| |
| | |
| 10. Nmap::Scanner
| |
| http://sourceforge.net/projects/nmap-scanner/
| |
| | |
| 11. Nmap::Parser
| |
| http://nmapparser.wordpress.com/
| |
| | |
| 12. in Wikipedia aufgelistet
| |
| http://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers
| |
| | |
| 13. Nmap Network Scanning: The Official Nmap Project Guide to Network Discovery and Security Scanning
| |
| https://nmap.org/book/
| |
| | |
| 14. Nmap: Netzwerke scannen, analysieren und absichern
| |
| https://www.opensourcepress.de/index.php?26&backPID=178&tt_products=270
| |
| | |
| 15. Open Source Press
| |
| http://www.opensourcepress.de
| |
| | |
| 16. English version
| |
| https://nmap.org/book/man-legal.html
| |
| | |
| | |
| [[Kategorie:Scanning]] | | [[Kategorie:Scanning]] |
| [[Kategorie:Linux/Befehl]] | | [[Kategorie:Linux/Befehl]] |
| [[Netzwerk/Befehl]] | | [[Netzwerk/Befehl]] |
| [[Kategorie:Informationssicherheit:Assessment]] | | [[Kategorie:Informationssicherheit:Assessment]] |
| {{DEFAULTSORT:nmap}}
| |
| [[Kategorie:IT-Sicherheit/Tools]] | | [[Kategorie:IT-Sicherheit/Tools]] |
| | |
| </noinclude> | | </noinclude> |