NMap ist ein sehr gutes Tool, um offene Ports am eigenen Server zu finden (welche vielleicht gar nicht gewollt offen sind), hinter denen sich z.B. veraltete Services befinden, welche bekannte Sicherheitslücken enthalten. Dadurch können solche erkannt und geschlossen werden, bevor Angreifer eine Sicherheitslücke ausnutzen um in das System einzudringen. An dieser Stelle verweise ich sicherheitshalber auf die Disclaimer Seite dieses Blogs.


Übersicht:

  • Vorbereitung
  • Herunterladen und kompilieren von NMap
  • Die Verwendung und die wichtigsten Optionen von NMap

 

1. Vorbereitung

apt-get update

apt-get upgrade

apt-get install wget build-essential bzip2

2. Herunterladen und kompilieren von NMap

Die neuste NMap Version findet sich immer [HIER] (nach „Latest Nmap release tarball“).

wget https://nmap.org/dist/nmap-6.47.tar.bz2

Oder

wget http://dl.bitforce.io:11520/nmap-6.47.tar.bz2

 

bzip2 -cd nmap-6.47.tar.bz2 | tar xf –

cd nmap*

./configure

Sollte ein Paket, z.B. eine Library fehlen, wird man nun darauf hingewiesen. Falls nicht, sollte man folgendes sehen:

nmap1

make

Nun wird NMap kompiliert. Das kann je nach CPU und I/O Leistung des Systems / Servers etwas dauern.

make install

nmap2

Schon ist NMap kompiliert und installiert!

nmap Hilfe

Nmap 6.47 ( http://nmap.org )
Usage: nmap [Scan Type(s)] [Options] {target specification}
TARGET SPECIFICATION:
Can pass hostnames, IP addresses, networks, etc.
Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
-iL <inputfilename>: Input from list of hosts/networks
-iR <num hosts>: Choose random targets
–exclude <host1[,host2][,host3],…>: Exclude hosts/networks
–excludefile <exclude_file>: Exclude list from file
HOST DISCOVERY:
-sL: List Scan – simply list targets to scan
-sn: Ping Scan – disable port scan
-Pn: Treat all hosts as online — skip host discovery
-PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports
-PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes
-PO[protocol list]: IP Protocol Ping
-n/-R: Never do DNS resolution/Always resolve [default: sometimes]
–dns-servers <serv1[,serv2],…>: Specify custom DNS servers
–system-dns: Use OS’s DNS resolver
–traceroute: Trace hop path to each host
SCAN TECHNIQUES:
-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
-sU: UDP Scan
-sN/sF/sX: TCP Null, FIN, and Xmas scans
–scanflags <flags>: Customize TCP scan flags
-sI <zombie host[:probeport]>: Idle scan
-sY/sZ: SCTP INIT/COOKIE-ECHO scans
-sO: IP protocol scan
-b <FTP relay host>: FTP bounce scan
PORT SPECIFICATION AND SCAN ORDER:
-p <port ranges>: Only scan specified ports
Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
-F: Fast mode – Scan fewer ports than the default scan
-r: Scan ports consecutively – don’t randomize
–top-ports <number>: Scan <number> most common ports
–port-ratio <ratio>: Scan ports more common than <ratio>
SERVICE/VERSION DETECTION:
-sV: Probe open ports to determine service/version info
–version-intensity <level>: Set from 0 (light) to 9 (try all probes)
–version-light: Limit to most likely probes (intensity 2)
–version-all: Try every single probe (intensity 9)
–version-trace: Show detailed version scan activity (for debugging)
SCRIPT SCAN:
-sC: equivalent to –script=default
–script=<Lua scripts>: <Lua scripts> is a comma separated list of
directories, script-files or script-categories
–script-args=<n1=v1,[n2=v2,…]>: provide arguments to scripts
–script-args-file=filename: provide NSE script args in a file
–script-trace: Show all data sent and received
–script-updatedb: Update the script database.
–script-help=<Lua scripts>: Show help about scripts.
<Lua scripts> is a comma-separated list of script-files or
script-categories.
OS DETECTION:
-O: Enable OS detection
–osscan-limit: Limit OS detection to promising targets
–osscan-guess: Guess OS more aggressively
TIMING AND PERFORMANCE:
Options which take <time> are in seconds, or append ‚ms‘ (milliseconds),
’s‘ (seconds), ‚m‘ (minutes), or ‚h‘ (hours) to the value (e.g. 30m).
-T<0-5>: Set timing template (higher is faster)
–min-hostgroup/max-hostgroup <size>: Parallel host scan group sizes
–min-parallelism/max-parallelism <numprobes>: Probe parallelization
–min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: Specifies
probe round trip time.
–max-retries <tries>: Caps number of port scan probe retransmissions.
–host-timeout <time>: Give up on target after this long
–scan-delay/–max-scan-delay <time>: Adjust delay between probes
–min-rate <number>: Send packets no slower than <number> per second
–max-rate <number>: Send packets no faster than <number> per second
FIREWALL/IDS EVASION AND SPOOFING:
-f; –mtu <val>: fragment packets (optionally w/given MTU)
-D <decoy1,decoy2[,ME],…>: Cloak a scan with decoys
-S <IP_Address>: Spoof source address
-e <iface>: Use specified interface
-g/–source-port <portnum>: Use given port number
–proxies <url1,[url2],…>: Relay connections through HTTP/SOCKS4 proxies
–data-length <num>: Append random data to sent packets
–ip-options <options>: Send packets with specified ip options
–ttl <val>: Set IP time-to-live field
–spoof-mac <mac address/prefix/vendor name>: Spoof your MAC address
–badsum: Send packets with a bogus TCP/UDP/SCTP checksum
OUTPUT:
-oN/-oX/-oS/-oG <file>: Output scan in normal, XML, s|<rIpt kIddi3,
and Grepable format, respectively, to the given filename.
-oA <basename>: Output in the three major formats at once
-v: Increase verbosity level (use -vv or more for greater effect)
-d: Increase debugging level (use -dd or more for greater effect)
–reason: Display the reason a port is in a particular state
–open: Only show open (or possibly open) ports
–packet-trace: Show all packets sent and received
–iflist: Print host interfaces and routes (for debugging)
–log-errors: Log errors/warnings to the normal-format output file
–append-output: Append to rather than clobber specified output files
–resume <filename>: Resume an aborted scan
–stylesheet <path/URL>: XSL stylesheet to transform XML output to HTML
–webxml: Reference stylesheet from Nmap.Org for more portable XML
–no-stylesheet: Prevent associating of XSL stylesheet w/XML output
MISC:
-6: Enable IPv6 scanning
-A: Enable OS detection, version detection, script scanning, and traceroute
–datadir <dirname>: Specify custom Nmap data file location
–send-eth/–send-ip: Send using raw ethernet frames or IP packets
–privileged: Assume that the user is fully privileged
–unprivileged: Assume the user lacks raw socket privileges
-V: Print version number
-h: Print this help summary page.
EXAMPLES:
nmap -v -A scanme.nmap.org
nmap -v -sn 192.168.0.0/16 10.0.0.0/8
nmap -v -iR 10000 -Pn -p 80
SEE THE MAN PAGE (http://nmap.org/book/man.html) FOR MORE OPTIONS AND EXAMPLES

[collapse]

3. Die Verwendung und die wichtigsten Optionen von NMap

Die NMap Syntax ist ziemlich simpel:

nmap [Optionen falls nötig] [Domain oder IP des Ziels]

Aber auch ohne Optionen arbeitet NMap:

nmap3

NMap hat nun das System selbst (das repräsentiert localhost) nach offenen TCP Ports gescannt. Der Port Bereich war dabei nicht der Gesamte (1 – 65535), sondern nur verbreitete Ports wurden überprüft.

Output Erklärung

PORT = [Portnummer]/[Protokoll]

STATE = Zeigt an, ob ein Port offen, geschlossen, filtered usw ist. Mehr Infos dazu hier: http://nmap.org/book/man-port-scanning-basics.html

SERVICE = Der Name des Services der i.d.R. hinter diesem Port läuft.

[collapse]

Die wichtigsten NMap Optionen und Switches

-sn > Pingt nur Ports an, statt sie wirklich zu „untersuchen“

-sU > Scannt UDP Ports statt TCP (sollte in Verbindung mit dem -T Switch genutzt werden)

-sO > Scannt das IP Protokoll

-p > Port Angabe; kann ein einzelner Port (z.B. „-p 22“) sein, aber auch Port Bereiche (z.B. „-p 1-443“)

-F > Fast Mode; macht man keine Port Angabe, nutzt aber diesen Switch, werden weniger Ports gescannt als der Standard Scan abdeckt

-sV > Service/Version; versucht, den Namen des Services und dessen Version hinter einem Port herauszufinden:

nmap4

In diesem Falle hat das Herausfinden der Version nur bei OpenSSH geklappt.

–version-intensity [Stufe von 0 bis 9] > Gibt die Stufe an, wie „hartnäckig“ NMap versuchen soll, die (richtige) Version eines Services herauszufinden. Je höher die Stufe, desto mehr Zeit wird beansprucht, bis NMap ein Ergebnis ausgibt.

-O > OS Detection; NMap wird versuchen, das Betriebssystem des Hosts herauszufinden

–osscan-limit > NMap wird ungefähr ausgeben, welches OS auf dem Host läuft

–osscan-guess > NMap wird aggressiv versuchen, das richtige OS des Hosts herauszufinden

-T [Wert von 0 – 5] > Timing Template; je höher der Wert, desto schneller aber auch inakurater wird NMap arbeiten. Sollte bei UDP Scans genutzt werden, da diese ansonsten einige Zeit in Anspruch nehmen, nutzt man diesen Switch nicht

-S [gespoofte Quell-IP] > NMap wird versuchen, die IP des Systems auf dem es läuft, zu spoofen, sodass beim Ziel eine falsche IP geloggt wird. Funktioniert nicht immer und der Switch -Pn sowie -e wird meist nötig sein

-e [Interface] > Sagt NMap, über welches W/LAN Interface es arbeiten soll (verfügbare Interfaces siehe „ifconfig“)

-g [Quell-Port] > Gibt an, welcher lokaler Port für die ausgehenden Verbindungen genutzt werden soll

–spoof-mac [MAC] > NMap wird versuchen, die MAC des genutzten Interface zu spoofen

-v > Verbose; NMap wird mehr „reden“ als sonst

-vv > Very Verbose; NMap wird noch mehr „sagen“

–open > Im Output werden nur offene Ports erscheinen

–packet-trace > Jedes gesendete und empfangene Paket wird angezeigt werden. Sieht nett aus 😉

nmap5

-6 > Aktiviert IPv6 Scanning

-A > fasst einige Funktionen zusammen: die Erkennung des OS, der Version der Services, scannt nach Scripten und zeigt die Traceroute

Abschließend noch ein paar Befehls-Beispiele:

nmap -sV –version-intensity 7 –open [Host]

nmap -sU -T 3 -sV [Host]

nmap -Pn -p 22 -sV –version-intensity 9 -T 0 -6 -S 13.37.0.0 –spoof-mac 00:11:22:33:44:55 -e wlan0 [Host]

Der letzte Befehl wird Port 22 (-p 22) des Hosts genauestens untersuchen (–version-intensity 9), versuchen, die Version des Services dahinter herauszufinden (-sV), sich dabei viel Zeit lassen (-T 0), davon ausgehen, dass der Host definitiv online ist (-Pn), auch über IPv6 scannen (-6), die Quell-IP zu 13.37.0.0 spoofen (-S 13.37.0.0), sowie die MAC des Interface (–spoof-mac …) und das alles über das Interface wlan0 (-e wlan0).

Viel Spaß beim Experimentieren mit NMap 🙂

Rechtliche Infos zur Nutzung von NMap: http://nmap.org/book/legal-issues.html

[HowTo] Kompilieren und nutzen von NMap unter Linux
Markiert in:                                                                                                                                                                                             

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*