Nmap
Network Mapper (nmap)
- Nmap ist ein freier Portscanner zum Scannen und Auswerten von Hosts in einem Rechnernetz.[[1]]
- Der Name steht für Network Mapper.
- Ursprünglich für Linux entwickelt.
- Mit Einschränkungen auch für Windows-Systeme nutzbar (seit 2000).[[2]]
Netzwerke scannen
Was ist Network Scanning?
- Netzwerke scannen und analysieren
- angeschlossene und aktiven Systeme erkennen
- Details zu Diensten, Konfigurationen und Versionen bestimmen
- Netzwerk-Inventarisierung
- Dienste-Aktualisierungen prüfen
- Überwachung von Betriebszeiten, Hosts oder Diensten
Zenmap
- Neben der textbasierten Variante gibt es noch die grafische Benutzeroberfläche NmapFE zur komfortablen Einstellung von Nmap.
- Wurde mittlerweile durch die Zenmap[[3]] genannte GUI abgelöst.
Syntax
nmap [Scan Type(n)] [Optionen] {Ziel}
Einfacher Portscan
nmap ohne Optionen
- Es geht darum herauszufinden, ob ein Port offen ist, welche Anwendung dahinter läuft und ob dort Sicherheitslücken und Schwachstellen zu vermuten sind.
- Ein einfacher Port-Scanner wird alle Ports pauschal in zwei oder drei Zustände einteilen:
- offen,
- geschlossen,
- gefiltert (offen/geschlossen).
Bedeutung der Ausgabe
- Der Zustand "Offen" bedeutet, dass eine Anwendung oder ein Dienst bereit ist TCP-Verbindungen oder UDP-Pakete auf diesem Port anzunehmen.
- Um Kommunikationsverbindungen betreiben zu können, bedarf es offener Ports.
- Anzahl offener Ports begrenzen, um die Angriffsfläche so klein wie möglich zu halten.
- Offene Ports werden zusätzlich geschützt oder Verbindungsmöglichkeiten eingeschränkt.
- Der Zustand "Geschlossen" bedeutet, dass keine Anwendung und kein Dienst an diesem Port auf eingehende Datenpakete und Verbindungsversuche lauscht bzw. hört.
- Auf ihm sind keine Kommunikationsverbindungen möglich.
- Ein geschlossener Port ist nur so lange geschlossen, wie eine Anwendung auf diesen Port hört und Verbindungen und Pakete annimmt.
- Um offene, aber auch geschlossene Ports zu schützen, setzen Systemadministratoren einen Portfilter (Firewall) ein.
- So verhindert man z.B. die Verbindungsversuche durch Port-Scans.
- Ein Port-Scan soll nur den Zustand eines Ports ermitteln, aber keine echte Verbindung aufbauen.
- Weil er die dahinterliegende Anwendung nicht kennt, kann er nur Testpakete an einen Port schicken.
- Der Filter verhindert, dass diese Testpakete durchkommen.
- In der Regel werden diese Pakete verworfen.
- Dann kann für diesen Port weder der Status "offen" oder "geschlossen" gelten.
- Dafür gibt es den Zustand "gefiltert" oder "blockiert".
Ziele festlegen
- NMAP ist bei der Angabe des Scan-Ziels sehr flexibel.
- Das kann ein Domain-Name sein, eine IP-Adresse oder ein ganzes Subnetz.
Domain: www. XXX.XX IP-Adresse: 192.168.1.1 Subnetz: 192.168.1.1/24 Subnetz: 192.168.1.*
- Man sollte einen Port-Scan nicht auf ein ganzes Subnetz anwenden.
- Ein ganzes Subnetz zu scannen, kann sehr lange dauern, wenn die Hosts gefilterte Ports haben.
- Die Anzahl der Ports reicht von 1 bis 65.535.
- NMAP scannt standardmäßig nur etwa 1.000 der meistgenutzten Ports, die in der Datenbank "nmap-services" aufgelistet sind.
- Mit der Option "-F" (für engl. fast, dt. schnell) kann man den Port-Scan sogar auf die 100 meistgenutzten Ports beschränken.
- Interessante Ports scannen mit der Option "-p":
- Für den Port 22 verwendet man die Option "-p22".
- Für die Ports 22, 25 und 80 verwendet man die Option "-p22,25,80".
- Für die Ports von 1 bis 100 verwendet man die Option "-p-100".
- Für die Ports von 80 bis 88 verwendet man die Option "-p80-88".
- Für alle Ports über 60.000 verwendet man die Option "-p60000-".
- Alle Ports von 1 bis 65.535 scannen: Option "-p-".
Einzelne Rechner
- Der Zielbereich ist eine einzelne IP-Adresse
- Standardmäßig arbeitet Nmap mit IPv4 (es geht aber auch IPv6)
- Hier wurde ein Linux-PC von einem Windows-7-Rechner aus gescannt:
- nmap 172.16.24.102 (Nmap scan report for)
- Die IP-Adresse gehört also dem Linux-Rechner, den wir mit Nmap auf offene Ports hin überprüfen.
- Das Ergebnis:
- 997 Ports erkennt Nmap als geschlossen (closed ports)
- Drei Ports sind offen:
- Port 21 für FTP (open ftp)
- Port 80 für einen Webserver (open http) und
- Port 110 für POP3 (open pop3)
Netzwerkbereiche
Bereich auswählen
- Nmap betrachtet alles in der Kommandozeile, was keine Option (oder ein Argument einer Option) ist, als Bezeichnung eines Zielhosts.
- Der einfachste Fall ist die Beschreibung einer IP-Zieladresse oder eines Zielhostnamens zum Scannen.
- Manchmal möchten Sie ein ganzes Netzwerk benachbarter Hosts scannen.
- Dafür unterstützt Nmap Adressen im CIDR-Stil [[4]].
- Sie können an eine IPv4-Adresse oder einen Hostnamen angefügt werden, und Nmap wird alle IP-Adressen scannen, bei denen die ersten <numbits> mit denen der gegebenen IP oder des gegebenen Hostnamens übereinstimmen.
- Z.B.: würde 192.168.10.0/24 die 256 Hosts zwischen 192.168.10.0 (binär: 1100.0000.1010.1000.0000.1010.0000.0000) und 192.168.10.255 (binär: 1100.0000.1010.1000.0000.1010.1111.1111, inklusive) scannen.
- 192.168.10.40/24 würde genau dieselben Ziele scannen.
- Dadurch, dass der Host
scanme.nmap.org
die IP-Adresse 64.13.134.52 hat, würde die Angabe
scanme.nmap.org/16
die 65.536 IP-Adressen zwischen 64.13.0.0 und 64.13.255.255 scannen.
- Der kleinste erlaubte Wert ist /0, der das gesamte Internet scannt.
- Der größte Wert ist /32 und scannt lediglich den Host mit angegebenem Namen oder IP-Adresse, da alle Adressen-Bits festgelegt sind.
Teilbereich auswählen
- Die CIDR-Notation ist kurz, aber nicht immer flexibel genug.
- So möchte man z.B. 192.168.0.0/16 scannen, aber IPs auslassen, die mit .0 oder .255 enden, weil sie als Unternetzwerk und Broadcast-Adressen benutzt werden können.
- Nmap unterstützt das in Form einer Oktett-Bereichsadressierung.
- Statt eine normale IP-Adresse anzugeben, kann man eine mit Kommata getrennte Liste von Zahlen oder Bereichen für jedes Oktett angeben.
- Z.B. überspringt 192.168.0-255.1-254 alle Adressen im Bereich, die mit .0 oder .255 enden, und 192.168.3-5,7.1 scannt die vier Adressen 192.168.3.1, 192.168.4.1, 192.168.5.1 und 192.168.7.1.
- Beide Bereichsgrenzen können weggelassen werden, die Standardwerte sind 0 für die linke und 255 für die rechte Grenze.
- Wenn Sie allein -benutzen, ist das identisch mit 0-255.
- Im ersten Oktett dann 0- benutzen, damit die Zielangabe nicht wie eine Kommandozeilenoption aussieht.
- Die Angabe 0-255.0-255.13.37 führt einen internetweiten Scan über alle IP-Adressen aus, die mit 13.37 enden.
- Diese Art von breiter Abtastung kann bei Internet-Umfragen und -Forschungen hilfreich sein.
IPv6
- IPv6-Adressen können nur durch ihre vollständige IPv6-Adresse oder ihren Hostnamen angegeben werden.
- CIDR und Oktettbereiche werden für IPv6 nicht unterstützt, weil sie selten nützlich sind.
Zielauswahl
- Auch wenn Ziele normalerweise in der Kommandozeile angegeben werden, gibt es auch die folgenden Optionen, um die Zielauswahl zu steuern:
-iL <inputfilename> (Eingabe aus einer Liste)
- Eine sehr lange Liste von Hosts in der Kommandozeile anzugeben ist oft sehr umständlich, kommt aber sehr häufig vor.
- Der DHCP-Server z.B. exportiert vielleicht eine Liste von 10.000 aktuellen Adresszuweisungen (engl. leases), die Sie scannen möchten.
- Möchte man alle IP-Adressen außer denjenigen scannen, um Hosts zu finden, die unautorisierte statische IP-Adressen benutzen.
- Die Liste der zu scannenden Hosts und übergibt deren Dateinamen als Argument zur Option -iL an Nmap.
- Die Einträge dürfen alle Formate haben, die Nmap auf der Kommandozeile akzeptiert (IP-Adresse, Hostname, CIDR, IPv6 oder Oktettbereiche).
- Alle Einträge müssen durch ein oder mehrere Leerzeichen, Tabulatoren oder Zeilenumbrüche getrennt sein.
- Wenn man einen Bindestrich (-) als Dateinamen angibt, liest Nmap die Hosts von der Standardeingabe statt aus einer normalen Datei.
-iR <num hosts> (zufällige Auswahl von Zielen)
Internetumfragen
- Für internetweite Umfragen und andere Forschungsaktivitäten möchte man Ziele vielleicht zufällig auswählen.
- Das kann man mit der Option -iR, die als Argument die Anzahl der zu erzeugenden IPs annimmt.
- Nmap lässt automatisch bestimmte unerwünschte IPs aus, wie solche in privaten, Multicast- oder unbesetzten Adressbereichen.
- Für einen endlosen Scan kann man das Argument 0 angeben.
Beispiele
- Befehl
nmap -sS -PS80 -iR 0 -p 80
sucht Webserver , auf denen man stöbern kann.
- Befehl
--exclude <host1>[,<host2>[,...]] (Ziele ausklammern)
gibt eine mit Kommata getrennte Liste von Zielen an, die vom Scan ausgeschlossen sein sollen, selbst wenn sie in den angegebenen Netzwerkbereich fallen.
- Die übergebene Liste benutzt die normale Nmap-Syntax und kann folglich Hostnamen, CIDR-Netzblöcke, Oktettbereiche usw. enthalten.
- Das kann nützlich sein, wenn das zu scannende Netzwerk hochkritische Server und Systeme enthält, die man nicht anfassen darf, weil sie bekanntermaßen ungünstig auf Port-Scans reagieren.
- Oder Unternetze, die von anderen Leuten administriert werden.
- Befehl
--excludefile<-exclude_file> (Liste aus Datei ausklammern)
- Das bietet dieselbe Funktionalität wie die Option --exclude.
- Unterschied: die ausgeklammerten Ziele in der mit Zeilenumbrüchen, Leerzeichen oder Tabulatoren getrennten Datei <exclude_file> statt auf der Kommandozeile angegeben werden.
Dienste identifizieren
- Die Ports 25/tcp, 80/tcp und 53/udp offen sind.
- Dank der Datenbank in nmap-services gibt Nmap noch aus, dass diese Ports wahrscheinlich jeweils zu einem Mailserver (SMTP), Webserver (HTTP) und Nameserver (DNS) gehören.
- 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.
- Eine genaue Versionsnummer hilft 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.
- 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.
Zenmap
- Neben der textbasierten Variante gibt es noch die grafische Benutzeroberfläche NmapFE zur komfortablen Einstellung von Nmap.
- Wurde mittlerweile durch die Zenmap genannte GUI abgelöst.
Scanergebnisse auslesen
- In der grafischen Oberfläche Zenmap [[5]]. lassen sich die Ergebnisse am besten auslesen
- Nachdem ein Scanvorgang abgeschlossen ist, sind auf der linken Seite die Endpunkte zu finden, die Nmap gefunden und gescannt hat.
- Mit den beiden Schaltflächen „Rechner“ und Dienste“ kann zwischen den gefundenen Endgeräten und den gefundenen Netzwerkdiensten gewechselt werden.
- Im unteren Bereich kann das Ergebnis über die Schaltfläche „Rechner filtern“ noch besser gefiltert werden.
- In der Mitte des Fensters sind verschiedene Registerkarten zu sehen, mit denen die Scanergebnisse besser untersucht werden können.
- Auf der Registerkarte „Nmap-Ausgabe“ zeigt Zenmap z.B. das Ergebnis an, das Nmap auch in der Befehlszeile anzeigt.
- Auf der Registerkarte „Ports/Rechner“ sind die gefundenen Ports zu sehen sowie weitere Informationen zum markierten Gerät.
- Mit der Registerkarte kann jedes einzelne Gerät im Netzwerk überprüft werden.
Grafische Anzeige des Netzwerks
- Auf der Registerkarte „Netzstruktur“ kann Zenmap eine grafische Anzeige des Netzwerkes zur Verfügung stellen.
- Über die verschiedenen Schaltflächen „Rechnerbetrachter“, „Fischauge“ und „Steuerungen“ können verschiedene Einstellungen für die Anzeige der Rechner vorgenommen werden.
- Die Grafik kann an dieser Stelle auch als PDF, PNG oder SVG gespeichert werden.
- Auf der Registerkarte „Rechnereinzelheiten“ können Details zu einem Rechner angezeigt werden, die durch das Scannen erkannt wurden.
- Zu den Informationen gehören Rechnernamen, das Betriebssystem, die geöffneten und geschlossenen Ports, den Zeitpunkt des Rechnerstarts und viele weitere Informationen.
Scanergebnisse miteinander vergleichen
- Scanergebnisse lassen sich über den Menüpunkt Scan\Scan als Datei speichern.
- Mehrere solche Ergebnisse können mit Nmap auch verglichen werden, um Unterschiede zu erkennen.
- Abgespeicherte Scanergebnisse werden mit dem Tool „ndiff“ verglichen.
- Der Befehl dazu ist ndiff <Datei1> <Datei2>.
- Ausführlichere Ergebnisse gibt Ndiff mit der Option „-v“ aus.
- Ein solcher Vergleich lässt sich auch in Zenmap vornehmen.
- Dazu wird in Zenmap das Menü Werkzeuge\Ergebnisse vergleichen verwendet.
Ausgabe steuern
Formate
- Nmap erzeugt seine Ausgabe in fünf verschiedenen Formaten.
- Das Standardformat heißt interaktive Ausgabe und wird an die Standardausgabe stdout gesendet.
- Es gibt auch die normale Ausgabe, die ähnlich zur interaktiven Ausgabe ist, außer dass sie weniger Laufzeitinformation und Warnungen ausgibt
- Man geht davon aus, dass sie erst nach Abschluss des Scans analysiert wird und nicht, während sie noch läuft.
- Die XML-Ausgabe ist eines der wichtigsten Ausgabeformate, da sie einfach nach HTML konvertiert, von Programmen wie Nmap-GUIs geparst oder in Datenbanken importiert werden kann.
- Die zwei verbleibenden Ausgabeformate sind die einfache grepbare[[6]] Ausgaben, in der die meiste Information über einen Zielhost in einer einzigen Zeile enthalten ist.
- Und sCRiPt KiDDi3 0utPUt für Benutzer, die sich selbst als root sehen.
Syntax
- Die interaktive Ausgabe ist standardmäßig vorgegeben und verfügt über keine eigenen Kommandozeilenoptionen.
- Die anderen vier Formate benutzen dieselbe Syntax.
- Sie erwarten ein Argument, den Namen der Datei, in der die Ergebnisse gespeichert werden sollen.
- Es können mehrere Formate angegeben werden, aber jedes nur einmal.
- Eine normale Ausgabe für eine eigene Untersuchung speichern und eine XML-Ausgabe desselben Scans für eine programmbasierte Analyse.
- Das erreicht man mit den Optionen -oX myscan.xml und -oN myscan.nmap.
- Obwohl myscan.xml benutzt wird, empfehlen sich aussagekräftigere Namen.
- Der Befehl nmap -oX myscan.xml target XML speichert in myscan.xml'.
- Mit einem Minuszeichen als Argument für eines der Formate eingeben. Dann schaltet Nmap die interaktive Ausgabe ab.
- Das heißt, der Befehl nmap -oX - target schreibt nur die XML-Ausgabe auf die Standardausgabe.
- Nmap bietet auch Optionen zur Steuerung der Scan-Ausführlichkeit und Optionen, um an Ausgabedateien anzuhängen, statt sie zu überschreiben.
Nmap-Ausgabeformate
-oN <filespec> (normale Ausgabe)
- Verlangt, dass eine normale Ausgabe in der angegebenen Datei gespeichert wird.
- Wie oben erwähnt, unterscheidet sich das leicht von der interaktiven Ausgabe.
-oX <filespec>
(XML-Ausgabe)
- Verlangt, dass eine XML-Ausgabe in der angegebenen Datei gespeichert wird.
- Nmap fügt eine DTD (Document Type Definition) hinzu, mit der XML-Parser Nmaps XML-Ausgabe validieren können.
- Diese ist für die Benutzung durch Programme gedacht, kann aber auch bei der Interpretation von Nmaps XML-Ausgabe helfen.
- Die DTD definiert die gültigen Elemente des Formats und zählt an vielen Stellen die dafür erlaubten Attribute und Werte auf.
- XML bietet ein stabiles Format, das man mit Software leicht parsen kann.
- Solche XML-Parser sind für alle wichtigen Programmiersprachen wie C/C++, Perl, Python und Java verfügbar.
- Beispiele sind Nmap::Scanner und Nmap::Parser für Perl in CPAN.
Optionen
- Die XML-Ausgabe verweist auf ein XSL-Stylesheet, mit dem man die Ergebnisse als HTML formatieren kann.
- Nutzung: XML-Ausgabe in einem Webbrowser wie Firefox oder IE laden.
- Funktioniert nur auf dem Rechner, auf dem Sie Nmap ausgeführt haben (oder auf einem, der ähnlich konfiguriert ist).
- Der Pfad zu nmap.xsl ist darin festkodiert.
- Um portable XML-Dateien zu erzeugen, die auf allen mit dem Web verbundenen Rechnern als HTML angezeigt werden, nutzt man die Optionen --webxml oder --stylesheet.
Optionen für Ausführlichkeit und Debugging
-v (größere Ausführlichkeit)
- Erhöht die Ausführlichkeit, d.h. Nmap gibt mehr Informationen über den laufenden Scan aus.
- Offene Ports werden angezeigt, direkt nachdem sie gefunden werden.
- Es werden Schätzungen für die Dauer bis zur Fertigstellung angegeben.
- Noch mehr Information erhält man, wenn man diese Option zweimal oder noch öfter angibt.
- Allerdings gibt es in den anderen Modi einige Änderungen, bei denen die Ausgabegröße durch Weglassen einiger Details erheblich reduziert wird.
-d [level]
(erhöhe oder setze Debugging-Stufe)
- Beim Debugging noch wesentlich mehr Daten bekommen.
- Die Debug-Stufe auch als Argument an -d übergeben. So setzt z.B. -d9 die Stufe neun.
- Das ist die höchste verfügbare Stufe.
--reason
(Gründe für Host- und Portzustände)
- Gibt die Gründe an, warum ein Port auf einen bestimmten Zustand gesetzt wurde und warum ein Host als ein- oder ausgeschaltet betrachtet wird.
- Diese Option zeigt die Paketart an, die einen Port- oder Hostzustand ermittelt hat.
- Die Information, die Nmap angeben kann, hängt von der Art des Scans oder Pings ab.
- Der SYN-Scan und der SYN-Ping (-sS und -PS) sind sehr detailliert.
- Der TCP-Connect-Scan (-sT) wird durch die Implementierung des connect-Systemaufrufs beschränkt.
--stats-every
(periodische Timing-Statistik ausgeben)
- Gibt periodisch eine Timing-Statusmeldung nach einem Intervall der Länge
--packet-trace
(gesendete und empfangene Pakete und Daten mitverfolgen)
- Bewirkt, dass Nmap für jedes gesendete oder empfangene Paket eine Zusammenfassung ausgibt.
--open
(zeige nur offene (oder möglicherweise offene) Ports an)
- Manchmal interessieren nur offene Ports, und nicht Ports, die geschlossen, gefiltert und geschlossen|gefiltert sind.
--iflist
(liste Schnittstellen und Routen auf)
- Gibt die Liste der Schnittstellen und Systemrouten aus, die Nmap entdeckt hat. .
--log-errors
(protokolliere Fehler/Warnungen in eine Datei im normalen Ausgabeformat)
- Von Nmap ausgegebene Warnungen und Fehlermeldungen gehen nur auf den Bildschirm (interaktive Ausgabe).
- Eine Alternative zu --log-errors ist die Umleitung der interaktiven Ausgabe (inklusive des Standardfehlerstroms) in eine Datei.
Weitere Ausgabeoptionen
--append-output
(an Ausgabedateien hinzufügen, statt sie zu überschreiben)
- Wenn man einen Dateinamen für ein Ausgabeformat wie z.B. -oX oder -oN angibt, wird diese Datei standardmäßig überschrieben.
- Wenn man deren Inhalt lieber behalten und die neuen Ergebnisse anhängen möchten, benutzen Sie die Option --append-output. .
--resume <filename>
(abgebrochenen Scan fortsetzen)
- Manche umfangreichen Nmap-Läufe benötigen sehr viel Zeit – in der Größenordnung von Tagen.
- Solche Scans laufen nicht immer bis zum Ende.
- Es gibt Beschränkungen, die verhindern, dass man Nmap während der
- normalen Arbeitszeit ausführen kann,
- das Netzwerk könnte abstürzen,
- der Rechner, auf dem Nmap läuft, könnte einen geplanten oder ungeplanten Neustart erleben oder
- Nmap selbst könnte abstürzen.
--stylesheet <path or URL>
(setze XSL-Stylesheet, um eine XML-Ausgabe zu transformieren)
- Die Nmap-Distribution enthält ein XSL-Stylesheet namens nmap.xsl zum Betrachten oder Übersetzen einer XML-Ausgabe nach HTML.
--webxml
(lade Stylesheet von Nmap.Org)
- Diese bequeme Option ist nur ein Alias für --stylesheet[[7]].
--no-stylesheet
(lasse XSL-Stylesheet-Deklaration im XML weg)
- Geben Sie diese Option an, wenn Nmap in seiner XML-Ausgabe auf keinerlei XSL-Stylesheet verweisen soll.
- Die xml-stylesheet-Anweisung wird dann weggelassen.
Funktionen
Target Enumeration
- Target Enumeration ("Ziel-Aufzählung") ist keine eigenständige Funktion von NMAP, sondern eine Phase im Vorfeld des NMAP-Scannings.
- In dieser Phase ermittelt NMAP aus der Zieladresse, die tatsächlich zu scannenden Hosts.
- Die Zieladresse kann die IP-Adresse eines einzelnen Hosts sein oder ein ganzes Subnetz.
- Im Fall eines Domain- oder Computernamens wird NMAP eine Adressauflösung durchführen.
- Diese Phase lässt sich nicht überspringen, da für das Scannen die Zieladresse eindeutig sein muss.
- Ermittelt NMAP aus der Angabe des Benutzers mehrere Adressen, dann führt NMAP das Scanning auf alle diese Adressen aus.
- Diesen Vorgang kann man nur dadurch vereinfachen, indem man explizit nur eine IP-Adresse angibt.
Ping-Scanning (Host-Discovery)
- Klassischer Ping-Scan (Network-Scan)
nmap -PE -sn -oG - 192.168.0.1/24
- Der klassische Ping-Scan mit ICMP-Echo-Requests (-PE), aber ohne Port-Scan (-sn).
- Erweiterter Ping-Scan (Network-Scan)
nmap -sP -oG - 192.168.0.1/24
- Dieser TCP-Ping-Scan ist eigentlich kein Ping-Scan, sondern eher eine sinnvolle Erweiterung zu einem klassischen Ping.
- Der TCP-Ping-Scan kombiniert den klassischen Ping (ICMP-Echo) mit dem TCP-SYN-Scan.
- Damit funktioniert der TCP-Ping-Scan manchmal besser als ein klassischer Ping bzw. ein einfacher ICMP-Echo-Request.
Port-Scanning
- Der Port-Scan ist die Hauptfunktion von NMAP.
- Hierbei testet NMAP die Port-Zustände des entfernten Hosts.
- Dabei geht es darum festzustellen, ob ein Port offen ist, also Verbindungsversuche annimmt.
- Da der Port-Zustand "offen" nicht immer eindeutig zu bestimmen ist, stellt NMAP vielfältige Scan-Methoden und Algorithmen zu Verfügung.
- Es geht darum, die Genauigkeit der Bestimmung von Port-Zuständen zu verbessern.
- siehe "Anwendungsbeispiele" 10.10.3 bis 10.10.5
nmap -sS -F 10.10.0.1
nmap -sV -Pn -p0- --reason --stats-every 60s 10.10.0.1
nmap -sV -Pn -p0- -T4 -A -oG - --reason --stats-every 60s 10.10.0.1/24
Service- und Versionserkennung (Service Identification)
- 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.
- Manche Drucker drucken alles aus, was an diesen Port gesendet wird.
- 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 Ports 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.
Versionsvariantnen
--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.
- Dadurch kann man 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).
Betriebssystemerkennung (OS Identification)
- Eines der bekanntesten Merkmale von Nmap ist dessen Erkennung entfernter Betriebssysteme[[8]] 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.
Scan-Typen
Ping-Scan
1. ICMP-Echo-Ping (klassischer Ping)
nmap -PE 10.10.0.1 für Subnet nmap -PE 10.10.0.1/24 oder nmap -PE 10.10.0.*
2. TCP-Ping-Scan
nmap -sn 10.10.0.1
3. TCP-SYN-Ping
nmap -PS 10.10.0.1
4. TCP-ACK-Ping nmap -PA 10.10.0.1 5. UDP-Ping
nmap -PU 10.10.0.1
6. ICMP-Timestamp-Scan
nmap -PT 10.10.0.1
7. ICMP-Address-Scan
nmap -PM 10.10.0.1
TCP-Full-Connect-Scan
- Connect-Scan verwendet den gleichnamigen Systemaufruf zum Scannen von Rechnern, anstatt sich auf rohe Pakete zu verlassen, wie es die meisten anderen Methoden tun.
- Es wird normalerweise von unprivilegierten Unix-Benutzern und gegen IPv6-Ziele verwendet, da der SYN-Scan in diesen Fällen nicht funktioniert.
nmap -sT 10.10.0.1
TCP-SYN-Scan
- Dies ist bei weitem der populärste Scan-Typ, weil es die schnellste Art ist, Ports des populärsten Protokolls (TCP) zu scannen.
- Er ist stealthier als der Verbindungs-Scan, und er funktioniert gegen alle funktionierenden TCP-Stapel (im Gegensatz zu einigen Spezial-Scans wie dem FIN-Scan).
nmap -sS 10.10.0.1
3. TCP-FIN-Scan
nmap -sF 10.10.0.1
4. TCP-XMAS-Scan
nmap -sX 10.10.0.1
5. TCP-NULL-Scan
nmap -sN 10.10.0.1
UDP-Scan
UDP-Ports bieten viele Sicherheitslücken
nmap -sU 10.10.0.1
TCP-ACK-Scan
- Der ACK-Scan wird häufig zur Abbildung von Firewall-Regelsätzen verwendet.
- Insbesondere hilft er zu verstehen, ob Firewall-Regeln zustandsbehaftet sind oder nicht.
- Der Nachteil ist, dass er nicht zwischen offenen und geschlossenen Ports unterscheiden kann.
nmap -sA 10.10.0.1
TCP-Window-Scan
Der Window-Scan ist wie der ACK-Scan, außer dass er in der Lage ist, offene gegenüber geschlossenen Ports gegen bestimmte Rechner zu erkennen.
nmap -sW 10.10.0.1
TCP-Maimon-Scan
Dieser obskure Firewall-evading-Scan-Typ ähnelt einem FIN-Scan, enthält aber auch das ACK-Flag. Dadurch kann er durch mehr Paketfilter-Firewalls hindurchkommen, mit dem Nachteil, dass er gegen noch weniger Systeme funktioniert als der FIN-Scan.
nmap -sM 10.10.0.1
TCP-Idle-Scan
- Der Leerlauf-Scan ist der heimlichste Scan-Typ von allen und kann manchmal vertrauenswürdige IP-Adressenbeziehungen ausnutzen.
- Leider ist er auch langsam und komplex.
nmap -sI 10.10.0.1
IP-Protokoll-Scan
- Protokoll-Scan bestimmt, welche IP-Protokolle (TCP, ICMP, IGMP usw.) vom Zielcomputer unterstützt werden.
- Technisch gesehen handelt es sich hierbei nicht um einen Port-Scan, da die IP-Protokollnummern und nicht die TCP- oder UDP-Portnummern durchlaufen werden.
- Dennoch verwendet er nach wie vor die Option -p zur Auswahl der gescannten Protokollnummern.
- Meldet seine Ergebnisse mit dem normalen Port-Tabellenformat.
- Verwendet sogar dasselbe zugrunde liegende Scan-Modul wie die echten Port-Scan-Methoden.
- Es ist also nahe genug an einem Port-Scan, dass es hierher gehört.
nmap -sO 10.10.0.1
- Ohne Angaben werden die 1000 wichtigsten Ports gescannt.
- -F steht für die 100 wichtigsten Ports
- -p steht für Port selektiv ( -p25 oder -p25-100 oder -p25,80,100 oder alle Ports über -p6000-)
- -p- um alle Ports zu scannen.
OS & Service Identication mit NMAP
1. OS-Scan (OS-Detection)
nmap -O 10.10.0.1
2. Service-Scan / Versions-Scan
nmap -sV 10.10.0.1
3. RPC-Scan
nmap -sR 10.10.0.1
4. Kombinierter OS- & Service-Scan
nmap -O -sV 10.10.0.1
Anwendungsbeispiele
1. Klassischer Ping-Scan
nmap -PE -sn -oG – 10.10.0.1/24
2. Erweiterter Ping-Scan
nmap -sP -oG – 10.10.0.1/24
3. SYN-TOP100-Port-Scan
nmap -sS -F 10.10.0.1
4. SYN/Version-All-Port-without-Ping-Scan
nmap -sV -Pn -p0- --reason --stats-every 60s 10.10.0.1
5. Aggressive-All-Host-All-Port-Scan
nmap -sV -Pn -p0- -T4 -A -oG - --reason --stats-every 60s 10.10.0.1/24
6. TCP-ACK-Scan
nmap -sA -F 10.10.0.1
7. TCP-FIN-Scan
nmap -sF -F 10.10.0.1
8. UDP-Port-Scan
nmap -sU -F 10.10.0.1
9. UDP-All-Port-Scan
nmap -sU -p0- --reason --stats-every 60s --max-rtt-timeout 100ms --max-retrie 1 10.10.0.1
10. List-Scan
nmap -sL 10.10.0.1/24
Quellen
- https://www.elektronik-kompendium.de/sites/net/2103061.htm
- https://nmap.org/man/de/man-target-specification.html
- https://nmap.org/man/de/man-output.html
- https://www.elektronik-kompendium.de/sites/net/2103021.htm
Links
intern
Linux
- https://wiki.itw-berlin.net/index.php?title=Sicherheit:Netzwerkangriffe
- https://wiki.itw-berlin.net/index.php?title=Entwurf:Linux:Secure_Shell
- https://wiki.itw-berlin.net/index.php?title=Netzwerke:Befehl:zenmap
Windows
extern
- https://de.wikipedia.org/wiki/Nmap
- http://translate.google.com/translate?hl=de&sl=auto&tl=de&u=https%3A%2F%2Fnmap.org%2Fbook%2Finst-windows.html
- https://de.wikipedia.org/wiki/Classless_Inter-Domain_Routing
- https://www.security-insider.de/netzwerke-mit-nmap-und-zenmap-untersuchen-a-633527/
- http://mikiwiki.org/wiki/grep
- https://svn.nmap.org/nmap/docs/nmap.xsl
- https://nmap.org/man/de/man-os-detection.html
Bildnachweis
- Alle Bilder aus MediaWiki: https://www.mediawiki.org/wiki/MediaWiki/de,
- damit frei und offen