ROOT ON FIRE Security, Monitoring, Networking, Linux

6Nov/090

Nmap 5.0 – Howto Teil 2: Host-Erkennung

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 Beispiel ausschließlich scanme.nmap.org und meinen eigenen PC benutzt!

In einem großen Netzwerk ist es wichtig, zuallererst die interessanten Hosts zu definieren. D.h. im ersten Schritt herauszufinden, welche Geräte gerade aktiv sind. Aus Ressourcen technischen und zeitlichen Gründen macht es wenig Sinn jeden einzelnen theoretisch verfügbaren Host bzw. IP-Adresse im Netz zu scannen. Da man seine Systeme auf verschiedenste Arten vor Portscanns schützen und verbergen kann, bietet Nmap für Angreifer viele unterschiedliche Ansätze Hosts zu erkennen und analysieren.

-sL (List-Scan)
Ein List-Scan gibt eine Liste aller definierten Ip-Adressen aus und führt noch eine Reverse-DNS-Auflösung aus. Zusätzlich wird die Summe der Zieladressen ausgegeben.
Da es bei einem List-Scan nur um eine Liste der Zieladressen geht ist dieser nicht mit anderen "höheren" Funktionen kompinierbar. Mit einem List-Scan kann man sich einen schnellen Überblick im Netzwerk verschaffen und sicherstellen, dass man sauber definierte Zielhosts für weitere Scans im Netzwerk hat. Meist sagen die Hostnamen bereits viel über die Funktion bzw. Rolle im Netzwerk aus, z.B. fw.salzburg (Firewall in Salzburg), dc.01 (erster Domaincontroler), ups.server01 (Server USV) usw... Administratoren sollten in regelmäßigen Abständen einen List-Scan durchführen und verdächtige bzw. unbekannte Geräte genauer überprüfen.

r-o-f:~# nmap -sL 64.13.134.52

Starting Nmap 5.00 ( http://nmap.org ) at 2009-12-17 23:11 CET
Host scanme.nmap.org (64.13.134.52) not scanned
Nmap done: 1 IP address (0 hosts up) scanned in 0.02 seconds

-sP (Ping-Scan)
Ein Ping-Scan ist eine erweiterte Form des List-Scans. Der Unterschied besteht darin, dass bei einem Ping-Scan ein ICMP Echo-Request und ein TCP-ACK-Paket an den Zielhost geschickt wird und so überprüft wird, ob der Host aktiv (=verfügbar) ist. Nmap führt auch bei einem Ping-Scan eine Reverse-DNS-Auflösung durch und gibt zusätzlich bei aktiven Hosts noch die MAC Adresse inkl. Herstellerkennung (Hersteller Kennungen)aus, am Ende findet man die Anzahl der gesammten IP-Apressen im Zielnetzwerk und die Anzahl der aktiven Hosts.
Ein Ping-Scan verursacht nur unwesentlich mehr Lärm im Netzwerk als ein List-Scan und wird deshalb normalweise auch nicht von einem Netzwerk oder Host IDS erkannt.
Netzwerkadministratoren können mit dieser Methode schnell herausfinden, welche Hosts im Netzwerk verfügbar sind.
Das könnte man auch mit einem Ping-Sweep machen, jedoch ist ein Nmap-Scan deutlich effizienter als ein Ping auf die Broadcast-Adresse, da viele Hosts so konfiguriert sind, dass sie auf Broadcast Anfragen nicht reagieren. Dieser Scan sollte mit root-Rechten durchgeführt werden, da sonst nur ein SYN-Paket verschickt wird.
Ein Ping-Scan kann mit weiteren Erkennungsmethoden (außer -PN) kombiniert werden.

r-o-f:~# nmap -sP 64.13.134.52

Starting Nmap 5.00 ( http://nmap.org ) at 2009-12-17 23:11 CET
Host scanme.nmap.org (64.13.134.52) is up (0.20s latency).
Nmap done: 1 IP address (1 host up) scanned in 0.23 seconds

-PN (Ping abschalten)

-PN deaktiviert die Statuserkennung ob aktiv oder down komplett. Bei allen Scans versucht Nmap im Voraus zu überprüfen, ob der Host überhaupt aktiv ist und scannt diesen dann stärker (Port-Scans, Versionserkennung etc...) Eine exakte Zieldefinition wird wie bei einem List-Scan übersprungen. Bei Zielen im LAN führt Nmap trotzdem einen ARP-Scan durch, da es die MAC-Adresse zum Scannen benötigt.

r-o-f:~# nmap -PN 64.13.134.52

Starting Nmap 5.00 ( http://nmap.org ) at 2009-12-17 22:47 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
113/tcp   closed auth
31337/tcp closed Elite

Nmap done: 1 IP address (1 host up) scanned in 24.98 seconds

-PS<Port-Liste> (TCP-SYN)

Bei diesem Scan muss mind. ein Port definiert werden, z.B. -PS20-22,80,443 (FTP, SSH, HTTP, HTTPS). Zwischen -PS und der Portnummer darf kein Leezeichen stehen. Die Syntax ist wie pei -p nur dürfen hier keine Porttypenbezeichner definiert werden. Nmap versendet hier ein TCP-Paket mit gesetztem SYN-Flag was für das Zielsystem bedeutet hier wird versucht eine Verbindung herzustellen.
Wenn der Port offen ist, antwortet der Zielhost mit einem SYN/ACK-TCP-Paket und Nmap bricht dann die Verbindung mit einem RST-Paket (reset) ab, wenn der Port geschlossen ist sendet der Host ein RST-Paket. Es ist egal, wie der Host antwortet, hauptsache er antwortet und dadurch weiß Nmap, dass der Host aktiv ist. Wenn keine Ports angegeben werden wird Standard-Port 80 verwendet.

r-o-f:~# nmap -PS20-22,80,443 64.13.134.52

Starting Nmap 5.00 ( http://nmap.org ) at 2009-12-17 22:54 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
113/tcp   closed auth
31337/tcp closed Elite

Nmap done: 1 IP address (1 host up) scanned in 12.82 seconds

-PA<Port-Liste> (TCP-ACK)

Bei diesem Scan wird im TCP-Paket das ACK-Flag anstelle des SYN-Flag gesetzt wird. Auf ein unaufgefordertes ACK-Flag sollte immer ein Host sofort mit einem RST-Paket antworten.
Standardmäßig wird Port 80 verwendet, wenn der Scan ohne weitere Parameter aufgerufen wird. Dieser Scan funktioniert nur mit root-Rechten.

Der Grund für SYN- und ACK-Ping Test liegt darin, dass z.B. iptables mit der Funktion --syn Verbindungsversuche (TCP-SYN-Pakete) von außen einfach blockt, hier würde ein ACK-Ping-Scan Abhilfe schaffen. Die iptables Funktion --state kategorisiert Pakete und verwirft unerwartete TCP-ACK-Pakete, hier hat man mit einem SYN-Ping-Scan evtl. Erfolg.

r-o-f:~#  nmap -PA 64.13.134.52

Starting Nmap 5.00 ( http://nmap.org ) at 2009-12-17 22:51 CET
Note: Host seems down. If it is really up, but blocking our ping probes, try -PN
Nmap done: 1 IP address (0 hosts up) scanned in 2.19 seconds

-PU<Port-Liste> (UDP)

Wenn ein leeres UDP Paket auf einen geschlossenen Port trifft, sollte der Host ein ICMP-Paket zurückschicken und darauf hinweisen, ist der Port jedoch offen, wird das Paket im Normalfall einfach verworfen. Deshalb nimmt Nmap standardmäßig UDP-Port 31338, da die Wahrscheinlichkeit relativ gering ist, dass dieser Port benutzt, also offen ist.
Der Vorteil gegenüber den TCP Scans ist, dass es Firewalls gibt, die nur TCP-Pakete prüfen und UDP-Pakete einfach durchlassen.

r-o-f:~# nmap -PU 64.13.134.52

Starting Nmap 5.00 ( http://nmap.org ) at 2009-12-17 22:52 CET
Note: Host seems down. If it is really up, but blocking our ping probes, try -PN
Nmap done: 1 IP address (0 hosts up) scanned in 2.19 seconds

-PE (ICMP Typ 8/0)

Nmap schickt einfach einen Standard-Ping (ICMP Typ 8 = Echo Request) an den Zielhost und wartet auf eine Antwort (ICMP TYP 0 = Echo Reply). Gerade im Internet verhindern viele Firewalls und Hosts diese Anfragen und verwerfen solche Pakete einfach.

r-o-f:~# nmap -PE 64.13.134.52

Starting Nmap 5.00 ( http://nmap.org ) at 2009-12-17 23:01 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
70/tcp  closed gopher
80/tcp  open   http
113/tcp closed auth

Nmap done: 1 IP address (1 host up) scanned in 22.46 seconds

-PP (ICMP Typ 13/14)

Nmap schickt anstelle eines Standard ICMP-Typ 8 Paketes ein ICMP-Typ 13 Paket (Timestamp) und wartet auf ein ICMP-Typ 14 (Timestamp Reply) Paket.

r-o-f:~# nmap -PP 192.168.178.5

Starting Nmap 5.00 ( http://nmap.org ) at 2009-12-17 23:25 CET
Interesting ports on 192.168.178.5:
Not shown: 999 filtered ports
PORT     STATE SERVICE
3389/tcp open  ms-term-serv
MAC Address: 00:1E:0B:25:F5:46 (Hewlett Packard)

Nmap done: 1 IP address (1 host up) scanned in 18.07 seconds

-PM (ICMP Typ 17/18)

Nmap schickt ein ICMP-Typ 17 (Address Mask Request) Paket an den Zielhost und wartet auf ein ICMP-Typ 18 (Address Mask Reply) Paket.

r-o-f:~# nmap -PM 192.168.178.5

Starting Nmap 5.00 ( http://nmap.org ) at 2009-12-17 23:27 CET
Interesting ports on 192.168.178.5:
Not shown: 999 filtered ports
PORT     STATE SERVICE
3389/tcp open  ms-term-serv
MAC Address: 00:1E:0B:25:F5:46 (Hewlett Packard)

Nmap done: 1 IP address (1 host up) scanned in 18.25 seconds

Wenn bei einer Firewall ausdrücklich ICMP-Typ 8 (Echo Request) Pakete geblockt werden, kann es sein dass eine der beiden oberen Anfragen (-PP, -PM) durchgelassen werden.

-PO<Protokol-Liste> (UDP)

Nmap benutzt bei dieser Option einen IP-Protokoll-Ping um aktive Hosts du identifizieren, dabei werden IP-Pakete versendet, die in ihrem IP-Header eine Protokollnummer gesetzt haben.
Wenn man keine Protkolle definiert, werden standardmäßig mehrere IP-Pakete verschickt: ICMP, IGMP, IP-in-IP. Syntax ist wie bei -PS.
Eine vollständige Liste der Protokollnummern findet man hier: http://www.iana.org/assignments/protocol-numbers/

r-o-f:~# nmap -PO 64.13.134.52

Starting Nmap 5.00 ( http://nmap.org ) at 2009-12-17 22:59 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
113/tcp   closed auth
31337/tcp closed Elite

Nmap done: 1 IP address (1 host up) scanned in 18.66 seconds

-PR (ARP)
Wenn Nmap in einem lokalen Netzwerk einen ICMP-ECHO-Request schicken will, muss der Host auf dem Nmap läuft die Hardware-Adresse (ARP) des Zielhosts ermitteln. Da dies gerade bei umfangreichen Zieldefinitionen sehr langsam sein ist, kann Nmap auf Grund seiner optimierten Algorithmen die ARP-Anfrage selbst deutlich schneller durchführen.

r-o-f:~# nmap -PR 192.168.178.5

Starting Nmap 5.00 ( http://nmap.org ) at 2009-12-17 23:17 CET
Interesting ports on 192.168.178.5:
Not shown: 999 filtered ports
PORT     STATE SERVICE
3389/tcp open  ms-term-serv
MAC Address: 00:1E:0B:25:F5:46 (Hewlett Packard)

Nmap done: 1 IP address (1 host up) scanned in 18.09 seconds

Zusatzoptionen

--send-ip
In einem lokalen Netz kann Nmap direkt ARP-Anfragen ausführen und kann so deutlich schneller als mit z.B. Ping-Anfragen aktive Hosts identifizieren. Diese Methode benutzt Nmap auch bei anderen Scans, wenn die Hosts im lokalen Netz liegen. Mit --send-ip kann man den ARP-Scan deaktivieren.

--traceroute
Mit dieser Zusatzoption macht Nmap nach einem erfolgreichem Hostscan noch einen Tracerroute.

r-o-f:~# nmap -PS 64.13.134.52 --traceroute

Starting Nmap 5.00 ( http://nmap.org ) at 2009-12-17 23:04 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
113/tcp   closed auth
31337/tcp closed Elite

TRACEROUTE (using port 25/tcp)
HOP RTT    ADDRESS
1   1.13   vood.lan (192.168.178.2)
2   10.98  XLFSSSPL01.net.uta.at (62.218.4.25)
3   6.71   dsl-ptp-5-105.net.uta.at (62.218.5.105)
4   99.00  tele2-TGigE-vie.net.uta.at (212.152.189.66)
5   14.25  wen1-core-1.pos0-0.swip.net (130.244.205.49)
6   29.36  fra36-core-3.pos0-12-1-0.swip.net (130.244.207.49)
7   31.68  some.frankfurt.router.telia.net (130.244.200.102)
8   26.09  ffm-bb2-link.telia.net (80.91.251.162)
9   38.66  prs-bb2-pos7-0-0.telia.net (213.248.65.117)
10  115.62 nyk-bb1-link.telia.net (80.91.251.96)
11  187.09 sjo-bb1-link.telia.net (80.91.254.177)
12  198.66 layer42-ic-120233-sjo-bb1.c.telia.net (80.239.193.126)
13  200.76 xe6-2.core1.svk.layer42.net (69.36.239.221)
14  189.50 scanme.nmap.org (64.13.134.52)

Nmap done: 1 IP address (1 host up) scanned in 31.81 seconds

-n
Nmap führt keine Reverse-DNS-Auflösung bei aktive Hosts durch, diese Option kann bei größeren Netzen viel Zeit einsparen.

r-o-f:~# nmap -PE -n 64.13.134.52

Starting Nmap 5.00 ( http://nmap.org ) at 2009-12-17 23:07 CET
Interesting ports on 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
113/tcp   closed auth
31337/tcp closed Elite

Nmap done: 1 IP address (1 host up) scanned in 13.14 seconds

-R
Versucht bei allen IP-Adressen eine Reverse-DNS-Auflösung durchzuführen. (Standard: nur bei antwortenden Adressen)

--system-dns
Nmap benutzt zur DNS-Auflösung die Standard DNS-Server auf dem System (resolv.conf), von dem es ausgeführt wird. Wenn man Nmap mit dieser Option aufruft, wird die Auflösungsmethode des lokalen Systems verwendet. Diese Option ist nur in sehr seltenen Fällen nützlich.

--dns-servers
Mit dieser Option kann man zusätzliche Nameserver definieren, bzw. alternative benutzen falls die standard DNS Server nicht saubere rDNS-Informationen liefern.

Beispiel mit DNS-Server von Open DNS

r-o-f:~# nmap -PE --dns-servers 208.67.222.222 64.13.134.52

Starting Nmap 5.00 ( http://nmap.org ) at 2009-12-17 23:09 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
113/tcp   closed auth
31337/tcp closed Elite

Nmap done: 1 IP address (1 host up) scanned in 18.86 seconds

Quelle: nmap.org

Nmap 5.0 - Howto Teil1: Ziele richtig definieren

About Moritz TANZER

Sysadmin
Kommentare (0) Trackbacks (0)

Zu diesem Artikel wurden noch keine Kommentare geschrieben.


Kommentar schreiben


Noch keine Trackbacks.

Get Adobe Flash playerPlugin by wpburn.com wordpress themes