| FOTO | AUTO | EDV | AUDIO |

nmap

In Matrix Reloaded scannt Trinity die Matrix mit folgendem Kommando: nmap -v -sS -O 10.2.2.2 So erfährt sie, das der ssh-Port offen ist. Anhand der eingesetzten ssh-Version, die ihr auch von Nmap angezeigt wird, sucht sie ein passendes Exploit. Für den weiteren Angriff benutzt sie das fiktive Tool sshnuke und setzt das root-Passwort auf Z10N0101 (Sie sollten für sich selbst vielleicht ein besseres wählen). Danach deaktiviert sie mit dem Kommando disable grid nodes 21 - 48 wie gewünscht die Stromversorgung und der Film kann weitergehen.


Nmap wurde entwickelt um Systemadministratoren und kuriosen Individuen die Moeglichkeit zu geben, ansprech­bare Systeme und die durch sie bereitgestellten Dienste in großen Netzwerken zu identifizieren.

Nmap benutzt rohe IP-Pakete auf neuartige Weise, um festzustellen, welche Hosts im Netzwerk verfügbar sind, welche Dienste (Anwendungsname und -version) diese Hosts bieten, welche Betriebssysteme (und Versionen davon) darauf laufen, welche Art von Paketfiltern/-Firewalls benutzt werden sowie Dutzende anderer Eigenschaften. Auch wenn Nmap üblicherweise für Sicherheitsüberprüfungen verwendet wird, wird es von vielen Systemen und Netzwerkadministratoren für Routineaufgaben benutzt, z.B. Netzwerkinventarisierung, Verwaltung von Ablaufplänen für Dienstaktualisierungen und die Überwachung von Betriebszeiten von Hosts oder Diensten.

nmap installieren

NMap ist verfügbar für: Linux, Windows, Solaris, FreeBSD, OpenBSD, MacOS X und HP-UX.
Die neuste, stabile Version ist unter http://nmap.org/download.html zu finden. Alle Installationsanweisungen sind auf der Seite beschrieben. Da nmap das wohl meist verwendete Netzwerktool ist, gibt es kaum eine Linux Distribution die nmap nicht nativ anbietet. So wird unter ubuntu nmap einfach so nachinstalliert:

sudo apt-get install nmap

nmap verwenden

Die neueste Liste der nmap-Befehle ist immer unter http://nmap.org/data/nmap.usage.txt verfügbar. Sie hilft dabei, sich die am häufigsten benutzten Optionen zu merken, ist aber kein Ersatz für die detaillierte Dokumentation im Rest dieses Scripts. Einige obskure Optionen werden hier nicht einmal erwähnt.

Ein Ziel angeben

nmap unterstützt Adressen im CIDR-Stil.Die CIDR-Notation ist kurz, aber nicht immer flexibel genug. Daher kann man auch mit Wildcards arbeiten. Hier einige Beispiele:

192.168.1.12Scannt genau diese Adresse
192.168.1.1,4,12,123Scannt 4 Rechner
192.*.1.1Scannt Rechner alle B-Class Netze im 192er A-Class Netz, die mit .1 enden
192.168.*.1-200,255Scannt die Rechner alle C-Class Netze von 1-200 und 255
192.168.1.1/16Scannt ein Subnetz
  • -iL <inputfilename> Hier kann eine Textdatei mit einer Liste zu scannender Rechner angegeben werden
  • -iR <num hosts> zufällige Auswahl von Zielen. nmap -sS -PS80 -iR 0 -p 80 findet zufällig Webserver
  • –exclude <host1>[,<host2>[,…]] Ziele ausklammern
  • –excludefile <exclude_file> Liste auszuschließender Rechner
  • -6 schaltet IPv6-Scans ein

Scangeschwindigkeit

Dei Scangeschwindigkeit pro Rechner ist abhängig von der gewünschten Genauigkeit und der Möglichkeit Das Netzwerk und di eLogdatei der Firewall zu schonen.Wirft ein Zielhost die Meldung „Skipping host localhost … due to host timeout“ zurück, war der Scan zu schnell. Eine Verringerung des Werts kann hier hilfreich sein.

OptionNameGeschwindigkeit
-T1Paranoid300-400 Sekunden pro Port
-T2Sneaky15 Sekunden pro Port
-T3Polite35 Ports pro Sekunde
-T4Aggressive65000 Ports in 100 Sekunden
-T5Insane15 Sekunden für 10000 Ports

Den Host ansprechen

  • -sP Ping-Scanning: Manchmal ist es lediglich gefragt, welche Hosts in einem Netzwerk aktiv sind. nmap kann diese Frage beantworten, indem eine ICMP echo request-Anfrage an jede IP-Adresse im spezi­fizierten Netzwerk geschickt wird.
  • -sL List-Scan: Diese simple Methode generiert eine Liste aller IP-Adressen und Hostnamen, ohne die Zielsysteme direkt anzusprechen
  • -sU UDP-Scans: Diese Methode wird stets dann herangezo­gen, wenn es um das Identifizieren der offenen UDP-Ports (siehe RFC 768) eines Systems geht.
  • -sO IP protocol-Scans: Diese Methode kommt dann zum Tragen, wenn herausgefunden werden will, welche IP-Protokolle vom Zielsystem unterstützt werden.
  • -PN (Ping abschalten) So verhindert man dass nmap vor dem Scan testet ob der Rechner erreichbar ist. Manche Firewalls verhindern eine Pingantwort. Dadurch würde ohne diese Option kein Scan durchgeführt und der Rechner als nicht erreichbar definiert.
  • -n keine DNS-Auflösung
  • -R DNS-Auflösung für alle Ziele
  • -sI <Zombie-Host[:Zielport1:Zielport2]> Idlescan: Diese erweiterte Scan-Technik ermöglicht ein blindes Scannen der TCP-Port eines Ziels. Eine effektive Möglichkeit nicht entdeckt zu werden.
  • -sA ACK-Scan: Auf diese erweiterte Scan-Technik wird normalerweise immer dann zurueckgegriffen, wenn es um das Identifizieren eines Firewall-Regelwerks geht.
  • -sF -sX -sN Stealth FIN-, Xmas-Tree- oder Null-Scan-Modis: Es gibt Momente, wo SYN-Scans nicht heimlich genug ausfallen. Einige Firewall-Systeme (z.B. Packet-Filter) sind in der Lage verdaechtige SYN-Aktivi­taeten zu erkennen; ebenso koennen Programme wie Synlogger oder Courtney die SYN-Portscans als solche ausweisen. Diese erweiterten Scan-Techniken koennen somit in manchen Faellen ungehindert die gewuenschten Resultate liefern.

Ports Scannen

Die Kunst des perfekten Portscan. Experten kennen Dutzende von Scan-Methoden und wählen für jede Aufgabe die geeignete aus. Unerfahrene Benutzer und Script-Kiddies versuchen gerne jedes Problem mit dem standardmäßigen SYN-Scan zu lösen. Unwissen ist das einzige Hindernis auf dem Weg zur Meisterschaft im Port-Scanning.

Scantypen

  • -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.
  • -sU (UDP-Scan) Obwohl die meisten bekannten Dienste im Internet über das TCP-Protokoll laufen, sind UDP-Dienste weitverbreitet. Drei der häufigsten sind DNS, SNMP und DHCP
  • -sA (TCP-ACK-Scan) Dieser Scan unterscheidet sich insofern von den anderen Regeln, 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.
  • -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. Für diesen faszinierende und komplexen Scan-Typ gibt es hier ein Handbuch:http://nmap.org/book/idlescan.html
  • -sN (Null-Scan) Setzt keinerlei Bits (der TCP-Flag-Header ist 0).
  • -sF (FIN-Scan) Setzt nur das TCP-FIN-Bit.
  • -sX (Xmas-Scan) 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.

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

Port angeben

  • -p <port ranges> Diese Option gibt an, welche Ports gescannt werden soll und überschreibt die Voreinstellung.
  • -r Gibt die gescannten Ports sequentiell aus, also in absteigender Reihenfolge

Versionserkennung

  • -sV 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
  • –version-intensity <intensity> Intensität des Versions-Scans setzen. 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.
  • -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.

Betriebssystem erkennen

  • -O Aktiviert die Betriebssystem-Erkennung wie oben beschrieben. Alternativ dazu können Sie -A benutzen, um eine Betriebssystem-Erkennung zusammen mit anderen Dingen einzuschalten.
  • –osscan-guess; –fuzzy Ergebnisse der Betriebssystem-Erkennung raten.

Ausgabe definieren

Zusätzlich zu verschiedenen Ausgabeformaten bietet Nmap Optionen zur Steuerung der Ausführlichkeit dieser Ausgabe sowie Debugging-Meldungen. Die Ausgaben können an die Standardausgabe oder an benannte Dateien gehen, die Nmap überschreiben bzw. an die es seine Ausgabe anfügen kann. Mit den Ausgabedateien können außerdem abgebrochene Scans fortgesetzt werden

  • -oN <filespec> Verlangt, dass eine normale Ausgabe in der angegebenen Datei gespeichert wird.
  • -oX <filespec> 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.
  • -oS <filespec> (ScRipT KIdd|3-Ausgabe) Die Script-Kiddie-Ausgabe ist ähnlich zur interaktiven Ausgabe, mit dem Unterschied, dass sie nachbearbeitet ist, um die 'l33t HaXXorZ besser anzusprechen!
  • -v Nmap gibt mehr Informationen über den laufenden Scan aus.
  • –reason Gibt die Gründe an, warum ein Port auf einen bestimmten Zustand gesetzt wurde und warum ein Host als ein- oder ausgeschaltet betrachtet wird.
  • –open Zeige nur offene oder möglicherweise offene Ports an.
  • –iflist Gibt die Liste der Schnittstellen und Systemrouten aus, die Nmap entdeckt hat.
  • –append-output an Ausgabedateien hinzufügen, statt sie zu überschreiben.
  • –resume <filename> abgebrochenen Scan fortsetzen.

Ergebnisse interpretieren

Die sechs von Nmap erkannten Port-Zustände sind:

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

Beispiele

nmap -v scanme.nmap.org
Scannt alle reservierten TCP-Ports auf dem Rechner scanme.nmap.org. -v schaltet den ausführlichen Modus an.

nmap -sS -O scanme.nmap.org/24
Startet einen Stealth-SYN-Scan auf allen aktiven Rechnern unter den 256 IPs im Netzwerk der Größe “Klasse C”, in dem Scanme sitzt. Es versucht auch herauszufinden, welches Betriebssystem auf jedem aktiven Host läuft. Wegen des SYN-Scans und der Betriebssystemerkennung sind dazu root-Rechte notwendig.

nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127
Startet eine Host-Auflistung und einen TCP-Scan in der ersten Hälfte von allen 255 möglichen acht-Bit-Unternetzen im Klasse-B-Adressraum 198.116. Dabei wird getestet, ob die Systeme SSH, DNS, POP3 oder IMAP auf ihren Standardports laufen haben oder irgendetwas auf Port 4564. Falls einer dieser Ports offen ist, wird eine Versionserkennung benutzt, um festzustellen, welche Anwendung darauf läuft.

nmap -v -iR 100000 -PN -p 80
Verlangt von Nmap, 100.000 Hosts zufällig auszuwählen und sie nach Webservern (Port 80) zu scannen. Eine Host-Auflistung wird mit -PN unterbunden, weil es Verschwendung ist, zuerst eine Reihe von Testpaketen zu senden, um festzustellen, ob ein Host aktiv ist, wenn Sie auf jedem Zielhost ohnehin nur einen Port testen.

nmap -PN -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20

Das scannt 4096 IPs nach Webservern (ohne sie anzupingen) und speichert die Ausgabe im grepbaren und im XML-Format.

Ein umfassendes Handbuchhttp://www.selflinux.org/selflinux/html/nmap.html
Eigenen Rechner online scannenhttp://nmap-online.com/
Irongeeks Security Seitehttp://www.irongeek.com/
nmap Howto der Computerwochehttp://www.computerwoche.de/security/2495009/