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!