Dienste und Versionen in Nmap erkennen

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 lernen Sie, wie Sie Dienste und deren Versionen mit Nmap erkennen können. Das Lab behandelt die grundlegende Diensterkennung auf dem lokalen Rechner (localhost), die Anpassung der Scanintensität, die Erkennung von Diensten auf bestimmten Ports, die Durchführung einer vollständigen Erkennung, die Analyse der Ausgabe im Xfce-Terminal und das Speichern der Ergebnisse in einer Textdatei. Sie werden Befehle wie nmap -sV 127.0.0.1 und nmap -sV -oN services.txt 192.168.1.1 ausführen, um praktische Erfahrungen mit Nmap's Fähigkeiten zur Dienstenversionserkennung zu sammeln.


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/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/timing_performance("Timing and Performance") nmap/NmapGroup -.-> nmap/os_version_detection("OS and Version Detection") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") subgraph Lab Skills nmap/output_formats -.-> lab-530177{{"Dienste und Versionen in Nmap erkennen"}} nmap/save_output -.-> lab-530177{{"Dienste und Versionen in Nmap erkennen"}} nmap/target_specification -.-> lab-530177{{"Dienste und Versionen in Nmap erkennen"}} nmap/timing_performance -.-> lab-530177{{"Dienste und Versionen in Nmap erkennen"}} nmap/os_version_detection -.-> lab-530177{{"Dienste und Versionen in Nmap erkennen"}} nmap/service_detection -.-> lab-530177{{"Dienste und Versionen in Nmap erkennen"}} end

Führen Sie eine Diensterkennung mit nmap -sV 127.0.0.1 aus

In diesem Schritt werden wir einen grundlegenden Scan zur Diensterkennung mit Nmap durchführen. Die Diensterkennung hilft dabei, die Anwendungen und Versionen zu identifizieren, die auf offenen Ports eines Zielsystems laufen. Diese Informationen sind für die Schwachstellenbewertung und Penetrationstests von entscheidender Bedeutung.

Der Befehl nmap -sV 127.0.0.1 weist Nmap an, eine Dienstenversionserkennung (-sV) auf dem lokalen Rechner (localhost, 127.0.0.1) durchzuführen. Der localhost ist Ihre eigene Maschine.

Führen Sie den Befehl aus:

  1. Öffnen Sie das Xfce-Terminal.

  2. Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

nmap -sV 127.0.0.1

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

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).
Not shown: 997 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.4 (Ubuntu Linux; protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.52 ((Ubuntu))
111/tcp  open  rpcbind 2-4 (RPC #100000)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

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

Erklärung:

  • Starting Nmap...: Zeigt die verwendete Nmap-Version an.
  • Nmap scan report for localhost (127.0.0.1): Zeigt das Ziel des Scans an.
  • Host is up: Bestätigt, dass das Ziel erreichbar ist.
  • Not shown: 997 closed ports: Gibt an, dass 997 Ports geschlossen waren und nicht angezeigt wurden. Nmap zeigt standardmäßig nur offene, gefilterte oder ungefilterte Ports an.
  • PORT STATE SERVICE VERSION: Dieser Abschnitt zeigt die offenen Ports, ihren Zustand (offen), den auf dem Port laufenden Dienst und die Version des Dienstes an. Beispielsweise ist Port 22 offen und läuft OpenSSH Version 8.9p1. Port 80 ist offen und läuft Apache httpd Version 2.4.52.
  • Service Info: Liefert zusätzliche Informationen über das Betriebssystem.
  • Nmap done: Gibt an, dass der Scan abgeschlossen ist und zeigt die benötigte Zeit an.

Dieser einfache Scan liefert wertvolle Informationen über die auf Ihrer Maschine laufenden Dienste. In den folgenden Schritten werden wir fortgeschrittene Optionen für die Diensterkennung erkunden.

Anpassen der Intensität mit nmap -sV --version-intensity 7 192.168.1.1

In diesem Schritt lernen wir, wie man die Intensität der Dienstenversionserkennung von Nmap anpasst. Die Option --version-intensity ermöglicht es Ihnen, zu steuern, wie aggressiv Nmap nach Dienstinformationen sucht. Ein höherer Intensitätsgrad bedeutet, dass Nmap mehr Abfragen durchführt, was möglicherweise zu genaueren Ergebnissen führt, aber auch mehr Zeit in Anspruch nimmt.

Die Option --version-intensity akzeptiert einen Wert von 0 bis 9, wobei 0 die geringste und 9 die höchste Intensität darstellt. Die Standardintensität ist 7.

Wichtig: Bevor Sie fortfahren, beachten Sie, dass das Scannen von 192.168.1.1 im LabEx-VM-Umfeld möglicherweise nicht direkt funktioniert, da es sich wahrscheinlich um eine interne Netzwerkadresse handelt. Zu Demonstrationszwecken verwenden wir stattdessen 127.0.0.1 (localhost). In einer realen Umgebung würden Sie dies durch die tatsächliche Ziel-IP-Adresse ersetzen.

Führen wir den Befehl mit Intensitätsgrad 7 aus:

  1. Öffnen Sie das Xfce-Terminal.

  2. Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

nmap -sV --version-intensity 7 127.0.0.1

Sie sollten eine Ausgabe ähnlich der folgenden sehen (die genaue Ausgabe kann je nach den auf Ihrer Maschine laufenden Diensten variieren):

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).
Not shown: 997 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.4 (Ubuntu Linux; protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.52 ((Ubuntu))
111/tcp  open  rpcbind 2-4 (RPC #100000)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

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

Versuchen wir nun einen niedrigeren Intensitätsgrad, beispielsweise 2:

nmap -sV --version-intensity 2 127.0.0.1

Beobachten Sie die Ausgabe. Möglicherweise bemerken Sie, dass der Scan schneller abgeschlossen wird, aber die Versionsinformationen möglicherweise weniger detailliert oder genau sind.

Erklärung:

  • nmap -sV --version-intensity 7 127.0.0.1: Führt eine Dienstenversionserkennung mit Intensitätsgrad 7 auf dem localhost durch.
  • nmap -sV --version-intensity 2 127.0.0.1: Führt eine Dienstenversionserkennung mit Intensitätsgrad 2 auf dem localhost durch.

Durch die Anpassung der Option --version-intensity können Sie das Gleichgewicht zwischen Scan-Geschwindigkeit und -Genauigkeit feinabstimmen. In Situationen, in denen die Zeit kritisch ist, kann ein niedrigerer Intensitätsgrad vorzuziehen sein. Für umfassendere Bewertungen wird ein höherer Intensitätsgrad empfohlen.

Erkennung auf bestimmten Ports mit nmap -sV -p 80 192.168.1.1

In diesem Schritt richten wir unseren Scan zur Diensterkennung auf einen bestimmten Port aus. Dies ist nützlich, wenn Sie bereits wissen, auf welchen Port Sie sich konzentrieren möchten, oder wenn Sie die Scanzeit reduzieren möchten, indem Sie nur einen bestimmten Dienst anvisieren.

Die Option -p in Nmap ermöglicht es Ihnen, die Port(s) anzugeben, die Sie scannen möchten. In diesem Fall werden wir Port 80 scannen, der üblicherweise für HTTP-(Web-)Dienste verwendet wird.

Wichtig: Wie im vorherigen Schritt funktioniert das Scannen von 192.168.1.1 möglicherweise nicht direkt im LabEx-VM-Umfeld. Wir verwenden stattdessen 127.0.0.1 (localhost). Denken Sie daran, dies in einer realen Umgebung durch die tatsächliche Ziel-IP-Adresse zu ersetzen.

Führen wir den Befehl aus:

  1. Öffnen Sie das Xfce-Terminal.

  2. Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

nmap -sV -p 80 127.0.0.1

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

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

PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.52 ((Ubuntu))

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

Erklärung:

  • nmap -sV -p 80 127.0.0.1: Führt eine Dienstenversionserkennung (-sV) auf Port 80 (-p 80) des localhost (127.0.0.1) durch.
  • Die Ausgabe zeigt, dass Port 80 offen ist und Apache httpd Version 2.4.52 ausführt.
  • Beachten Sie, dass die Scanzeit im Vergleich zu den vorherigen Scans deutlich kürzer ist, da wir nur einen einzelnen Port scannen.

Sie können auch einen Portbereich mit der Option -p angeben. Beispielsweise würden Sie den folgenden Befehl verwenden, um die Ports 80, 443 und 8080 zu scannen:

nmap -sV -p 80,443,8080 127.0.0.1

Dies ermöglicht es Ihnen, mehrere bestimmte Ports in einem einzigen Scan anzusteuern.

Vollständige Erkennung mit nmap -sV --version-all 127.0.0.1

In diesem Schritt nutzen wir die Option --version-all von Nmap, um die umfassendste Dienstenversionserkennung durchzuführen. Diese Option befiehlt Nmap, jeden einzelnen Versionserkennungs-Test gegen jeden offenen Port auszuführen. Es ist die aggressivste Einstellung und kann die genauesten Ergebnisse liefern, aber es dauert auch am längsten, bis der Scan abgeschlossen ist.

Führen wir den Befehl aus:

  1. Öffnen Sie das Xfce-Terminal.

  2. Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

nmap -sV --version-all 127.0.0.1

Sie sollten eine Ausgabe ähnlich der folgenden sehen (die genaue Ausgabe kann je nach den auf Ihrer Maschine laufenden Diensten variieren):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.4 (Ubuntu Linux; protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.52 ((Ubuntu))
111/tcp  open  rpcbind 2-4 (RPC #100000)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

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

Erklärung:

  • nmap -sV --version-all 127.0.0.1: Führt eine Dienstenversionserkennung (-sV) mit der Option --version-all auf dem localhost (127.0.0.1) durch.
  • Die Ausgabe zeigt die offenen Ports und die erkannten Dienstversionen.
  • Beachten Sie, dass die Scanzeit im Vergleich zu den vorherigen Scans länger ist, da Nmap jeden möglichen Test ausführt.

Wichtige Überlegungen:

  • Die Verwendung von --version-all kann die Scanzeit erheblich verlängern.
  • In einigen Fällen liefert es möglicherweise nicht wesentlich genauere Ergebnisse als die Standardintensitätsebene.
  • Beachten Sie die potenzielle Auswirkung auf das Zielsystem, da dieser aggressive Scan mehr Traffic generieren kann.

Diese Option ist am nützlichsten, wenn Sie die genauesten Dienstenversionsinformationen möglich benötigen und bereit sind, eine längere Scanzeit in Kauf zu nehmen.

Analyse der Ausgabe im Xfce-Terminal

In diesem Schritt lernen wir, wie wir die Ausgabe von Nmap-Scans direkt im Xfce-Terminal analysieren können. Das Verständnis der Ausgabe ist entscheidend für die Identifizierung potenzieller Sicherheitslücken und das Erlangen von Einblicken in das Zielsystem.

Nehmen wir an, Sie haben bereits einen der vorherigen Nmap-Befehle ausgeführt, beispielsweise:

nmap -sV 127.0.0.1

Die Ausgabe wird direkt im Terminal angezeigt. Lassen Sie uns die wichtigsten Elemente der Ausgabe aufschlüsseln:

  • Starting Nmap...: Diese Zeile gibt die Nmap-Version und die Zeit an, zu der der Scan gestartet wurde.
  • Nmap scan report for...: Diese Zeile zeigt die Ziel-IP-Adresse oder den Hostnamen an.
  • Host is up...: Dies gibt an, ob der Zielhost erreichbar ist.
  • PORT STATE SERVICE VERSION: Dies ist die Haupttabelle, die die Scanergebnisse enthält.
    • PORT: Die Portnummer.
    • STATE: Der Zustand des Ports (z.B. open, closed, filtered).
    • SERVICE: Der erfasste Dienst, der auf dem Port läuft (z.B. http, ssh, smtp).
    • VERSION: Die Version des erfassten Dienstes (z.B. Apache httpd 2.4.52, OpenSSH 8.9p1).
  • Service detection performed...: Diese Zeile gibt an, dass eine Dienstenversionserkennung durchgeführt wurde.
  • Nmap done...: Diese Zeile zeigt die Dauer des Scans und die Anzahl der gescannten Hosts an.

Analyse der Ausgabe:

  1. Offene Ports: Identifizieren Sie die offenen Ports. Dies sind die Ports, die aktiv auf Verbindungen warten und potenzielle Einstiegspunkte für Angreifer sind.
  2. Dienste: Bestimmen Sie die Dienste, die auf den offenen Ports laufen. Das Wissen um die Dienste ermöglicht es Ihnen, potenzielle Sicherheitslücken zu recherchieren, die mit diesen Diensten verbunden sind.
  3. Versionen: Identifizieren Sie die Versionen der Dienste. Ältere Softwareversionen haben oft bekannte Sicherheitslücken, die ausgenutzt werden können.

Beispiel:

Wenn die Ausgabe zeigt, dass Port 22 offen ist und OpenSSH 7.6p1 ausführt, können Sie nach bekannten Sicherheitslücken für diese spezifische Version von OpenSSH recherchieren.

Verwendung von grep zur Filterung der Ausgabe:

Sie können den grep-Befehl verwenden, um die Nmap-Ausgabe zu filtern und sich auf bestimmte Informationen zu konzentrieren. Beispielsweise können Sie die Nmap-Ausgabe an grep weiterleiten, um alle Zeilen zu finden, die das Wort "open" enthalten:

Zuerst führen Sie den nmap-Befehl erneut aus:

nmap -sV 127.0.0.1

Leiten Sie dann die Ausgabe an grep weiter. Da die Ausgabe des vorherigen Befehls bereits im Terminal ist, können wir sie nicht direkt weiterleiten. Wir können jedoch grep verwenden, um die Ausgabe des Befehls in der Terminalhistorie zu durchsuchen.

history | grep "nmap -sV 127.0.0.1" | tail -n 1 | xargs -L 1 bash -c 'eval $(echo $1 | sed "s/^[ ]*[0-9]*[ ]*//")'

Dieser Befehl sucht zunächst die Zeile in der Historie, die den nmap-Befehl enthält, extrahiert dann den Befehl selbst und führt ihn schließlich aus. Die Ausgabe des nmap-Befehls wird dann im Terminal angezeigt.

Lassen Sie uns nun grep verwenden, um die Ausgabe zu filtern. Da wir die Ausgabe des vorherigen Befehls nicht direkt weiterleiten können, müssen wir den nmap-Befehl erneut ausführen und seine Ausgabe an grep weiterleiten.

nmap -sV 127.0.0.1 | grep "open"

Dadurch werden nur die Zeilen angezeigt, die das Wort "open" enthalten, was es einfacher macht, die offenen Ports zu identifizieren.

Die Analyse der Ausgabe im Terminal ist eine grundlegende Fähigkeit für Netzwerkadministratoren und Sicherheitsexperten. Sie ermöglicht es Ihnen, die Sicherheitslage eines Systems schnell zu beurteilen und potenzielle Sicherheitslücken zu identifizieren.

Speichern der Ergebnisse mit nmap -sV -oN services.txt 192.168.1.1

In diesem Schritt lernen wir, wie wir die Ergebnisse eines Nmap-Scans in einer Datei speichern können, um sie später zu analysieren oder in einem Bericht zu verwenden. Nmap bietet mehrere Ausgabeformate an, und in diesem Beispiel verwenden wir das "normale" Ausgabeformat (-oN).

  1. Öffnen Sie das Xfce-Terminal.

  2. Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

nmap -sV -oN services.txt 192.168.1.1

Dieser Befehl führt einen Scan zur Erkennung der Dienstversionen (-sV) auf der Ziel-IP-Adresse 192.168.1.1 durch und speichert die Ausgabe im "normalen" Format (-oN) in einer Datei namens services.txt im aktuellen Verzeichnis (~/project).

Erklärung:

  • nmap -sV: Führt eine Erkennung der Dienstversionen durch.
  • -oN services.txt: Gibt an, dass die Ausgabe im "normalen" Format in einer Datei namens services.txt gespeichert werden soll.
  • 192.168.1.1: Die Ziel-IP-Adresse. Hinweis: Wenn Sie keinen Host unter 192.168.1.1 haben, können Sie stattdessen 127.0.0.1 verwenden.

Nach Abschluss des Scans können Sie den Inhalt der services.txt-Datei mit dem cat-Befehl anzeigen:

cat services.txt

Dadurch werden die Nmap-Scanergebnisse im Terminal angezeigt.

Alternativ können Sie die services.txt-Datei mit einem Texteditor wie nano öffnen:

nano services.txt

Dadurch können Sie die Ergebnisse strukturierter durchsuchen.

Verständnis des Ausgabeformats:

Das "normale" Ausgabeformat ist für die menschliche Lesbarkeit konzipiert und bietet eine knappe Zusammenfassung der Scanergebnisse. Es enthält Informationen über den Zielhost, offene Ports, erkannte Dienste und deren Versionen.

Andere Ausgabeformate:

Nmap unterstützt mehrere andere Ausgabeformate, darunter:

  • -oX: XML-Ausgabeformat, geeignet für die Verarbeitung durch andere Tools.
  • -oS: Script Kiddie-Ausgabeformat (zum Spaß).
  • -oG: Grepable-Ausgabeformat, für die einfache Verarbeitung mit grep und anderen Befehlszeilentools konzipiert.

Das Speichern von Scanergebnissen ist wichtig, um Ihre Erkenntnisse zu dokumentieren, sie mit anderen zu teilen und Änderungen im Laufe der Zeit zu verfolgen.

Zusammenfassung

In diesem Lab lernen die Teilnehmer, Nmap zur Erkennung von Diensten und Versionen zu verwenden. Sie beginnen mit einem grundlegenden Scan zur Diensterkennung auf dem lokalen Host unter Verwendung des Befehls nmap -sV 127.0.0.1. Sie lernen auch, die Intensität des Scans anzupassen, Dienste auf bestimmten Ports zu erkennen und eine vollständige Erkennung durchzuführen. Darüber hinaus analysieren sie die Ausgabe im Xfce-Terminal und speichern die Ergebnisse in einer Textdatei unter Verwendung der Option -oN.