Nmap 5.20 stable released
Gordon "Fyodor" Lyon hat soeben das erste Stable Release 5.20 seit der Version 5.00 (Juli 2009) freigegeben.
Es wurden seit der Version 5.00 mehr als 150 signifikante Verbesserungen integriert:
- 31 neue NSE (Nmap Scripting Engine) Scripts (insgesammt 80)
- verbesserte Performance und weniger Speicherverbrauch
- Protokoll spezifische Payloads für effizientere UDP-Scans
- komplett überarbeitete Traceroute Engine
- Erweiterung der Betriebssystem- und Versionserkennung Datenbank (insg. mehr als 10.000 Signaturen)
Nmap 5.2 Installation unter Debian:
r-o-f:~# bzip2 -cd nmap-5.20.tar.bz2 | tar xvf -
...
r-o-f:~# cd ./nmap-5.20
r-o-f:~/nmap-5.20# ./configure
...
r-o-f:~/nmap-5.20# make
...
r-o-f:~/nmap-5.20# make install
...
NMAP SUCCESSFULLY INSTALLED
r-o-f:~/nmap-5.20# nmap --version
Nmap version 5.20 ( http://nmap.org )
Alle Änderungen und Verbesserungen findet man in der Nmap Hackers Mailingliste
Weitere Informationen: nmap.org
Übersicht NSE-Scripts: http://nmap.org/nsedoc/
Download: http://nmap.org/download.html
Nmap 5.0 – Windows Version
Nmap 5.0 für Windows gibt es auf der offiziellen Nmap-Homepage im Dowload Bereich als ausführbare EXE. Mittels des Nmap Windows-Installer kann man direkt alle benötigten und optionalen Komponenten wie z.B.: WinPcap, Registry Veränderungen und Performance Tweaks, Zenmap (grafisches Frontend) installieren.
Nmap unterstützt alle Windows Versionen seit NT, inklusive 2000, XP, Vista, Windows 7 und die Server Varianten 2003 und 2008.
Bis auf den Connect-Scan (-sT) gibt es keine großen Geschwindigkeitsunterschiede zur Unix-Variante. Mit dem Registry-Schlüssel nmap_performance.reg kann die Connect-Scan Geschwindigkeit deutlich verbessert werden. Standardmäßig werden diese Registry Änderungen bereits durch den Installer vorgenommen. Händisch können die Änderungen aus einem Command Prompt mit folgendem Befehl vorgenommen werden: regedit32 nmap_performance.reg Dabei werden folgende DWORD-Werte gesetzt:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
- MaxUserPort: 65534
- TCPTimedWaitDelay: 30
- StrictTimeWaitSeqCheck: 1
Der Installer erweitert automatisch die PATH Systemvariable um folgenden Eintrag: C:\Program Files\Nmap.
Dann muss man nicht den vollen Nmap-Pfad angeben, wenn man Nmap aus einem Command Prompt startet.
Folgende Einschränkungen gibt es zur Unix / Linux Variante:
- Man kann nicht einfach die Maschine (localhost, 127.0.0.1) von der Nmap ausgeführt wird scannen. Mann kann allerdings
einen TCP-Connect-Scan ohne Ping (-sT -PN) auf die lokale Maschine machen.
- Es werden nur Netzwerk Interfaces (inkl. 802.11 WLAN Karten und viele VPN Clients) bei Scans mit rohen TCP-Paketen
unterstützt. Einige VPN & RAS-Verbindungen werden nur dann unterstützt, wenn man einen TCP-Connect Scan ohne Ping
macht.
Quelle: nmap.org
Nmap 5.1 BETA2 released – Weihnachtsgrüße von Nmap
Gordon "Fyodor" Lyon hat gestern die Nmap Version 5.1 BETA2 freigegeben.

Ein Auszug der neuen Features bzw. Änderungen:
- 7 neue NSE-Scripts (insgesammt 79)
- Veränderter NSE-Script Output
- höhere Performance durch deutlich geringereren Speicherverbrauch
- Service-Detection: neue und aktuallisierte Fingerprints & Payloads
- Xmas-Scan: Weihnachtsgrüße im Verbose-Mode
- ...
Weihnachtsgrüße von Nmap:
Starting Nmap 5.10BETA2 ( http://nmap.org ) at 2009-12-25 16:08 CET
Nmap wishes you a merry Christmas! Specify -sX for Xmas Scan (http://nmap.org/book/man-port-scanning-techniques.html).
Initiating Ping Scan at 16:08
Scanning scanme.nmap.org (64.13.134.52) [4 ports]
Completed Ping Scan at 16:08, 0.20s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 16:08
Completed Parallel DNS resolution of 1 host. at 16:08, 6.51s elapsed
Initiating XMAS Scan at 16:08
Scanning scanme.nmap.org (64.13.134.52) [1 port]
Completed XMAS Scan at 16:08, 1.97s elapsed (1 total ports)
Nmap scan report for scanme.nmap.org (64.13.134.52)
Host is up (0.19s latency).
PORT STATE SERVICE
80/tcp open|filtered http
Read data files from: /usr/local/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 8.74 seconds
Raw packets sent: 6 (232B) | Rcvd: 1 (28B)
Alle Änderungen findet man in der Nmap Development Mailingliste
Weitere Informationen: nmap.org
Nmap 5.0 Howto – Teil 8: NSE Nmap Scripting Engine – praktische Beispiele
Die folgenden Beispiele werden mit der aktuellen Nmap Version 5.0 durchgeführt.
Wie man Nmap 5.0 auf einem aktuellen Debian System installiert, habe ich hier erklärt.
Das Nmap Security Scanner Projekt und Insecure.org erlauben ausdrücklich, dass
man den Host scanme.nmap.org mit Nmap zu Testzwecken scannen darf.
Ich habe für die unten gezeigten Beispiele ausschließlich scanme.nmap.org und meine eigenen Rechner benutzt!
-sC (NSE Standard Scripts)
Nmap benutzt bei diesem Scan alle Scripts, die als default kategorisiert sind. Einige dieser Scripts sind sehr aufdringlich und können leicht von einem IDS leicht erkannt werden.
Eine Auflistung der unterschiedlichen Script Kategorien findet man hier: NSE Grundlagen
Alle Nmap-Scripts werden in der script.db Datenbank (/usr/local/share/nmap/scripts/script.db) indiziert und kategorisiert.
Alle Scripts, die u.a. als default klassifiziert sind:
Entry { filename = "auth-owners.nse", categories = { "default", "safe", } }
Entry { filename = "dns-recursion.nse", categories = { "default", "intrusive", } }
Entry { filename = "dns-zone-transfer.nse", categories = { "default", "discovery", "intrusive", } }
Entry { filename = "finger.nse", categories = { "default", "discovery", } }
Entry { filename = "ftp-anon.nse", categories = { "auth", "default", "safe", } }
Entry { filename = "ftp-bounce.nse", categories = { "default", "intrusive", } }
Entry { filename = "html-title.nse", categories = { "default", "discovery", "safe", } }
Entry { filename = "http-auth.nse", categories = { "auth", "default", "intrusive", } }
Entry { filename = "http-open-proxy.nse", categories = { "default", "discovery", "external", "intrusive", } }
Entry { filename = "imap-capabilities.nse", categories = { "default", } }
Entry { filename = "irc-info.nse", categories = { "default", "discovery", } }
Entry { filename = "ms-sql-info.nse", categories = { "default", "discovery", "intrusive", } }
Entry { filename = "mysql-info.nse", categories = { "default", "discovery", "safe", } }
Entry { filename = "nbstat.nse", categories = { "default", "discovery", "safe", } }
Entry { filename = "p2p-conficker.nse", categories = { "default", "safe", } }
Entry { filename = "pop3-capabilities.nse", categories = { "default", } }
Entry { filename = "realvnc-auth-bypass.nse", categories = { "default", "vuln", } }
Entry { filename = "robots.txt.nse", categories = { "default", "discovery", "safe", } }
Entry { filename = "rpcinfo.nse", categories = { "default", "discovery", "safe", } }
Entry { filename = "smb-os-discovery.nse", categories = { "default", "discovery", "safe", } }
Entry { filename = "smtp-commands.nse", categories = { "default", "discovery", "safe", } }
Entry { filename = "snmp-sysdescr.nse", categories = { "default", "discovery", "safe", } }
Entry { filename = "socks-open-proxy.nse", categories = { "default", "discovery", "external", "intrusive", } }
Entry { filename = "ssh-hostkey.nse", categories = { "default", "intrusive", "safe", } }
Entry { filename = "sshv1.nse", categories = { "default", "safe", } }
Entry { filename = "sslv2.nse", categories = { "default", "safe", } }
Entry { filename = "upnp-info.nse", categories = { "default", "safe", } }
Beispiel-Scan mit -sC
Starting Nmap 5.00 ( http://nmap.org ) at 2009-11-30 21:53 CET
Interesting ports on scanme.nmap.org (64.13.134.52):
Not shown: 994 filtered ports
PORT STATE SERVICE
25/tcp closed smtp
53/tcp open domain
70/tcp closed gopher
80/tcp open http
|_ html-title: Go ahead and ScanMe!
113/tcp closed auth
31337/tcp closed Elite
Nmap done: 1 IP address (1 host up) scanned in 21.39 seconds
--script (erweiterter Script-Scan)
Man kann Nmap mit --script entweder verschiedene Scriptkategorien, einzelne Scripts oder ganze Scripverzeichnisse übergeben. Mit --datadir kann ein alternatives Scriptverzeichnis definiert werden. Nmap verwendet alle Scripts mit .nse Endung. Individuellen Scripts die mit absoluten Pfad angegeben werden, müssen keine spezielle Endung haben.
Beispiele:
Nmap nimmt alle Scripts aus den Kategorien: intrusive, vuln, version
Nmap verwendet alle Scripts außer die als safe kategorisierten.
Nmap benutzt die Scripts aus der Kategorie intrusive, das Standard-Script mysql-info.nse und alle Scripts mit .nse Endung aus dem Verzeichnis /meine/tollen/scripts
Nmap benutzt alle verfügbaren Scripts, die in der script.db Datenbank indiziert sind.
Beispiel-Scan mit --script all
Starting Nmap 5.00 ( http://nmap.org ) at 2009-11-30 22:21 CET
Interesting ports on scanme.nmap.org (64.13.134.52):
Not shown: 995 filtered ports
PORT STATE SERVICE
25/tcp closed smtp
53/tcp open domain
80/tcp open http
|_ html-title: Go ahead and ScanMe!
113/tcp closed auth
31337/tcp closed Elite
Host script results:
| whois: Record found at whois.arin.net
| netrange: 64.13.134.0 - 64.13.134.63
| netname: NET-64-13-143-0-26
| orgname: Titan Networks
| orgid: INSEC
|_ country: US stateprov: CA
| asn-query:
| BGP: 64.13.128.0/18 | Country: US
| Origin AS: 8121 - TCH - TCH Network Services
|_ Peer AS: 1299 2516 3356 4565 4657 19080
Nmap done: 1 IP address (1 host up) scanned in 21.99 seconds
--script-trace
Nmap gibt die gesammte Kommunikation des Scripts aus. Diese Option dient hauptsächlich der Fehlersuche oder zum besseren Verständnis des Scans.
Starting Nmap 5.00 ( http://nmap.org ) at 2009-11-30 22:46 CET
NSOCK (0.6290s) nsock_loop() started (timeout=50ms). 0 events pending
NSOCK (0.6300s) TCP connection requested to 64.13.134.52:80 (IOD #1) EID 8
NSOCK (0.6310s) nsock_loop() started (timeout=50ms). 1 events pending
NSOCK (0.6820s) nsock_loop() started (timeout=50ms). 1 events pending
NSOCK (0.7340s) nsock_loop() started (timeout=50ms). 1 events pending
NSOCK (0.7860s) nsock_loop() started (timeout=50ms). 1 events pending
NSOCK (0.8270s) Callback: CONNECT SUCCESS for EID 8 [64.13.134.52:80]
NSE: TCP 192.168.178.7:43365 > 64.13.134.52:80 | CONNECT
NSOCK (0.8280s) nsock_loop() started (timeout=50ms). 0 events pending
NSE: TCP 192.168.178.7:43365 > 64.13.134.52:80 | 00000000: 47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31 0d 0a GET / HTTP/1.1
00000010: 48 6f 73 74 3a 20 73 63 61 6e 6d 65 2e 6e 6d 61 Host: scanme.nma
00000020: 70 2e 6f 72 67 0d 0a 55 73 65 72 2d 41 67 65 6e p.org User-Agen
00000030: 74 3a 20 4d 6f 7a 69 6c 6c 61 2f 35 2e 30 20 28 t: Mozilla/5.0 (
00000040: 63 6f 6d 70 61 74 69 62 6c 65 3b 20 4e 6d 61 70 compatible; Nmap
00000050: 20 53 63 72 69 70 74 69 6e 67 20 45 6e 67 69 6e Scripting Engin
00000060: 65 3b 20 68 74 74 70 3a 2f 2f 6e 6d 61 70 2e 6f e; http://nmap.o
00000070: 72 67 2f 62 6f 6f 6b 2f 6e 73 65 2e 68 74 6d 6c rg/book/nse.html
00000080: 29 0d 0a 43 6f 6e 6e 65 63 74 69 6f 6e 3a 20 63 ) Connection: c
00000090: 6c 6f 73 65 0d 0a 0d 0a lose
NSOCK (0.8280s) Write request for 152 bytes to IOD #1 EID 19 [64.13.134.52:80]
NSOCK (0.8290s) nsock_loop() started (timeout=50ms). 1 events pending
NSOCK (0.8290s) Callback: WRITE SUCCESS for EID 19 [64.13.134.52:80]
NSOCK (0.8290s) nsock_loop() started (timeout=50ms). 0 events pending
NSOCK (0.8290s) Read request from IOD #1 [64.13.134.52:80] (timeout: 15000ms) EID 26
NSOCK (0.8300s) nsock_loop() started (timeout=50ms). 1 events pending
NSOCK (0.8840s) nsock_loop() started (timeout=50ms). 1 events pending
NSOCK (0.9340s) nsock_loop() started (timeout=50ms). 1 events pending
NSOCK (0.9870s) nsock_loop() started (timeout=50ms). 1 events pending
NSOCK (1.0280s) Callback: READ SUCCESS for EID 26 [64.13.134.52:80] (928 bytes)
NSE: TCP 192.168.178.7:43365 < 64.13.134.52:80 | HTTP/1.1 200 OK
Date: Mon, 30 Nov 2009 20:43:38 GMT
Server: Apache/2.2.3 (CentOS)
Accept-Ranges: bytes
Content-Length: 739
Connection: close
Content-Type: text/html; charset=UTF-8
<html>
<head>
<title>Go ahead and ScanMe!</title>
</head>
<body>
<p>Hello, and welcome to Scanme.Nmap.Org, a service provided by the <a href="http://nmap.org">Nmap Security Scanner Project</a> and <a href="http://insecure.$
<p>We set up this machine to help folks learn about Nmap and also to test and make sure that their Nmap installation (or Internet connection) is working prop$
<p>Thanks<br>
-<a href="http://insecure.org/fyodor">Fyodor</a>
</body>
</html>
NSOCK (1.0290s) nsock_loop() started (timeout=50ms). 0 events pending
NSOCK (1.0290s) Read request from IOD #1 [64.13.134.52:80] (timeout: 15000ms) EID 34
NSOCK (1.0290s) nsock_loop() started (timeout=50ms). 1 events pending
NSOCK (1.0290s) Callback: READ EOF for EID 34 [64.13.134.52:80]
NSOCK (1.0300s) nsock_loop() started (timeout=50ms). 0 events pending
NSE: TCP 192.168.178.7:43365 > 64.13.134.52:80 | CLOSE
Interesting ports on scanme.nmap.org (64.13.134.52):
PORT STATE SERVICE
80/tcp open http
|_ html-title: Go ahead and ScanMe!
Nmap done: 1 IP address (1 host up) scanned in 1.03 seconds
--script-updatedb
Wenn man neu NSE-Scripte in das script Verzeichnis kopiert, Scripts löscht oder verändert z.B. Kategorisierung sollte man die script.db Datenbank aktualisieren.
Diese Option wird ohne Argumente aufgerufen.
Starting Nmap 5.00 ( http://nmap.org ) at 2009-11-30 22:42 CET
NSE: Updating rule database.
NSE script database updated successfully.
Nmap done: 0 IP addresses (0 hosts up) scanned in 0.33 seconds
Quelle: nmap.org
NSE-Script Datenbank: http://nmap.org/nsedoc/
Nmap 5.0 - Howto Teil 1: Ziele richtig definieren
Nmap 5.0 - Howto Teil 2: Host-Erkennung
Nmap 5.0 - Howto Teil 3: Port-Scans
Nmap 5.0 – Howto Teil 4: Dienst- und Versionserkennung
Nmap 5.0 – Howto Teil 5: Betriebssystem-Erkennung
Nmap 5.0 – Howto Teil 6: Debugging & ausführliche Ausgabe
Nmap 5.0 – Howto Teil 7: Nmap Scripting Engine (NSE) – Grundlagen
Nmap Grundlagen: Port-Zustände
Nmap Grundlagen: Nmap 5.0 Installation
Nmap 5.0 – Howto Teil 7: Nmap Scripting Engine (NSE) – Grundlagen
Nmap liefert in der Version 5.00 bereits 58 fertige NSE-Scripts mit (Version 5.1b -> 72 Scripts). Man kann aber auch eigene Scan-Scripts in der Programmiersprache Lua schreiben. Die Standard-Scripts werden in acht verschiedene Kategorien unterteilt.
Man kann die Scripts nach Kategorie oder einzeln an Nmap übergeben.
Die Standardscripts findet man unter: /usr/local/share/nmap/scripts
Script Kategorien
auth: Diese Scripts versuchen die Autentifizierungs und Login Daten auf dem Zielsystem zu bestimmen, oft wird dies über eine Brute-Force-Attacke gemacht. z.B. http-auth, ftp-anon
default: Diese Scripts werden standardmäßig verwendet, wenn Nmap mit den Parametern -sC oder -A aufgerufen wird. Bei der automatischen Auswahl der zu verwendenden Scripts werden folgende Kategorien von Nmap berücksichtigt: Geschwindigkeit, Zweckmäßigkeit, Wortfülle, Ausfallsicherheit, Aufdringlichkeit, Heimlichkeit. Weitere Informationen zu den einzelnen Kategorien: hier
discovery:
Diese Scripts versuchen weitere Informationen über das Netzwerk zu finden.
intrusive:
Bei diesen Scripts ist die Wahrscheinlichkeit sehr hoch, dass das Zielsystem abstürzen kann oder z.B. die CPU-Auslastung extrem hoch geht. Die Erkennungswahrscheinlichkeit bei diesen Scans ist dadurch sehr hoch. z.B.: http-open-proxy, snmp-brute
malware:
Diese Scripts testen, ob das Zielsystem mit Malware oder Backdoors verseucht ist. z.B. smtp-strangeport
safe:
Diese Scripts sollten weder viel Netzwerkverkehr verursachen noch irgendwelche Dienste bzw. Hosts abstürzen lassen. Die meißten Scripts dieser Kategorie erkunden hauptsächlich das Netzwerk. Die Erkennungswahrscheinlichkeit ist gering z.B. ssh-hostkey, html-title
version:
Diese Scripts sind als Erweiterung zur Versionserkennung gedacht und werden automatisch von Nmap benutzt, wenn der Parameter -sV (Versions Erkennung) gesetzt ist z.B. skype-version, ppt-version
vuln:
Diese Scripts überprüfen bekannte Schwachstellen von Diensten und geben nur ein Ergebnis aus, wenn diese auch gefunden werden z.B. realvnc-auth-bypass, xampp-default-auth
Script Aufbau
Standardmäßig haben die Nmap-Scripts zwei bis fünf Bereiche, die der Beschreibung und Kategorisierung dienen: description Field, categories Field, author Field, license Field, runlevel Field. Detailierte Informationen findet man auf der offiziellen Nmap Seite: http://nmap.org/book/nse-script-format.html
Quelle: nmap.org
Nmap 5.0 - Howto Teil 1: Ziele richtig definieren
Nmap 5.0 - Howto Teil 2: Host-Erkennung
Nmap 5.0 - Howto Teil 3: Port-Scans
Nmap 5.0 – Howto Teil 4: Dienst- und Versionserkennung
Nmap 5.0 – Howto Teil 5: Betriebssystem-Erkennung
Nmap 5.0 – Howto Teil 6: Debugging & ausführliche Ausgabe
Nmap Grundlagen: Port-Zustände
Nmap Grundlagen: Nmap 5.0 Installation








