Scannen auf Schwachstellen mit Nmap

NmapNmapBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernst du, wie du mit dem vuln-Skript von Nmap auf Schwachstellen scannst. Dieses Skript hilft, potenzielle Sicherheitslücken zu identifizieren, indem es auf übliche Probleme wie Standardanmeldeinformationen, veraltetes Software und Fehlkonfigurationen überprüft.

Du wirst das vuln-Skript gegen eine Ziel-IP-Adresse ausführen (wir verwenden 127.0.0.1 für Demonstrationszwecke innerhalb der LabEx VM-Umgebung), spezifische Ports scannen, die Ausführlichkeit erhöhen, um detailliertere Ausgabe zu erhalten, die Ergebnisse in eine Datei speichern und dann die identifizierten Schwachstellen im Xfce-Terminal überprüfen und mit den Ergebnissen der Diensterkennung vergleichen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/output_formats("Output Formats") nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/scan_types("Scan Types and Techniques") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/verbosity("Verbosity Levels") nmap/NmapGroup -.-> nmap/os_version_detection("OS and Version Detection") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") nmap/NmapGroup -.-> nmap/scripting_basics("Scripting Engine Basics") nmap/NmapGroup -.-> nmap/script_management("Script Categories and Updating") subgraph Lab Skills nmap/output_formats -.-> lab-547109{{"Scannen auf Schwachstellen mit Nmap"}} nmap/save_output -.-> lab-547109{{"Scannen auf Schwachstellen mit Nmap"}} nmap/scan_types -.-> lab-547109{{"Scannen auf Schwachstellen mit Nmap"}} nmap/target_specification -.-> lab-547109{{"Scannen auf Schwachstellen mit Nmap"}} nmap/verbosity -.-> lab-547109{{"Scannen auf Schwachstellen mit Nmap"}} nmap/os_version_detection -.-> lab-547109{{"Scannen auf Schwachstellen mit Nmap"}} nmap/service_detection -.-> lab-547109{{"Scannen auf Schwachstellen mit Nmap"}} nmap/scripting_basics -.-> lab-547109{{"Scannen auf Schwachstellen mit Nmap"}} nmap/script_management -.-> lab-547109{{"Scannen auf Schwachstellen mit Nmap"}} end

Führe das vuln-Skript mit nmap --script vuln 192.168.1.1 aus

In diesem Schritt werden wir das vuln-Skript von Nmap verwenden, um eine Ziel-IP-Adresse auf bekannte Schwachstellen zu scannen. Das vuln-Skript ist ein leistungsstarkes Tool, das helfen kann, potenzielle Sicherheitslücken in einem System zu identifizieren.

Bevor wir beginnen, besprechen wir kurz, was Nmap-Skripte sind. Nmap-Skripte sind in der Lua-Programmiersprache geschrieben und ermöglichen es Ihnen, die Funktionalität von Nmap zu erweitern. Sie können für eine Vielzahl von Aufgaben verwendet werden, einschließlich der Schwachstellenerkennung, der Diensterkennung und der Netzwerkaufklärung.

Das vuln-Skript ist eine Sammlung von Skripten, die darauf abzielen, häufige Schwachstellen zu identifizieren. Es überprüft eine Vielzahl von Problemen, wie Standardanmeldeinformationen, veraltete Softwareversionen und Fehlkonfigurationen.

Lassen Sie uns beginnen, indem wir die Ziel-IP-Adresse 192.168.1.1 mit dem vuln-Skript scannen. Da 192.168.1.1 eine private IP-Adresse ist, ist es unwahrscheinlich, dass sie direkt von der LabEx VM-Umgebung aus erreichbar ist. Zu Demonstrationszwecken werden wir 127.0.0.1 (localhost) als Ziel verwenden. Dies setzt voraus, dass auf der LabEx VM ein Dienst läuft, den wir scannen können.

Öffnen Sie Ihren Xfce-Terminal und führen Sie den folgenden Befehl aus:

sudo nmap --script vuln 127.0.0.1

Sie werden wahrscheinlich sudo verwenden müssen, da Nmap häufig erhöhte Rechte benötigt, um bestimmte Scans durchzuführen.

Dieser Befehl 告诉 Nmap, das vuln-Skript gegen die IP-Adresse 127.0.0.1 auszuführen. Nmap wird dann versuchen, alle Schwachstellen auf dem Zielsystem zu identifizieren.

Die Ausgabe wird die Ergebnisse des Scans anzeigen. Sie wird alle gefundenen Schwachstellen auflisten, zusammen mit einer Beschreibung des Problems und potenziellen Behebungsmaßnahmen.

Beispielausgabe (die tatsächliche Ausgabe hängt von den auf 127.0.0.1 laufenden Diensten ab):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Other addresses for localhost (alias(es)): localhost

PORT   STATE SERVICE
22/tcp open  ssh
|_ vulners: Could not find vulnerability results.

80/tcp open  http
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_ vulners: Could not find vulnerability results.

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

In diesem Beispiel hat Nmap die Ports 22 und 80 auf 127.0.0.1 gescannt. Das vulners-Skript, das Teil der vuln-Skriptgruppe ist, konnte keine bekannten Schwachstellen für die auf diesen Ports laufenden Dienste finden. Dies bedeutet nicht unbedingt, dass das System vollständig sicher ist, aber es zeigt, dass es keine unmittelbar offensichtlichen Schwachstellen gibt.

Scanne einen bestimmten Port mit nmap --script vuln -p 80 127.0.0.1

Im vorherigen Schritt haben wir alle Ports auf 127.0.0.1 mit dem vuln-Skript gescannt. In diesem Schritt werden wir unseren Scan auf einen bestimmten Port konzentrieren: Port 80. Dies ist nützlich, wenn Sie schnell eine bestimmte Dienstleistung auf Schwachstellen überprüfen möchten, ohne das gesamte System zu scannen. Port 80 wird üblicherweise für HTTP (Web)-Traffic verwendet.

Die -p-Option in Nmap ermöglicht es Ihnen, anzugeben, welche Ports Sie scannen möchten. Sie können einen einzelnen Port, einen Portbereich oder eine komma-getrennte Liste von Ports angeben.

Um nur Port 80 auf 127.0.0.1 mit dem vuln-Skript zu scannen, führen Sie folgenden Befehl in Ihrem Xfce-Terminal aus:

sudo nmap --script vuln -p 80 127.0.0.1

Dieser Befehl 告诉 Nmap, das vuln-Skript gegen Port 80 auf der IP-Adresse 127.0.0.1 auszuführen. Nmap wird dann versuchen, alle mit dem auf diesem Port laufenden Dienst verbundenen Schwachstellen zu identifizieren.

Die Ausgabe wird ähnlich wie im vorherigen Schritt sein, aber sie wird nur die Ergebnisse für Port 80 anzeigen.

Beispielausgabe (die tatsächliche Ausgabe hängt von den auf 127.0.0.1 laufenden Diensten ab):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Other addresses for localhost (alias(es)): localhost

PORT   STATE SERVICE
80/tcp open  http
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_ vulners: Could not find vulnerability results.

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

Wie Sie sehen können, ist die Ausgabe ausschließlich auf Port 80 konzentriert. Das vulners-Skript konnte wiederum keine bekannten Schwachstellen finden.

Das Scannen bestimmter Ports kann die Zeit, die für einen Schwachstellenscan benötigt wird, erheblich reduzieren, insbesondere wenn Sie nur an einer bestimmten Dienstleistung interessiert sind.

Füge die Ausführlichkeit hinzu mit nmap -v --script vuln 192.168.1.1

In diesem Schritt werden wir der Nmap-Scan Ausführlichkeit hinzufügen. Ausführlichkeit bedeutet, dass Nmap detailliertere Informationen über den Scanprozess liefert. Dies kann hilfreich sein, um zu verstehen, was Nmap macht, und um Probleme zu beheben, die auftreten können.

Die -v-Option in Nmap erhöht das Ausführlichkeitslevel. Sie können -v mehrmals verwenden, um die Ausführlichkeit noch weiter zu erhöhen (z.B. -vv oder -vvv).

Um das vuln-Skript gegen 127.0.0.1 mit Ausführlichkeit auszuführen, führen Sie folgenden Befehl in Ihrem Xfce-Terminal aus:

sudo nmap -v --script vuln 127.0.0.1

Dieser Befehl 告诉 Nmap, das vuln-Skript gegen die IP-Adresse 127.0.0.1 auszuführen und detaillierte Ausgabe zu liefern.

Die Ausgabe wird jetzt mehr Informationen über den Scanprozess enthalten, wie die ausgeführten Skripte, die gescannten Ports und die Zeit, die für jeden Schritt benötigt wird.

Beispielausgabe (die tatsächliche Ausgabe hängt von den auf 127.0.0.1 laufenden Diensten ab und wird viel länger als die nicht-ausführliche Ausgabe sein):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
NSE: Loaded 151 scripts for scanning.
Initiating Ping Scan at 10:10
Scanning 127.0.0.1 [4 ports]
Completed Ping Scan at 10:10, 0.00s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 10:10
Completed Parallel DNS resolution of 1 host. at 10:10, 0.00s elapsed
Initiating SYN Stealth Scan at 10:10
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 22/tcp on 127.0.0.1
Discovered open port 80/tcp on 127.0.0.1
Completed SYN Stealth Scan at 10:10, 0.06s elapsed (1000 total ports)
Initiating Service scan at 10:10
Scanning 2 services on localhost (127.0.0.1)
Completed Service scan at 10:10, 6.41s elapsed (2 services total)
NSE: Script scanning 127.0.0.1.
NSE: Starting runlevel 1 (of 1) scan.
Initiating NSE at 10:10
Completed NSE at 10:10, 1.13s elapsed.
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Other addresses for localhost (alias(es)): localhost

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.6p0 Ubuntu 7ubuntu2.4 (protocol 2.0)
|_ vulners: Could not find vulnerability results.
80/tcp open  http    Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_ vulners: Could not find vulnerability results.
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

NSE: Script Post-scanning.
Initiating NSE at 10:10
Completed NSE at 10:10, 0.00s elapsed.
Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 7.70 seconds

Die detaillierte Ausgabe bietet einen viel detaillierteren Überblick über den Scanprozess. Sie können die verschiedenen Stufen des Scans, die ausgeführten Skripte und alle Fehler oder Warnungen, die auftreten können, sehen.

Speichere die Vulnerabilitätsergebnisse mit nmap --script vuln -oN vuln.txt 127.0.0.1

In diesem Schritt werden wir lernen, wie wir die Ergebnisse unseres Nmap-Vulnerabilitätsscans in eine Datei speichern. Dies ist nützlich für spätere Analysen, Berichte oder zum Vergleich von Ergebnissen im Laufe der Zeit.

Nmap bietet mehrere Optionen zum Speichern von Scanergebnissen in verschiedenen Formaten. Die -oN-Option speichert die Ergebnisse im "normalen", menschenlesbaren Format. Andere Optionen umfassen -oX für das XML-Format und -oG für das grepfähige Format.

Um die Ergebnisse des vuln-Skriptscans in einer Datei namens vuln.txt im normalen Format zu speichern, führen Sie folgenden Befehl in Ihrem Xfce-Terminal aus:

sudo nmap --script vuln -oN vuln.txt 127.0.0.1

Dieser Befehl 告诉 Nmap, das vuln-Skript gegen die IP-Adresse 127.0.0.1 auszuführen und die Ergebnisse in der Datei vuln.txt im normalen Ausgabeformat zu speichern. Die Datei vuln.txt wird im aktuellen Verzeichnis (~/project) erstellt.

Nach Abschluss des Scans können Sie den Inhalt der Datei vuln.txt mit einem Texteditor wie nano anzeigen:

nano vuln.txt

Dies wird die Datei vuln.txt im nano-Editor öffnen und Ihnen die Möglichkeit geben, die Scanergebnisse zu überprüfen. Die Ausgabe wird ähnlich sein wie die, die Sie auf dem Bildschirm sehen, wenn Sie Nmap ohne die -oN-Option ausführen.

Beispielinhalt von vuln.txt (der tatsächliche Inhalt hängt von den auf 127.0.0.1 laufenden Diensten ab):

## Nmap 7.80 scan initiated Tue Oct 27 10:15:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Other addresses for localhost (alias(es)): localhost

PORT   STATE SERVICE
22/tcp open  ssh
|_ vulners: Could not find vulnerability results.
80/tcp open  http
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_ vulners: Could not find vulnerability results.

## Nmap done at Tue Oct 27 10:15:07 2023 -- 1 IP address (1 host up) scanned in 7.00 seconds

Sie können auch andere Linux-Befehle verwenden, um die Datei anzuzeigen, wie z.B. cat:

cat vuln.txt

Das Speichern von Scanergebnissen in eine Datei ist ein entscheidender Schritt bei der Vulnerabilitätsbewertung und der Penetrationstestung. Es ermöglicht Ihnen, Ihre Ergebnisse zu dokumentieren und Änderungen im Laufe der Zeit zu verfolgen.

Überprüfe die Schwachstellen im Xfce-Terminal

In diesem Schritt werden wir die Ergebnisse des Schwachstellen-Scans direkt im Xfce-Terminal überprüfen. Dies beinhaltet das Prüfen der Ausgabe des Befehls nmap --script vuln, um potentielle Schwachstellen im Zielsystem zu identifizieren.

Zunächst führen wir erneut den Schwachstellen-Scan gegen 127.0.0.1 durch. Dies gewährleistet, dass wir die aktuellsten Ergebnisse zum Überprüfen haben. Führen Sie folgenden Befehl in Ihrem Xfce-Terminal aus:

sudo nmap --script vuln 127.0.0.1

Untersuchen Sie die Ausgabe sorgfältig. Das vuln-Skript versucht, bekannte Schwachstellen zu identifizieren, indem es die Dienstversionen und -konfigurationen überprüft. Suchen Sie nach Zeilen, die potentielle Schwachstellen anzeigen.

Die Ausgabe wird die offenen Ports und die auf diesen Ports laufenden Dienste anzeigen. Das vulners-Skript, das Teil der vuln-Skriptgruppe ist, versucht, die Dienstversionen mit bekannten Schwachstellen zu vergleichen.

Beispielausgabe (die tatsächliche Ausgabe hängt von den auf 127.0.0.1 laufenden Diensten ab):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:20 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Other addresses for localhost (alias(es)): localhost

PORT   STATE SERVICE
22/tcp open  ssh
|_ vulners: Could not find vulnerability results.
80/tcp open  http
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_ vulners: Could not find vulnerability results.

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

In diesem Beispiel konnte das vulners-Skript keine Schwachstellen Ergebnisse für die SSH- und HTTP-Dienste finden. Wenn jedoch Schwachstellen gefunden wurden, würde die Ausgabe Details über die spezifischen Schwachstellen und Links zu relevanten Ressourcen enthalten.

Wenn Sie Ausgaben sehen, die potentielle Schwachstellen anzeigen, forschen Sie diese Schwachstellen weitergehend, um die Risiken und die Möglichkeiten zur Verminderung zu verstehen. Sie können die Dienstversioninformation (z.B. "Apache/2.4.29 (Ubuntu)") verwenden, um nach bekannten Schwachstellen in dieser speziellen Softwareversion zu suchen.

Dieser Schritt ist entscheidend für das Verständnis der Sicherheitslage des Zielsystems und für die Identifizierung potenzieller Problembereiche.

Vergleiche mit der Diensterkennung im Xfce-Terminal

In diesem Schritt werden wir die Ergebnisse des Schwachstellen-Scans mit der standardmäßigen Diensterkennung von Nmap vergleichen. Dies wird uns helfen, zu verstehen, ob das vuln-Skript zusätzliche Informationen liefert, die über die typischen Erkenntnisse von Nmap hinausgehen.

Führen Sie zunächst einen standardmäßigen Nmap-Diensterkennungsscan gegen 127.0.0.1 durch. Führen Sie folgenden Befehl in Ihrem Xfce-Terminal aus:

sudo nmap -sV 127.0.0.1

Die -sV-Option 告诉 Nmap, die Dienstversionenerkennung durchzuführen. Dies wird versuchen, die spezifischen Versionen der auf den offenen Ports laufenden Dienste zu identifizieren.

Beispielausgabe (die tatsächliche Ausgabe hängt von den auf 127.0.0.1 laufenden Diensten ab):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:25 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Other addresses for localhost (alias(es)): localhost

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.6p0 Ubuntu 7ubuntu2.4 (protocol 2.0)
80/tcp open  http    Apache httpd 2.4.29 ((Ubuntu))

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 10.00 seconds

Vergleichen Sie nun diese Ausgabe mit der Ausgabe des Befehls nmap --script vuln 127.0.0.1, den Sie im vorherigen Schritt ausgeführt haben.

Insbesondere suchen Sie nach den folgenden Punkten:

  • Dienstversionen: Identifiziert der -sV-Scan die gleichen Dienstversionen wie das vuln-Skript? Das vuln-Skript stützt sich oft auf die Dienstversioninformationen, um potentielle Schwachstellen zu identifizieren.
  • Schwachstelleninformationen: Liefert das vuln-Skript zusätzliche Informationen über Schwachstellen, die nicht in der Ausgabe des -sV-Scans vorhanden sind? Das vuln-Skript verwendet die vulners-Bibliothek, um nach bekannten Schwachstellen anhand der Dienstversion zu prüfen.

Durch das Vergleich der beiden Ausgaben können Sie einen besseren Überblick über den Wert des vuln-Skripts erhalten. In vielen Fällen wird das vuln-Skript potentielle Schwachstellen identifizieren, die nicht unmittelbar aus dem standardmäßigen Diensterkennungsscan ersichtlich sind. Dies liegt daran, dass das vuln-Skript speziell darauf ausgelegt ist, bekannte Schwachstellen zu suchen, während der -sV-Scan hauptsächlich darauf abzielt, den Dienst und seine Version zu identifizieren.

Dieser Vergleich hilft Ihnen zu verstehen, welche unterschiedlichen Informationsniveaus Sie aus Nmap erhalten können und wie Sie verschiedene Skripte und Optionen verwenden, um die umfassendste Sicherheitsbewertung zu erhalten.

Zusammenfassung

In diesem Lab haben wir untersucht, wie man Nmaps vuln-Skript verwendet, um nach Schwachstellen in einem Zielsystem zu scannen. Wir haben gelernt, wie man das Skript gegen eine bestimmte IP-Adresse ausführt (wir haben 127.0.0.1 als praktisches Beispiel aufgrund der Lab-Umgebung verwendet) mit dem Befehl nmap --script vuln 127.0.0.1, wobei man oft sudo benötigt, um die erforderlichen Rechte zu erhalten.

Das Lab hat auch gezeigt, wie man einen bestimmten Port mit nmap --script vuln -p 80 127.0.0.1 scannen kann, die Ausführlichkeit erhöhen mit nmap -v --script vuln 192.168.1.1 und die Scan-Ergebnisse in eine Datei speichern mit nmap --script vuln -oN vuln.txt 127.0.0.1. Schließlich bestand das Lab darin, die Ergebnisse des Schwachstellen-Scans zu überprüfen und sie mit der Diensterkennungsinformation im Xfce-Terminal zu vergleichen.