©2005 LANsys Connectivity index last update:13.03.2006

 

HowTo Nmap 3.xx

Einleitung

Einen großen Teil der Testphase hat der Parameter –T (Geschwindigkeit) verschlungen. Doch der Anfang wird diesmal viel praxisnaher und auch für Anfänger interessant sein. Ich wünsche euch viel Spass und hoffe das ich euch mit dem folgenden Text einiges näher bringen kann.

Mehr als eine IP

Oft macht es Sinn mehr als eine IP zu scannen. Aber jede IP einzeln scannnen ist sehr aufwändig. Nmap hat mächtige Funktionen um das Ziel besser angeben zu können.

nmap 192.168.1.1 scannt nur die einzeilne IP-Adresse. - Folgende gebräuchlichen Alternativen bestehen:

nmap 192.168.1.1,2,3,4,5,6,7,8,9,10 würde alle IPs von 1.1 bis 1.10 beinhalten. - Einfacher geht das aber so: nmap 192.168.1.1-10

Sollen gleich alle 254 Adressen drankommen, könnte man auch nmap 192.168.1.* wählen. Das * (Wildcard, auch Asterix genannt) steht für alle Möglichkeiten von 0-255, wobei 0 und 255 meist uninteressant sind, da es sich dabei einmal um die NetzID und die Broadcastadresse in einem Class C Netz handelt.

Soll ein ganzes Subnetz gescannt werden, kommt der Parameter /MASK zum Einsatz:

nmap 192.168.1.1/16 kommt einem nmap 192.168.*.* gleich. Aber auch nmap *.*.1-3,5.1 wäre denkbar. Die meisten Kombinationen lassen sich verbinden. Hier ein paar Beispiele zur Angabe von Ip-Adressen und Bereichen als Kurzform:
  • 192.168.1.1
  • 192.168.1,3,6,7,124.1
  • 192.*.1.1
  • 192.168.*.1-200,255
  • *.*.1-10.1,2,3,4,5,6,7,8,9,10
  • 192.168.1.1/16
Parameter -T (Geschwindigkeit)

Der Parameter -T gibt die Geschwindigkeit von Nmap an. Es gibt 6 Werte:
  • Paranoid (langsamer/sicherer)
  • Sneaky
  • Polite
  • Normal
  • Aggressive
  • Insane(schneller/unsicherer/Ungenauer)
Da es auf Dauer schlecht ist, Wörter einzugeben, können statt dessen auch Zahlen angegeben werden: Paranoid (1) bis Insane (5).

"Skipping host localhost (127.0.0.1) due to host timeout"
Bedeutet nicht mehr und auch nicht weniger, als das der HOST für die Geschwindigkeit zu langsam ist. Dies kommt oft bei Insane und größeren Scans vor! Die Drosselung der Geschwindigkeit führt in den meisten Fällen dennoch zu einem erfolgreichen Abschluss. Die Geschwindigkeit der einzelnen Optionen wird in folgender Tabelle verdeutlicht:

Option Geschwindigkeit
Paranoid (-T 1) 300 - 400 Sekunden pro Port
Sneaky (-T 2) 15 Sekunden pro Port
Polite (-T 3) 35 Ports werden in 15 Sekunden gescannt
Normal  
Aggressive (-T 4) eine komplette IP mit 65.000 Ports in 100 Sekunden
Insane (-T 5) 10-15 Sekunden für 10.000 Ports


Nun taucht sicher die Frage auf, wofür diese Optionen überhaupt benötigt werden. Paranoid und Sneaky werden benutzt, um nicht bemerkt zu werden. Eine heutige gute Intrusion Detection System (IDS) (z.B. Snort, BlackIceDefender) oder ein Portlogger (z.B. scanlogD, tcplogD, portsentry) bekommen Standardscans von Nmap relativ schnell mit. Die Folge davon könnte eine IP-Sperre per Firewall sein. Polite kommt dann zum Einsatz, wenn Du das Netzwerk schonen möchtest. Insane wird gerne bei größeren Suchläufen verwendet wo keine Zuverlässigkeit verlangt wird. Paranoid, Sneaky und Polite scannen die Ports und IPS hintereinander - Normal, Aggressive und Insane dagegen untersuchen eine Viezahl von Ports oder IP Adressen zur gleichen Zeit.

Achtung: Die Werte können Aufgrund einer Netzauslastung schwanken! Eine hohe Auslastung bedeutet auch gleichzeitig eine längere Wartezeit, wenn nicht sogar Timeouts. Die Tests sind unter Idealbedienungen (Loopback) gemacht worden:
###TTY###
linux:~ # nmap 127.0.0.1 -T Paranoid -p 22

Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Interesting ports on localhost (127.0.0.1):
Port       State       Service
22/tcp     open        ssh

Nmap run completed -- 1 IP address (1 host up) scanned
in 300 seconds
###TTY###


###TTY###
linux:~ # nmap 127.0.0.1 -T Sneaky -p 22

Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Interesting ports on localhost (127.0.0.1):
Port       State       Service
22/tcp     open        ssh

Nmap run completed -- 1 IP address (1 host up) scanned
in 15 seconds
###TTY###


###TTY###
linux:~ # nmap 127.0.0.1 -T Sneaky -p 1-21

Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Interesting ports on localhost (127.0.0.1):
(The 20 ports scanned but not shown below are in
state: closed)
Port       State       Service
22/tcp     open        ssh

Nmap run completed -- 1 IP address (1 host up) scanned
in 303 seconds
###TTY###


###TTY###
linux:~ # nmap 127.0.0.1 -T Polite -p 1-37

Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Interesting ports on localhost (127.0.0.1):
(The 35 ports scanned but not shown below are in
state: closed)
Port       State       Service
22/tcp     open        ssh
25/tcp     open        smtp

Nmap run completed -- 1 IP address (1 host up) scanned
in 15 seconds
###TTY###


###TTY###
linux:~ # nmap 127.0.0.1 -T Aggressive –p 1-65535

Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Interesting ports on localhost (127.0.0.1):
(The 65530 ports scanned but not shown below are in
state: closed)
Port       State       Service
22/tcp     open        ssh
25/tcp     open        smtp
111/tcp    open        sunrpc
6000/tcp   open        X11
10000/tcp  open        snet-sensor-mgmt

Nmap run completed -- 1 IP address (1 host up) scanned
in 96 seconds
###TTY###


###TTY###
linux:~ # nmap 127.0.0.1-4 -T Aggressive -p 1-65535

Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Interesting ports on localhost (127.0.0.1):
(The 65530 ports scanned but not shown below are in
state: closed)
Port       State       Service
22/tcp     open        ssh
25/tcp     open        smtp
111/tcp    open        sunrpc
6000/tcp   open        X11
10000/tcp  open        snet-sensor-mgmt

Interesting ports on  (127.0.0.2):
(The 65531 ports scanned but not shown below are in
state: closed)
Port       State       Service
22/tcp     open        ssh
111/tcp    open        sunrpc
6000/tcp   open        X11
10000/tcp  open        snet-sensor-mgmt

Interesting ports on  (127.0.0.3):
(The 65531 ports scanned but not shown below are in
state: closed)
Port       State       Service
22/tcp     open        ssh
111/tcp    open        sunrpc
6000/tcp   open        X11
10000/tcp  open        snet-sensor-mgmt

Interesting ports on  (127.0.0.4):
(The 65531 ports scanned but not shown below are in
state: closed)
Port       State       Service
22/tcp     open        ssh
111/tcp    open        sunrpc
6000/tcp   open        X11
10000/tcp  open        snet-sensor-mgmt

Nmap run completed -- 4 IP addresses (4 hosts up)
scanned in 382 seconds
###TTY###


###TTY###
linux:~ # nmap 127.0.0.1 -T 5 -p 1-10005

Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Interesting ports on localhost (127.0.0.1):
(The 10000 ports scanned but not shown below are in
state: closed)
Port       State       Service
22/tcp     open        ssh
25/tcp     open        smtp
111/tcp    open        sunrpc
6000/tcp   open        X11
10000/tcp  open        snet-sensor-mgmt

Nmap run completed -- 1 IP address (1 host up) scanned
in 12 seconds
###TTY###


###TTY###
linux:~ nmap -A -T4 -F 192.168.1.10 Starting nmap 3.75 ( http://www.insecure.org/nmap/ )
Interesting ports on 192.168.1.10:
(The 1216 ports scanned but not shown below are in state: closed)
PORT     STATE SERVICE      VERSION
135/tcp  open  msrpc        Microsoft Windows msrpc
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds Microsoft Windows XP microsoft-ds
1025/tcp open  msrpc        Microsoft Windows msrpc
5000/tcp open  upnp         Microsoft Windows UPnP
Device type: general purpose
Running: Microsoft Windows NT/2K/XP
OS details: Microsoft Windows XP Pro RC1+ through final release
Nmap run completed -- 1 IP address (1 host up) scanned in 43.540 seconds ###TTY###

Parameter –F (only /etc/services)

Dieser Parameter ermöglicht einen schneller Scan, da nur die eingetragenen Services aus /etc/services gescannt werden.

Parameter –A

Dieser Parameter ermöglicht die OS-Abfragung, Servies und Versionsabtastung
(-O) (-sV), bei nmap 3.75

Timeouts

--max_parallelism 
Mit Hilfe dieses Parameters lässt sich die maximal Anzahl von gleichzeitigen (parallelen) Scans definieren. Der Wert 1 würde bedeuten, dass nur ein Port zur gleichen Zeit gescannt wird - die Untersucheung erfolgt also der Reihe nach.
--min_parallelism 
Fetslegen der minimalen Anzahl von gleichzeitigen (parallelen) Scans. Achtung: Eine zu hohe Zahl kann die Zuverlässigkeit stark einschränken.
--host_timeout 
Mit dieser Option lässt sich der Zeitrahmen, bis die nächste IP gescannt und der Scan der aktuellen IP abgebrochen wird, einstellen.
--scan_delay 
Minimale Wartezeit zwischen 2 Scans. Damit können IDS-Systeme gut durcheinander gebracht werden.

Log-Dateien
-oN 
Loggt in einem für das menschliche Auge angenehmen Still in die angegebene Datei.
-oX 
Erstellt eine Log-Datei im XML-Format.
-oG 
Es wird grep-fähig geloggt. Die Informationen sind sehr sparsam, können dafür aber einfach per cat | grep ausgelesen werden. Somit kann man sehr schnell nach Ports/IPs/Protokollen/OS usw. aussortieren.
-oA 
Loggt alle wichtigen Formate (normal, grepbar und XML). Nmap hängt den jeweiligen Kürzel für die Logart selbstständig an
-oS
Loggt in einer für Scriptkiddies lesbaren Form. Bei Interesse einfach mal ausprobieren. Über die Effizient lässt sich streiten, aber sicherlich wird auch das eine oder andere Scriptkiddie dies lesen?
--resume 
Geloggte Scans die mit STRG-C abgebrochen wurden, können hiermit fortgesetzt werden
--append_output 
Ergebnisse werden an die Datei angehängt und nicht überschrieben Experten-Parameter
-S IP (IP-Spoofing)
Sinn und Zweck wäre, Nmap kann die eigene QuellIP nicht Auflösen.

„Eine andere Moeglichkeit dieser Option ist die Quelle des Scans zu spoofen, so dass das Zielsystem glaubt, dass jemand anderes die Zugriffe durch fuehrt. Stellen Sie sich vor, dass eine Firma ploetzlich von ihrem Konkurrenten einen Scan verzeichnet! Dies ist nicht der Hauptnutzen dieser Option. Ich denke lediglich, dass diese Theorie einen guten Grund bereitstellt, nicht sofort jeden als Scanner zu beschimpfen, nur weil es scheint, dass von ihm ein Scan gestartet wurde.“
-iR Zufälliger Scan
Dieser Parameter gibt Nmap den Befehl zufällig im Internet IPs zu suchen/scannen. Über Sinn und Nutzen lässt sich streiten.
-sO Protokollscan
Mit der Option -sO können die auf dem Zielhost verfügbaren IP-Protokoll herrausgefunden werden. Sollten alle 256 Protokolle geöffnet sein (open), dann ist höchstwahrscheinlich die Firewall des Zielsystemes daran schuld, da die FW darauf verzichtet auf die raw IP-Packete ICMP protocl unreachable Nachrichten zu senden.
-sA ACK-Scan
Dieser Parameter dient der Identifizierung einer Firewall. Es werden hier keine geöffneten Ports angezeit! 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.
-sW Windows-Scan
Diese Option ähnelt sehr dem ACK-Scan. Der Unterschied besteht darin, daß hierbei geöffnete, gefilterte oder nicht gefilterte Ports entdeckt werden, die nicht durch einen ACK-Scan gefunden werden. Hieraus wurde ich selber noch nicht ganz schlau :(
-sR v
Bei diesem Scan werden viele Scantypen von Nmap zusammengefasst. Ziel ist es gefundene RPC-Ports nach Version und Programmnamen auszulesen. Zusätzlich kann rpcinfo -p zur Hilfe gezogen werden.
-sL ListScan
Generiert eine Liste aller IPs/Hostnamen, ohne sie zu pingen oder zu scannen. DNS kann mit -n unterdrückt werden. Zum testen kann nmap 127.0.0.1/16 -sL -n verwendet werden.
-PT TCP-PingScan
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. Das beide Parameter inkompatibel zueinander sind, ist selbstverständlich.
-R
Der DNS-Name wird immer aufgelöst - wird auch bei TOTEN Hosts ausgeführt
-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. Ich habe es erfolgreich auf einem SuSE und Trustix-System getestet. Laut Marc Ruef soll es auch mit anderen Linuxen sowie Free/OpenBSD laufen.
-6

IPv6 Unterstützung. Für mehr Infos gehen sie bitte auf http://nmap6.sourceforge.net/

Abschluss

Ich möchte zum Schluß noch darauf hinweißen das auch diverse Optionen verbunden werden können. So ist auch ein nmap 195.1.*.1-20 –p 25 -P0 möglich Meine Vorgegebene Reihenfolge muss nicht eingehalten werden.
Auch nmap -P0 –p 25,31-40 195.1.*.1-20 wäre ein gültiger Syntax.

Beispiele:
nmap -p 20-110 192.168.101.1
nmap -A -T4 -F host.dot
nmap -P0 -T4 -O -p 1-65535 -oX scan.xml 127.0.0.1-8 nmap -P0 -O 192.168.2.80 192.168.3.0/24 -o scan.txt nmap -sU -v -T 2 -p 1-1024 192.168.2.80/28 nmap -sX -p 22,53,110,143,4564 198.116.*.1-127 host -l company.com | cut -d -f 4 | ./nmap -v -iL -

nmap --help

Nmap 3.50 Usage: nmap [Scan Type(s)] [Options] <host or net list>
Some Common Scan Types ('*' options require root privileges)
* -sS TCP SYN stealth port scan (default if privileged (root))
  -sT TCP connect() port scan (default for unprivileged users)
* -sU UDP port scan
  -sP ping scan (Find any reachable machines)
* -sF,-sX,-sN Stealth FIN, Xmas, or Null scan (experts only)
  -sV Version scan probes open ports determining service & app names/versions
  -sR/-I RPC/Identd scan (use with other scan types)
Some Common Options (none are required, most can be combined):
* -O Use TCP/IP fingerprinting to guess remote operating system
  -p  ports to scan.  Example range: '1-1024,1080,6666,31337'
  -F Only scans ports listed in nmap-services
  -v Verbose. Its use is recommended.  Use twice for greater effect.
  -P0 Don't ping hosts (needed to scan www.microsoft.com and others)
* -Ddecoy_host1,decoy2[,...] Hide scan using many decoys
  -6 scans via IPv6 rather than IPv4
  -T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane> General timing policy
  -n/-R Never do DNS resolution/Always resolve [default: sometimes resolve]
  -oN/-oX/-oG <logfile> Output normal/XML/grepable scan logs to <logfile>
  -iL <inputfile> Get targets from file; Use '-' for stdin
* -S <your_IP>/-e <devicename> Specify source address or network interface
  --interactive Go into interactive mode (then press h for help)
Example: nmap -v -sS -O www.my.com 192.168.0.0/16 '192.88-90.*.*'

©2005 LANsys Connectivity index last update:13.03.2006