nmap ist ein mächtiges Werkzeug um Netzwerke zu untersuchen und stellt seit vielen Jahren den Standard unter den Netzwerktools dar. In der Regel erfolgt der Aufruf von nmap zusammen mit einer IP-Adresse, es kann aber euch ganze Adressbereiche und einzelne Netzte untersuchen. Wird beispielsweise ein Scan in einem angegebenen Subnetz mit der Netzwerkmaske 255.255.255.0 initiiert, liefert es die
Ergebnisse, indem es die Ports mit dazugehörigen Dienst tabellarisch auflistet:

nmap 192.168.1.0/24

Ist ein z.B. Raspberry mit offenen ssh Port 22 erreichbar oder läuft ein Remotedesktop, welcher typischerweise auf Port 5900 läuft, so werden diese ausgegeben.
Das ganze funktioniert auch dann, wenn ein Subnetz außerhalb des eigenen Subnetz oder gar wenn ein fremder Host im Internet aufgerufen wird. Werden keine weiteren Argumente beim Aufruf von nmap angegeben, erfolgt ein sogenannter TCP-SYN-SCAN. Dabei sendet ein Client ein SYN packet zum Server und gibt vor, eine Verbindung zum entsprechenden Port aufzubauen. Der Server antwortet mit einem SYN/ACK Paket falls der Port geöffnet ist. Der Client wiederum antwortet mit einem RST Paket, welches der Server als Error interpretiert. Der Port beim Server bleibt jedoch geöffnet. Antwortet hingegen der Server auf ein SYN Paket mit einem RST Paket, weist dies auf einen geschlossenen Port hin. Sendet der Server gar kein Paket, dann ist ein Paketfilter vorgeschaltet. Dieses Verfahren führt jedoch dazu, das Verbindungen in einem half-open state verbleiben, da ein Three-Hand-Shake nicht zu Stande gekommen ist. Ein Scan dieser Art umfasst die 1000 am weitesten verbreiteten Ports.  

Veranschaulichen lässt sich das Verhalten von nmap mit Wireshark, welches den Netzwerkverkehr mitschneidet. Wireshark ist auf der Kali Linux Distribution vorinstalliert und bietet einen guten Überblick über die ein- und ausgehenden Verbringungen eines gewählten Netzwerkadapters. Im folgenden sind sowohl SYN Pakete seitens des Clients als auch SYN/ACK und RST Pakete des Servers im Mitschnitt sichtbar.

 


Beispiele:


1)    nmap -v -n 192.168.1.0/24 | grep -A 1 "scan report" (grep durchsucht Ausgabe nach dem Text "scan report", -A 1 gibt an, wie viele Zeilen nach der gefundenen Textzeile zusätzlichen ausgegeben werden sollen.)

2)    nmap -A 192.168.1.1 (erweiterte Ausgabe, Auskunft über einzelne Server, z.b. lighttpd, etc.)

3)    nmap -n 192.168.1.1 (gibt nur die IP Adresse an, keine Namensauflösung)

4)    nmap -p2100-2200 192.168.1.1 (nur Ausgabe des angegebenen Portbereichs)

nmap Argumente:
-A für erweiterten Scan (aggressive Modus)
-T4 für schnellere Ausführung
-v ausführliche Ausgabe
-n keine Namensauflösung
-p nur Scan im angegebenen Portbereich (Beispiel: -p0- prüft alle Ports)
-sS für SYN Scan (Default Modus, schnell um viele Tausend Ports zu scannen, unter Rootrechten gestartet oft weggelassen)
-F Scan auf wenige Default Ports begrenzt
-sV sind offene Ports erkannt worden, dann Angabe von Anwendung, Dienst mit Versionshinweis
-F (fast Scan)
-oA (generiert Output File im xml Format)

 

Erweiterung von nmap mittels vulscan:

Eine weitere Möglichkeit die Funktionen von nmap zu erweitern, ist die Möglichkeit scripts via einer Nmap Scripting Engine einzubinden. Zusätzlich zu den Built-in Scripts haben Anwender damit die Möglichkeit eigene Scripts zu erstellen und anderen Usern zur Verfügung zu stellen. Das nmap-vulners Script ist ein mächtiges Instrument, welches relevante CVE (Common Vulnerabilities and Exposures) Informationen zu gefundenen Ports wie SSH, RDP oder SMB zur Verfügung stellt. Um nmap-vulners einzubinden wechselt man zunächst in das Verzeichnis der nmap Scripts, beispielswsie in /usr/share/nmap/scripts. Mit

git clone https://github.com/vulnersCom/nmap-vulners.git

wird das Script in den aktuellen Ordner kopiert. Mit dem Kommando

nmap --script=vuln -F 192.168.1.5

prüft nmap nun auf bekannte Schwachstellen und gibt diese aus. Am Beispiel eines Raspberry im eigenen LAN sähe die Ausgabe folgendermaßen aus:


Soweit so gut, es konnten keine Schwachstellen erkannt werden. Das ist aber keinesfalls die Regel. Unter dem Stichwort ssh finden sich in der Datenbank seit 1999 524 Einträge allein zum Thema ssh.

 

 

Weblink zur CVE Datenbank:
http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=ssh

Add comment

Submit

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.