Nmap
aus ANOther Wiki, der freien Wissensdatenbank
Nmap ist ein mächtiges Prot-Scan-Tool, dessen Funktionsumfang und Plattformvielfalt (Windows, Linux, BSD, OSX) es zu einem der weltweit beliebtesten Scanner macht
Inhaltsverzeichnis |
Bezugsquellen
Die jeweils neuesten stabilen Versionen sind unter http://insecure.org/nmap/download.html">insecure.org verfügbar
Installation
Linux:
entpacken:
tar xvfz nmap*.tar.gz cd nmap*
installieren:
./configure make [su root] make install
Funktionen
Neben diesen einfachen Scanmethoden gibt es noch erweiterte Optionen, die den Ursprung eines Scans verschleiern sollen bzw. dazu beitragen das Ergebnis zu verbessern: Steahlt Scan (-sF), Xmas Tree-Scan (-sX) und Null-Scan (-sN) können eingesetzt werden, wenn ein SYN-Scan nicht verborgen genug ist, um einige Paketfilter oder Firewalls zu täuschen. Mit Hilfe dieser Optionen kann es möglich sein, auch solche Schutzmaßnahmen zu täuschen. Der Grundgedanke ist, daß beim Scannen eines geschlossenen Ports eigentlich ein RST Paket gesendet werden müsste - offene Ports antworten dabei gar nicht. Der FIN-Scan nutzt ein einzelnes FIN Paket für den Scan. Während der Xmas Tree-Scan die FIN, URG und Push Flags aktiviert, schaltet der Null-Scan alle Flags aus.
Ein weiteres Feature von Nmap ist der Fingerprint-Scan (-O) - TCP/IP Fingerprint Identifikation - damit lässt sich feststellen, welches Betriebssystem auf dem Zielhost installiert ist. Aufgrund der fleissigen Entwickler verfügt Nmap über eine sehr große Datenbasis zum Vergleich der Fingerprints.
Scannen von mehreren IPs
Um mehrere IPs bzw. ein ganzes Subnet gleichzeitig zu scannen, gibt es verschiedene Möglichkeiten:
nmap 192.168.0.1,2,3,4,5
Dies würde die Hosts 192.168.0.1 bis 192.168.0.5 scannen. Den gleichen Erfolg erzielt man durch
nmap 192.168.0.1-10
Für das Scannen ganzer Netze kann auch die Maskierung herangezogen werden
nmap 192.168.0.0/24
Weiters kann ein Asterix (*, auch Wildcard)verwendet werden, und da in jedem Oktett
nmap 192.168.0.* nmap 192.168.*.1 ...
Scangeschwindigkeit
Da das Scannen größerer Netze einige Zeit in Anspruch nehmen kann, hat nmap verschiedene Timeouts, nach dem es zum nächsten Port weiter geht.
Diese Geschwindigkeiten sind:
Nummer | Stufe | Zeit |
---|---|---|
0 | Paranoid | 300-400 Sekunden pro Port |
1 | Sneaky | 15 Sekunden pro Port |
2 | Polite | 35 Ports in 15 Sekunden |
3 | Normal | |
4 | Aggressive | eine komplette IP in 100 Sekunden |
5 | Insane | 10-15 Sekunden für 10.000 Ports |
Wobei "0" die genaueste bzw. sicherste Variante darstellt. Bei "5" wird in vielen Fällen vor der Antwort des Hosts abgebrochen Der Parameter wird mit "-T" und der gewünschten Nummer bzw. der gewünschten Bezeichnung der Geschwindigkeitsstufe angegeben.
MB:/home/another> nmap -T 5 127.0.0.1
gibt das Ergebnis
Starting nmap 3.81 ( http://www.insecure.org/nmap/">http://www.insecure.org/nmap/ ) at 2007-02-15 17:55 CET Interesting ports on localhost.localdomain (127.0.0.1): (The 1652 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 22/tcp open ssh . Nmap finished: 1 IP address (1 host up) scanned in 0.223 seconds
Ein weiterer Grund für die verschiedenen Geschwindigkeiten ist, dass IDS (wie z.B. snort) die Scanmuster von nmap relativ schnell erkennen und eventuell die scan-IP sperren. Mit -T 0 oder -T 1 braucht snort wesentlich länger...
Weitere Parameter
Parameter | Funktion |
---|---|
-F | berücksichtigt nur Ports, die in /etc/services eingetragen sind, was den scan sehr schnell macht |
Timeouts:
Parameter | Funktion |
---|---|
--max_parallelism <ANZAHL> | Hier wird die Anzahl der gleichzeitigen scans definiert. "1" würde bedeuten |
--min_parallelism <ANZAHL> | Das Gegenteil, hier wird angegeben, wie viele scans mindestens Gleichzeitig laufen. Eine zu hohe Zahl kann allerdings die Zuverlässigkeit einschränken |
--host_timeout <MILLISEKUNDEN> | Nach der hier angegebenen Zeit wird der scan der aktuellen IP abgebrochen und zur nächsten IP gegangen |
--scan_delay <MILLISEKUNDEN> | Um diverde IDS zu verwirren kann eine Zeit angegeben werden, die zwischen zwei scans verstreichen soll |
Logdateien
Parameter | Funktion |
---|---|
-oN <DATEI> | erzeugt eine lesbare Datei |
-oX <DATEI> | erzeugt eine Datei im XML-Format |
-gG | grep <MUSTER> schnell nach Ports/Protokollen/Betriebssystemen/... gesucht werden |
-oA <DATEI> | legt Dateien in allen drei oben genannten Formaten an und speichert sie mit der jeweiligen Dateiendung |
-oS <DATEI> | erzeugt eine Script-Kiddie-Ausgabe des scans (sinnfrei) |
--resume <DATEI> | hiermit können mit SrrgC abgebrochene Scans wieder fortgesetzt werden |
--append_output <DATEI> | neue Ergebnisse werden an die Datei angehängt statt überschrieben |
Expertenparameter
Parameter | Funktion |
---|---|
-S IP | IP spoofing [sollte getestet werden] |
-iR | Dieser Parameter läaat nmap nach zufälligen IPs suchen und scannt diese (sinnfrei) |
-sA | ACK-scan; Dieser Parameter dient der Identifizierung einer Firewall. Es werden hier keine geöffneten Ports angezeigt! Dagegen die von der Firewall gefilterten Ports. Dazu werden ACK-Pakete mit zufälliger Sequenznummer an den Zielport geschickt. Sollten keine Ports angezeigt werden, so ist die Wahrscheinlichkeit hoch, das die Firewall keine Ports blockiert. |
-PT[Portnummer] | Es wird standardmässig auf Port 80(http) ein TCP-Ping geschickt. Nützlich, falls ICMP teils oder ganz gesperrt wurde. Ziel ist dabei die Feststellung, ob der Host erreichbar ist. Danach folgt der Obligatorische Standardscan |
--randomize_host | Nmap scannt in einer Gruppe von max. 2048 Zielen zufällig. Besonders in Hinblick auf ausgereifte Sicherheitssysteme sehr sinnvoll um nicht erkannt zu werden. |
-r | Sagt Nmap das Gegenteil von „--randomize_host“, das keine Zufällige Wahl getroffen werden darf. |
-R | Der DNS-Name wird immer aufgelöst |
-iL | Die Ziel-IP-Adressen werden aus der angegebenen Liste ausgelesen, danach werden die IPs der Kommandozeile ausgewertet |
-f | SYN-, FIN-, Xmas- oder Null-Scan werden Fragmentiert. Viele IDS können dies nicht filtern. Vorsicht! Viele Netzwerkanwendungen kommen hiermit nicht klar... |
Probleme
Gewisse Nmap-Parameter benötigen root-Rechte. Sollen auch andere User diese Funktionen nützen, muss ein SUID-Flag gesetzt werden:
chmod 4751 /usr/local/nmap-3.*/nmap
Allerdings können nun alle User des Systems diese Funktionen nutzen. Das Rücksetzten erfolgt über
chmod 0751 /usr/local/nmap-3.*/nmap
Weiteres
Eine "Erweiterung" zu Nmap stellt Amap dar
Auf http://www.syhunt.com/section.php?id=sc download">Syhunt hiegt ein Windows Freeware front-end für nmap bereit