NMAP der Security Port Scanner für Windows
Netzwerksicherheit vorbeugend - Befehlsreferenz
©2002 by M.Rogge

Es gibt ihn schon lange, den Security Scanner von Fyodor mit dem aller bestens bekannten Namen NMAP.
NMAP heisst ausgeschrieben Network-Mapper.
Nun ist es endlich soweit und der Scanner ist in einem Projekt auch für Windows inklusive Installer verfügbar und bietet nun auch den Administratoren, die ausschließlich mit Windows arbeiten ein hervorragendes Tool.
Der Security Scanner soll Schwachstellen in einem Netzwerk aufzeigen, um vorbeugende Maßnahmen zur Security zu ergreifen.
Für die meisten Angriffe ist es jedoch immer erforderlich, dass man den Host kennt, dass man die dortigen Dienste kennt und welche Zugriffe möglich wären.
Bei einem Scanning kann man bereits unbemerkt sehr viele Informationen des Rechners erhalten der gescannt wird.
Das Tool NMAP bietet neben den einfachen Scans auch tiefere Scannmöglichkeiten, die einzelne Hosts ansprechen können um die dort arbeitenden Dienste heraus zu finden.
Sehr nützlich also scheint NMAP für Systemadministratoren zu sein, um die eigene Netzwerkstruktur auf mögliche Sicherheitsmängel zu scannen.
Für das genaue arbeiten mit NMAP sollte man sich mit Netzwerken, deren Struktur und TCP/IP auskennen, um entsprechende Befehle zu realisieren und die Ergebnisse auszuwerten.

Die derzeitigen Versionen von NMAP kann man auf den offiziellen Seiten bekommen, für WindowsXP sowie Windows2000 ist es derzeit die Version 1.3.0 und basiert auf der Version 2.54 Beta für Linuxsysteme.
Windows NMAP für WindowsXP/2000.
Linux NMAP für diverse Distributionen.

Was genau kann NMAP und wie kann ich vorgehen?
Die absolute Vielfältigkeit von NMAP macht es zu einem Programm, dass in keinem Werkzeugkasten eines Systemadministrators fehlen darf und sollte!
Sie erhalten nun einen Einblick in die Technik von NMAP und wie Sie konkret mit welchen Parametern arbeiten können.

Parameter und deren Bedeutung im Umgang mit NMAP

Mit dem Parameter –sP kann man mit den Ping-Befehl aktive Hosts in einem Netzwerk erkennen, da hierbei ein ICMP-Echo Paket an das Zielhost gesendet wird, dass dann mit einem ICMP-Echo-Reply antwortet.
NMAP hat hierbei jedoch nur die Möglichkeit, “normale” Ping an einen Host zu senden.

Durch den Parameter –sT wird ein TCP Port Scan durchgeführt.
Zwangsläufig muß dabei eine Verbindung zum Zielhost aufgebaut werden, wobei das Prinzip des 3-Wege-Handshakes durchgeführt wird.
Das bedeutet im einzelnen, daß bei TCP Verbindungen nach dem Drei-Wege-Handshake-Prinzip ACK-Anfragen (ACK=Acknoledgement) an den anzugreifenden Host gesendet werden.
Als erstes werden dabei die SYN Pakete an den Server gesendet.
Der Server antwortet dann wie beschrieben mit SYN-ACK Paketen und erwartet dann eine Bestätigung durch ein ACK Paket vom Client.

Der Parameter –sS führt einen so genannten halboffenen Scan durch.
Ein Scan mit diesem Parameter wird deshalb so genannt, weil man keine vollständige TCP Verbindung aufbaut sondern lediglich eine SYN Anfrage an einen Host sendet.
Antwortet der Host dann mit einem SYN-ACK Paket kann man davon ausgehen, dass der Host listening erreichbar ist.
Durch die Rückgabe von so genannten RST-ACK Paketen kann man dann davon ausgehen, dass keine vollständige Verbindung zustande kommt.
Besonders interessant ist diese Scan-Methode da diese nicht so schnell erkannt werden kann.

Durch den Parameter –sU wird mit NMAP ein reiner UDP-Scan ausgeführt.
Bei diesem Scan sollte im Normalfall angenommen werden, dass ein ICMP Paket als Antwort erscheint und unreachable erscheint.
Das bedeutet, dass der Zielhost auf diesem Port nicht erreichbar ist.
Folglich kann man von einem offenen Port ausgehen, wenn kein ICMP Antwort Paket ausgegeben wird.

Weitere Parameter in Kurzform:

Parameter –sF für einen STEALTH-FIN-Scan bei dem RST Pakete zurück gegeben werden müssen wenn diese Ports geschlossen sind.

Parameter –sX trifft für einen vergleichbaren Scan zu.
Hierbei wird ein Host mit FIN-Paket, ein URG-Paket und ein PUSH-Paket gescannt, wobei ebenfalls RST Pakete für geschlossene Ports zurück gegeben werden.

Parameter –sN führt einen TCP-Null-Scan durch.
Bei dieser Art des Scans werden alle Flaggen geschlossen und das Zielsystem gibt RST Pakete als Antwort auf geschlossene Ports zurück.
Diese Art von Scan ist fast nur bei Unix / Linux ausführbar!

Parameter -PT
Mit einem TCP Ping können erreichbare Maschinen ermittelt werden, auch wenn ein Firewall ICMP Pings oder Echos blockiert werden.
Hierzu verwendet diese Scan-Methode ein TCP Paket mit ACK (Empfangsbestätigung).
Ist die Zielmaschine ansprechbar, antwortet sie mit einem RST (zurücksetzen).
In der Regel wird hierzu der Port 80 benutzt, da er nur sehr selten von Firewalls gefiltert wird.

Parameter -PS
Diese Option sendet SYN-Pakets, also eine Aufforderung zum Verbindungsaufbau, statt eines Pakets mit ACK (Empfangsbestätigung).
Hier antwortet der Zielrechner mit einem RST (zurücksetzen) und es wird klar, der Rechner ist vorhanden und ansprechbar.

Parameter -PI
Die PI-Option sendet einfach nur Pings und hofft auf Server, die ansprechbar sind und im eigenen Netz auch nach Broadcast Adressen suchen.
Dies sind IP Adressen, die von außen erreichbar sind und Broadcasts (es wird kein festes Ziel definiert sondern an alle im Netz befindlichen Rechner gesendet) bei ankommenden IP Paketen absenden.
Sollte dies der Fall sein, sollte das Loch schnell beseitigt werden, denn der PI Scan kann eine erste Vorbereitung zu einer Denial of Service Attacke sein.
Genauer gesagt handelt sich hierbei fast immer um einen Smurf Angriff.

Parameter -PB
Diese Option stellt den Default-Ping dar.
Er verwendet sowohl ACK- wie auch ICMP Pakets parallel.
Auf diese Weise können Firewalls überwunden werden, die nur eins von beiden filtern.

Parameter -O
Diese Option aktiviert die Identifikation des Zielrechners über einen TCP/IP-Fingerabdruck.
Sie benutzt dazu eine Reihe von Techniken, die die notwendigen Informationen aus dem Netzwerk-Stack des Zielrechners ziehen und diese Informationen dann mit denen in einer Datenbank mit bekannten OS-Fingerabdrücken vergleichen.

Parameter -I
Mit der Option I lässt sich die TCP-Rückkennungs-Abtastung aktivieren.
Aufgrund eines Bugs im Kennzeichnungsprotokoll (RFC 1413) erfolgt über das Protokoll die Freigabe des Usernamens, der jedem Prozess angefügt ist, der eine TCP-Verbindung aufgemacht hat.

Parameter -f
Die Option f verursacht die benötigten SYN- FIN oder NULL Pakets zur Nutzung von fragmentierten IP-Pakets.
Verfolgt werden soll hierbei , TCP-Header auf mehrere kleine Pakete zu verteilen, um sie schwerer sichtbar zu machen.
Je nach eingesetzter Firewall oder auch Inrusion Detection System, können solche Pakete nicht erkannt werden oder nur schwer, da diese fragmentiert sind und verteilt.
Vergleichbares Vorgehen eines verteilten Angriffes mit fragmentierten IPs.

Parameter -oN
Mit der Option -oN können die Scan-Ergebnisse in eine Datei geschrieben werden.
Diese Funktion ist nicht uninteressant, wenn man die Ergebnisse fachgerecht auswerten möchte, was für Systemadministratoren durchaus relevant sein dürfte.

Parameter -p
Mit der Option -p lassen sich Folgen von zu scannenden Ports oder einen Bereich von zu scannenden Ports angeben.

Parameter -D
Die Option -D ist besonders interessant, denn mit dieser Option können weitere Maschinen als so genannte Lockvögel eingesetzt werden, die alle den gleichen Zielrechner scannen.
Auch wenn an der Zielmaschine die Abtastversuche registriert werden, kann in der Regel keine Zuordnung erfolgen, von wo aus der tatsächlich echte Scanversuch startete.

Parameter -S
Mit der Option -S können gesendete Pakets gespooft, also mit einer falschen Absender IP-Adresse versehen werden.
Auch wenn die Schutzsysteme des Zielrechners Scans registrieren, können Sie ihn nicht zum Ursprung zurückverfolgen.

Parameter -g
Die Option -g setzt einen Quellport in die verschickten Pakets.
Viele schlecht administrierte & naive Firewalls und Paketfilter bilden eine Ausnahme in ihren Filterregeln, erlauben DNS (53) und FTP-Data ( 20) Pakets und akzeptieren eine Verbindung.
Dieser Umstand führt die Sicherheit ad absurdum, denn Angreifer markieren den Zugriff als DNS oder FTP und verändern darunter ihren Quellport.

Parameter -r
Diese Option gibt NMAP die Anweisung, bis zu 2048 zufällige Maschinen für einen Scan zu benutzen, um die Sicherungssystem der eigentlichen Zielmaschine zu verwirren.
Besonders dann, wenn diese Option mit anderen Optionen zum Verlangsamen des Timings der Scans kombiniert wird.
Kombiniert man als Beispiel die Option -D-r dürfte dieser Scanlauf interessant sein :)

Parameter -m
Mit der Option -m (max sockets) lässt sich die Höchstzahl der Sockets einstellen, die parallel benutzt werden.
Diese Option wird gerne dazu benutzt, um die Scans langsamer zu machen und zu verhindern, dass die Zielrechner abstürzen.

NMAP ist an sich schon ein Werkzeug, mit dem Scans weitestgehend unentdeckt bleiben.
Man nennt es in Fachkreisen auch Stealth.
In einigen Fällen kann aber mit zusätzlichen Optionen das Timing noch feiner abgestimmt werden.

Parameter -T (Paranoid, Sneaky, Polite, Normal, Aggressive, Insane)
Mit den -T Optionen lässt sich das Timing der Scans passgenau auf das Zielsystem einstellen.

Als wichtige Anmerkung erscheint mir jedoch, daß bei fast allen Scanarten root erforderlich ist und ein Linux System die Performance eines ausführlichen Scan mit NMAP wesentlich steigert.
Ach bei Windows Betriebssystemen, auf denen NMAP zum Einsatz kommen soll gilt das root Recht.
Also muss man unter Windows mindestens Computeradminstrator Zugriffsrecht haben.
Da NMAP auch als 32Bit Version für diverse Windows Betriebssysteme erhältlich ist, sollte man dort besonders auf eine starke Rechenleistung setzen.
Empfehlenswert ist Windows nicht, um es als Scan Basissystem für einen derart umfangreichen Scanner wie NMAP zu verwenden.

Hier kann man schön erkennen, welche Befehle NMAP als Kommando ausführen würde, da ein solches Frontend normal nicht vorgesehen ist.
Die Frontends zwischen Linux (oberes Bild) und Windows (unteres Bild) unterscheiden sich nicht merklich voneinander.
Mit nmap für Windows wird ebenfalls WinPCap geliefert. (Windows Packet Library)
Ein Download und weitere Informationen erhalten Sie hier.
Die aktuell mitgelieferte WinPCap Version bei WindowsNMAP ist Version 2.3.

Sie sehen schon, NMAP ist durchaus ein sehr vielseitiger Scanner und beinhaltet Techniken, die wir bereits aus Angriffszenarien kennen.
Systemadministratoren sollten sich mit NMAP vertraut machen und sich regelmässig damit die Arbeit im Netzwerk erleichtern, um zusätzliche Sicherheitsmaßnahmen ergreifen zu können.

Alle Downloads und weitergehende Infos:

Windows NMAP für WindowsXP/2000.
Linx NMAP für diverse Distributionen.
WinPcap für Windows Version 3
Informationen zu NMAP/NetworkMapper finden Sie auf Computec.ch

Danke für die Hilfe und Realisierung bei Holger & Udo.

Fragen, Kritik oder Anregung: EMail

Best Regards & Greetings
M.Rogge

Berichte dieser Seite sind in guter Absicht und mühsamer Arbeit erstellt worden, daher möchte ich Sie bitten keine Anleitung und/oder andere Texte frei zu kopieren.
Unter Angabe des Autors und der URL sowie eine Benachrichtigung per E-Mail ist eine weitere Veröffentlichung jederzeit möglich.
Für einen Missbrauch zeichnet sich der Autor nicht verantwortlich, da eine kriminelle Handlung oder vergleichbares Handeln nicht damit unterstützt werden soll!