Nmap, auch bekannt als Network Mapper, ist ein vielseitiges Toolkit für die Durchführung von Funktionalitäts- und Penetrationstests in Netzwerken. Zu seinen Kernfunktionen gehören das Scannen von Ports und die Identifizierung von Schwachstellen.
Die Nmap Scripting Engine (NSE) ist eine der populärsten und leistungsfähigsten Komponenten von Nmap. Diese Skripte, die speziell für das Scannen auf Schwachstellen entwickelt wurden, werden häufig von Penetrationstestern und Sicherheitsforschern verwendet, um bekannte Sicherheitslücken aufzudecken.
Die Datenbank „Common Vulnerabilities and Exposures“ (CVE) listet öffentlich gemeldete Sicherheitsprobleme auf. Sie dient als maßgebliche Referenz für die Identifizierung von Schwachstellen und Bedrohungen in Informationssystemen.
Dieser Artikel beleuchtet die Verwendung von Nmap für das Aufspüren von Schwachstellen.
Beginnen wir!
Nmap Installation
Nmap ist in den meisten Linux-Distributionen bereits vorinstalliert. Sollte dies nicht der Fall sein, ist eine manuelle Installation notwendig. Dies kann unkompliziert mit folgendem Befehl durchgeführt werden:
apt-get install nmap
Alternativ kann Nmap auch durch Klonen des offiziellen Git-Repositorys installiert werden.
git clone https://github.com/nmap/nmap.git
Navigieren Sie anschließend in das erstellte Verzeichnis und installieren Sie die benötigten Abhängigkeiten mit folgenden Befehlen:
./configure make make install
Die aktuelle Version von Nmap sowie Binärpakete für Windows, macOS und Linux (RPM) sind hier verfügbar.
Schwachstellenscans mit Nmap
Für die CVE-Erkennung innerhalb der Nmap-Umgebung sind vor allem die Skripte ’nmap-vulners‘, ‚vulscan‘ und ‚vuln‘ von Bedeutung. Diese Skripte ermöglichen es, kritische Sicherheitslücken in Systemen aufzudecken.
Nmap Vulners
Einer der gängigsten Schwachstellenscanner ist Nmap-vulners. Wir betrachten nun die Einrichtung dieses Tools und die Durchführung eines einfachen CVE-Scans. Die Nmap Script Engine untersucht HTTP-Antworten, um CPEs für das jeweilige Skript zu identifizieren.
Installation
Um das Nmap-vulners-Skript zu installieren, navigieren Sie mit dem folgenden Befehl in das Nmap-Skriptverzeichnis:
cd /usr/share/nmap/scripts/
Als nächstes klonen Sie das Git-Repository:
git clone https://github.com/vulnersCom/nmap-vulners.git
Nach dem Klonen des Repositorys sind keine weiteren Konfigurationsschritte erforderlich. Das Tool wird automatisch eingerichtet.
Mit dem Befehl ‚ls‘ können Sie die in der Nmap-Schwachstellendatenbank enthaltenen NSE-Skripte einsehen. Dies zeigt alle Skripte mit der Dateiendung .nse auf der Kommandozeile an.
Verwendung
Die Verwendung von NSE-Skripten ist unkompliziert. Sie übergeben einfach das Argument ‚-script‘ an Ihren Nmap-Befehl und spezifizieren so, welches NSE-Skript verwendet werden soll.
nmap -sV --script vulners [--script-args mincvss=<arg_val>] <Ziel>
Beachten Sie, dass die Option „-sV“ beim Verwenden von NSE-Skripten notwendig ist. Nmap-Schwachstellen können nicht auf die Vulners-Exploit-Datenbank zugreifen, wenn keine Versionsinformationen von Nmap vorliegen. Der Parameter -sV ist somit unerlässlich.
Beispielbefehl
Die Syntax ist recht einfach. Rufen Sie das Skript mit der Option ‚–script‘ auf und geben Sie die Schwachstellen-Engine und das Ziel an, um mit dem Scannen zu beginnen.
nmap -sV --script nmap-vulners/ <Ziel>
Um spezifische Ports zu scannen, können Sie die Option ‚-p‘ am Ende des Befehls hinzufügen und die gewünschten Portnummern angeben.
nmap -sV --script nmap-vulners/ <Ziel> -p80,223
Nmap – Verwundbar
NSE-Skripte werden nach Kategorien klassifiziert, denen jedes Skript zugeordnet ist. Dazu gehören unter anderem Authentifizierung, Broadcast, Brute Force, Intrusive, Malware, Safe, Version und Vuln. Eine detaillierte Übersicht über alle Kategorietypen und ihre Phasen finden Sie hier.
Die Skripte der Kategorie ‚Vuln‘ suchen nach bestimmten bekannten Schwachstellen und geben nur dann Informationen aus, wenn solche im Zielsystem identifiziert wurden.
nmap -sV --script vuln <Ziel>
Nmap-Vulscan
Vulscan ist ein NSE-Skript, das Nmap dabei unterstützt, auf Grundlage von Dienst- und Versionserkennungen Schwachstellen zu identifizieren. Vulscan fungiert als Modul für Nmap und verwandelt es in einen Schwachstellenscanner. Die Nmap-Option -sV ermöglicht die Versionserkennung pro Dienst, die verwendet wird, um potenzielle Exploits für die erkannten Schwachstellen im System zu identifizieren.
Aktuell sind die folgenden Datenbanken vorinstalliert:
- Exploitdb.csv
- osvdb.csv
- securitytracker.csv
- openvas.csv
- scipvuldb.csv
- xforce.csv
- securityfocus.csv
- cve.csv
Installation
Um Vulscan zu installieren, navigieren Sie mit dem folgenden Befehl in das Nmap-Skriptverzeichnis:
cd /usr/share/nmap/scripts/
Als nächstes klonen Sie das Git-Repository und installieren alle benötigten Abhängigkeiten:
git clone https://github.com/scipag/vulscan.git ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan
Vulscan nutzt vorkonfigurierte Datenbanken, die lokal auf Ihrem Rechner gespeichert sind. Um die Datenbank zu aktualisieren, wechseln Sie in das Updater-Verzeichnis. Verwenden Sie den folgenden Befehl, um in das Updater-Verzeichnis zu gelangen:
cd vulscan/utilities/updater/
Ändern Sie die Berechtigungen der Datei, sodass diese im System ausgeführt werden kann:
chmod +x updateFiles.sh
Abschließend aktualisieren Sie die Exploit-Datenbanken mit folgendem Befehl:
./updateFiles.sh
Verwendung
Wir betrachten nun die Verwendung von Vulscan für einen Nmap-Schwachstellenscan. Das Vulscan NSE-Skript kann analog zu nmap-vulners verwendet werden.
nmap -sV --script vulscan <Ziel>
Standardmäßig durchsucht Vulscan alle Datenbanken gleichzeitig, was zeitintensiv sein kann. Mit dem Parameter ‚vulscandb‘ können Sie jeweils nur eine CVE-Datenbank angeben.
--script-args vulscandb=Datenbankname
Beispielbefehl
nmap -sV --script vulscan --script-args vulscandb=exploit.csv <Ziel> -p 80,233
Individuelle Schwachstellen-Scans
Einzelne Schwachstellenscans können auch mit spezifischen Skripten innerhalb jeder Kategorie durchgeführt werden. Hier ist eine Liste aller 600+ NSE-Skripte und 139 NSE-Bibliotheken.
Beispiele
- http-csrf: Dieses Skript erkennt Cross-Site Request Forgery (CSRF)-Schwachstellen.
nmap -sV --script http-csrf <Ziel>
- http-sherlock: Entwickelt, um die „Shellshock“-Schwachstelle in Webanwendungen aufzudecken.
nmap -sV --script http-sherlock <Ziel>
- http-slowloris-attack: Dieses Skript prüft einen Webserver auf Anfälligkeit für einen Slowloris-DoS-Angriff, ohne tatsächlich einen Angriff zu starten.
nmap -sV --script http-slowloris-check <Ziel>
- http-vmware-path-vuln: Dieses Skript testet VMWare ESX, ESXi und Server auf eine Path-Traversal-Schwachstelle.
nmap -sV --script http-vmware-path-vuln <Ziel>
- http-passwd: Versucht, /etc/passwd oder boot.ini abzurufen, um festzustellen, ob ein Webserver anfällig für Directory Traversal ist.
nmap -sV --script http-passwd <Ziel>
- http-internal-ip-disclosure: Diese Prüfung ermittelt, ob der Webserver seine interne IP-Adresse preisgibt, indem er eine HTTP/1.0-Anfrage ohne Host-Header sendet.
nmap -sV --script http-internal-ip-disclosure <Ziel>
- http-vuln-cve2013-0156: Erkennt Ruby on Rails-Server, die anfällig für DoS-Angriffe und Command Injection sind.
nmap -sV --script http-vuln-cve2013-0156 <Zieladresse>
Eine vollständige Liste aller NSE-Skripte der Kategorie „vuln“ finden Sie hier.
Kann Ihr System Nmap-Scans erkennen?
Die Aufklärungsphase ist der erste Schritt beim ethischen Hacking und bei Penetrationstests. Hacker nutzen diese Phase, um Schwachstellen und Sicherheitslücken in einem System zu identifizieren und auszunutzen. Daher sollte es für Abwehrsysteme möglich sein, diese Scans zu erkennen.
Sie erhalten Warnmeldungen, wenn Sie SIEM-Tools (Security Information and Event Management), Firewalls oder andere Abwehrmaßnahmen verwenden. Hier ist eine Auswahl der besten SIEM-Tools zum Schutz Ihres Unternehmens vor Cyberangriffen. Diese Tools können auch Nmap-Scans protokollieren. Schwachstellen-Scans sind wichtig, da eine frühzeitige Erkennung zukünftige Schäden an den Systemen verhindern kann.
Fazit
Ich hoffe, dieser Artikel hat Ihnen ein besseres Verständnis für die Verwendung von Nmap bei Schwachstellen-Scans gegeben.
Möglicherweise sind Sie auch an einer Liste von Open-Source-Web-Security-Scannern zur Identifizierung von Schwachstellen interessiert.