SMB-Dienste in Nmap auflisten

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 werden wir untersuchen, wie man SMB (Server Message Block) Dienste mit Nmap auflistet. SMB ist ein Netzwerkdateiteilungsprotokoll, und das Identifizieren verfügbare Teilen kann wertvolle Informationen über ein Zielsystem aufdecken. Wir werden das smb-enum-shares Nmap Scripting Engine (NSE) Skript verwenden, um dies zu erreichen.

Das Lab umfasst das Ausführen von Nmap-Befehlen, um SMB-Shares auf einem Zielcomputer aufzulisten, die Angabe der Ziel-IP-Adresse (z.B. 192.168.1.1 oder 127.0.0.1 für den lokalen Computer) und die Interpretation der Ausgabe, um verfügbare Shares, deren Typen und zugehörige Kommentare zu identifizieren. Wir werden auch untersuchen, die Ausführlichkeit hinzuzufügen, die Ergebnisse in eine Datei zu speichern und die Ausgabe mit einem Banner-Scan zu vergleichen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") 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/save_output -.-> lab-547099{{"SMB-Dienste in Nmap auflisten"}} nmap/port_scanning -.-> lab-547099{{"SMB-Dienste in Nmap auflisten"}} nmap/target_specification -.-> lab-547099{{"SMB-Dienste in Nmap auflisten"}} nmap/verbosity -.-> lab-547099{{"SMB-Dienste in Nmap auflisten"}} nmap/os_version_detection -.-> lab-547099{{"SMB-Dienste in Nmap auflisten"}} nmap/service_detection -.-> lab-547099{{"SMB-Dienste in Nmap auflisten"}} nmap/scripting_basics -.-> lab-547099{{"SMB-Dienste in Nmap auflisten"}} nmap/script_management -.-> lab-547099{{"SMB-Dienste in Nmap auflisten"}} end

Führe die SMB-Enumeration mit nmap --script smb-enum-shares 192.168.1.1 durch

In diesem Schritt werden wir Nmap mit dem Skript smb-enum-shares verwenden, um SMB-Shares auf einem Zielcomputer aufzulisten. SMB (Server Message Block) ist ein Netzwerkdateiteilungsprotokoll, und das Auflisten von Shares kann wertvolle Informationen über das Zielsystem aufdecken, wie verfügbare Ressourcen und potenzielle Schwachstellen.

Zunächst verstehen wir den Befehl, den wir verwenden werden:

  • nmap: Dies ist das Netzwerk-Mapper-Tool, das wir verwenden werden.
  • --script smb-enum-shares: Dies 告诉 Nmap, das smb-enum-shares NSE (Nmap Scripting Engine) Skript zu verwenden. Dieses Skript ist speziell zum Auflisten von SMB-Shares entworfen.
  • 192.168.1.1: Dies ist die Ziel-IP-Adresse. Wichtig: Sie müssen dies durch die tatsächliche IP-Adresse des Zielcomputers ersetzen, den Sie scannen möchten. Wenn Sie keinen spezifischen Zielcomputer haben, können Sie 127.0.0.1 (localhost) für Testzwecke verwenden, aber beachten Sie, dass dies nur Ihren eigenen Computer scannen wird.

Nun führen wir den Befehl aus. Öffnen Sie Ihren Xfce-Terminal und geben Sie folgenden Befehl ein, dann drücken Sie die Eingabetaste:

nmap --script smb-enum-shares 192.168.1.1

Wichtig: Ersetzen Sie 192.168.1.1 durch die tatsächliche IP-Adresse Ihres Ziels. Wenn Sie lokal testen, können Sie 127.0.0.1 verwenden.

Die Ausgabe wird Ihnen die Ergebnisse der SMB-Share-Enumeration zeigen. Es könnte so aussehen (die genaue Ausgabe hängt vom Zielsystem ab):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00043s latency).
Not shown: 999 filtered ports
PORT    STATE SERVICE
445/tcp open  microsoft-ds

Host script results:
| smb-enum-shares:
|   account_used: guest
|   \\192.168.1.1\IPC$:
|     type: STYPE_IPC_HIDDEN
|     comment: Remote IPC
|     flags: 0x80000000
|   \\192.168.1.1\ADMIN$:
|     type: STYPE_DISKTREE
|     comment: Remote Admin
|     flags: 0x0
|_  \\192.168.1.1\C$:
|     type: STYPE_DISKTREE
|     comment: Default share
|     flags: 0x0

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

Diese Ausgabe zeigt die SMB-Shares, die Nmap auf dem Zielsystem entdecken konnte. Sie können die Share-Namen (z.B. IPC$, ADMIN$, C$), ihre Typen, Kommentare und Flags sehen. Diese Informationen können hilfreich sein, um potenzielle Angriffsvektoren oder Fehlkonfigurationen zu identifizieren.

Scanne Port 445 mit nmap --script smb-enum-shares -p 445 127.0.0.1

In diesem Schritt werden wir uns auf das Scannen eines bestimmten Ports, 445, konzentrieren, der üblicherweise mit SMB assoziiert ist. Indem wir den Port angeben, können wir den Scan einschränken und möglicherweise schneller Ergebnisse erhalten. Wir werden das gleiche smb-enum-shares-Skript wie zuvor verwenden, aber diesmal werden wir Nmap sagen, nur Port 445 zu scannen.

Zerlegen wir den Befehl:

  • nmap: Das Netzwerk-Mapper-Tool.
  • --script smb-enum-shares: Gibt das NSE-Skript an, das für die SMB-Share-Enumeration verwendet werden soll.
  • -p 445: Diese Option 告诉 Nmap, nur Port 445 zu scannen. Ohne dies würde Nmap einen Bereich von üblicherweise verwendeten Ports scannen.
  • 127.0.0.1: Dies ist die Ziel-IP-Adresse, in diesem Fall localhost. Dies bedeutet, dass wir den auf unserem eigenen Computer laufenden SMB-Dienst scannen.

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

nmap --script smb-enum-shares -p 445 127.0.0.1

Die Ausgabe wird die Ergebnisse der SMB-Share-Enumeration speziell auf Port 445 zeigen. Es könnte ähnlich aussehen wie dies:

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.00014s latency).

PORT    STATE SERVICE
445/tcp open  microsoft-ds

Host script results:
| smb-enum-shares:
|   account_used: guest
|   \\127.0.0.1\IPC$:
|     type: STYPE_IPC_HIDDEN
|     comment: Remote IPC
|     flags: 0x80000000
|   \\127.0.0.1\ADMIN$:
|     type: STYPE_DISKTREE
|     comment: Remote Admin
|     flags: 0x0
|_  \\127.0.0.1\C$:
|     type: STYPE_DISKTREE
|     comment: Default share
|     flags: 0x0

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

Bemerken Sie, dass die Ausgabe ähnlich wie im vorherigen Schritt ist, aber diesmal haben wir speziell Port 445 als Ziel. Dies kann nützlich sein, wenn Sie wissen, dass SMB auf einem bestimmten Port läuft und Sie andere Ports unnötig vermeiden möchten.

Füge die Ausführlichkeit mit nmap -v --script smb-enum-shares 192.168.1.1 hinzu

In diesem Schritt werden wir der Ausführlichkeit unseres Nmap-Scans hinzufügen. Die Ausführlichkeit liefert detailliertere Ausgabe, was hilfreich sein kann, um zu verstehen, was Nmap macht, und um Probleme zu beheben. Die Option -v erhöht das Ausführlichkeitsniveau.

Schauen wir uns den Befehl an:

  • nmap: Das Netzwerk-Mapper-Tool.
  • -v: Diese Option erhöht das Ausführlichkeitsniveau. Hinzufügen mehrerer -v-Optionen (z.B. -vv) erhöht die Ausführlichkeit noch weiter.
  • --script smb-enum-shares: Gibt das NSE-Skript an, das für die SMB-Share-Enumeration verwendet werden soll.
  • 192.168.1.1: Die Ziel-IP-Adresse. Denken Sie daran, dies durch die tatsächliche IP-Adresse Ihres Ziels zu ersetzen.

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

nmap -v --script smb-enum-shares 192.168.1.1

Wichtig: Ersetzen Sie 192.168.1.1 durch die tatsächliche IP-Adresse Ihres Ziels. Wenn Sie lokal testen und SMB nicht aktiviert haben, werden Sie möglicherweise nicht viel Unterschied in der Ausgabe sehen.

Die Ausgabe wird detaillierter als die vorherigen Scans sein. Sie werden mehr Informationen über den Scanfortschritt, die ausgeführten Skripte und alle auftretenden Fehler sehen. Beispielsweise könnte die Ausgabe so aussehen:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
NSE: Loaded 1 script for scanning.
Initiating Ping Scan at 10:10
Scanning 192.168.1.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 Connect Scan at 10:10
Scanning 192.168.1.1 [1000 ports]
Discovered open port 445/tcp on 192.168.1.1
Completed Connect Scan at 10:10, 0.12s elapsed (1000 total ports)
Initiating Service scan at 10:10
Scanning 1 service on 192.168.1.1
Completed Service scan at 10:10, 6.41s elapsed (1 service total)
NSE: Starting runlevel 1 (of 1) scan.
NSE: Running script smb-enum-shares on 192.168.1.1.
Nmap scan report for 192.168.1.1
Host is up (0.00038s latency).
Not shown: 999 filtered ports
PORT    STATE SERVICE
445/tcp open  microsoft-ds
Host script results:
| smb-enum-shares:
|   account_used: guest
|   \\192.168.1.1\IPC$:
|     type: STYPE_IPC_HIDDEN
|     comment: Remote IPC
|     flags: 0x80000000
|   \\192.168.1.1\ADMIN$:
|     type: STYPE_DISKTREE
|     comment: Remote Admin
|     flags: 0x0
|_  \\192.168.1.1\C$:
|     type: STYPE_DISKTREE
|     comment: Default share
|     flags: 0x0

NSE: Script Post-scanning.
Nmap done: 1 IP address (1 host up) scanned in 7.01 seconds

Die detaillierte Ausgabe zeigt die verschiedenen Phasen des Nmap-Scans, einschließlich des Ping-Scans, der DNS-Auflösung, des Connect-Scans, des Service-Scans und der Ausführung des smb-enum-shares-Skripts. Dieses Maß an Detail kann unschätzbare Hilfe bei der Fehlersuche und beim Verständnis des Scanprozesses bieten.

Speichere SMB-Ergebnisse mit nmap --script smb-enum-shares -oN smb.txt 127.0.0.1

In diesem Schritt werden wir lernen, wie wir die Ergebnisse unseres Nmap-Scans in eine Datei speichern. Dies ist nützlich für eine spätere Analyse oder zum Teilen der Ergebnisse mit anderen. Wir werden die Option -oN verwenden, um die Ausgabe im "normalen" Format zu speichern, das für Menschen lesbar ist.

Zerlegen wir den Befehl:

  • nmap: Das Netzwerk-Mapper-Tool.
  • --script smb-enum-shares: Gibt das NSE-Skript an, das für die SMB-Share-Enumeration verwendet werden soll.
  • -oN smb.txt: Diese Option 告诉 Nmap, die Ausgabe im normalen Format in eine Datei namens smb.txt zu speichern. Die Datei wird im aktuellen Verzeichnis gespeichert, das ~/project ist.
  • 127.0.0.1: Dies ist die Ziel-IP-Adresse, in diesem Fall localhost.

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

nmap --script smb-enum-shares -oN smb.txt 127.0.0.1

Nach Abschluss des Scans werden Sie die Ausgabe im Terminal nicht mehr sehen. Stattdessen werden die Ergebnisse in einer Datei namens smb.txt im Verzeichnis ~/project gespeichert.

Um zu überprüfen, dass die Datei erstellt wurde und die Scanergebnisse enthält, können Sie den Befehl cat verwenden, um den Inhalt der Datei anzuzeigen:

cat smb.txt

Sie sollten die Nmap-Scanergebnisse auf der Konsole sehen. Die Ausgabe sollte ähnlich sein wie die, die Sie in den vorherigen Schritten gesehen haben, aber jetzt ist sie auch in einer Datei gespeichert.

## Nmap 7.80 scan initiated Fri Oct 27 10:15:00 2023 as: nmap --script smb-enum-shares -oN smb.txt 127.0.0.1
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).
PORT    STATE SERVICE
445/tcp open  microsoft-ds
Host script results:
| smb-enum-shares:
|   account_used: guest
|   \\127.0.0.1\IPC$:
|     type: STYPE_IPC_HIDDEN
|     comment: Remote IPC
|     flags: 0x80000000
|   \\127.0.0.1\ADMIN$:
|     type: STYPE_DISKTREE
|     comment: Remote Admin
|     flags: 0x0
|_  \\127.0.0.1\C$:
|     type: STYPE_DISKTREE
|     comment: Default share
|     flags: 0x0
## Nmap done at Fri Oct 27 10:15:01 2023 -- 1 IP address (1 host up) scanned in 1.23 seconds

Sie können auch den Befehl ls -l verwenden, um die Dateigröße und das Änderungsdatum zu überprüfen:

ls -l smb.txt

Dies zeigt Ihnen Informationen über die Datei smb.txt, einschließlich ihrer Größe, des Änderungsdatums und der Berechtigungen.

Überprüfe SMB-Share in Xfce-Terminal

In diesem Schritt werden wir die SMB-Share überprüfen, die in den vorherigen Schritten identifiziert wurden. Wir werden den Befehl cat verwenden, um den Inhalt der Datei smb.txt anzuzeigen, die die Nmap-Scanergebnisse enthält. Anschließend werden wir diskutieren, wie die Ausgabe interpretiert werden kann und potentielle Sicherheitslücken identifiziert werden können.

Öffnen Sie zunächst Ihren Xfce-Terminal und verwenden Sie den Befehl cat, um den Inhalt der Datei smb.txt anzuzeigen:

cat smb.txt

Die Ausgabe wird die Nmap-Scanergebnisse anzeigen, einschließlich der identifizierten SMB-Share. Beispielsweise könnte die Ausgabe so aussehen:

## Nmap 7.80 scan initiated Fri Oct 27 10:20:00 2023 as: nmap --script smb-enum-shares -oN smb.txt 127.0.0.1
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).
PORT    STATE SERVICE
445/tcp open  microsoft-ds
Host script results:
| smb-enum-shares:
|   account_used: guest
|   \\127.0.0.1\IPC$:
|     type: STYPE_IPC_HIDDEN
|     comment: Remote IPC
|     flags: 0x80000000
|   \\127.0.0.1\ADMIN$:
|     type: STYPE_DISKTREE
|     comment: Remote Admin
|     flags: 0x0
|_  \\127.0.0.1\C$:
|     type: STYPE_DISKTREE
|     comment: Default share
|     flags: 0x0
## Nmap done at Fri Oct 27 10:20:01 2023 -- 1 IP address (1 host up) scanned in 1.23 seconds

Analysieren wir die Ausgabe:

  • \\127.0.0.1\IPC$: Dies ist der Inter-Process Communication-Share, der für die Kommunikation zwischen Prozessen auf demselben Computer oder über ein Netzwerk verwendet wird. Er ist normalerweise versteckt (STYPE_IPC_HIDDEN) und für systemfunktionen verwendet.
  • \\127.0.0.1\ADMIN$: Dies ist der Verwaltungs-Share, der den Zugang zum Windows-Systemverzeichnis bietet. Er wird normalerweise von Administratoren für die Fernverwaltung verwendet.
  • \\127.0.0.1\C$: Dies ist der Standard-Share für den C-Drive. Er ermöglicht es Administratoren, den gesamten C-Drive fernzugreifen.

Diese Share sind oft auf Windows-Systemen vorhanden. Es ist jedoch wichtig, ihre Berechtigungen zu überprüfen und sicherzustellen, dass sie richtig gesichert sind. Beispielsweise sollten die ADMIN$- und `C$-Share normalerweise nur von Administratoren zugänglich sein. Wenn diese Share für nicht autorisierte Benutzer zugänglich sind, kann dies zu Sicherheitslücken führen.

Im nächsten Schritt werden wir diese Ergebnisse mit einem Banner-Scan vergleichen, um weitere Informationen über das Zielsystem zu sammeln.

In diesem Schritt werden wir einen Banner-Scan mit Nmap ausführen und die Ergebnisse mit den Ergebnissen der SMB-Share-Enumeration aus den vorherigen Schritten vergleichen. Mit Banner-Grabbing können wir das Betriebssystem und die laufenden Dienste auf dem Ziel identifizieren, was wertvolle Informationen für die Identifizierung potentieller Schwachstellen liefern kann.

Führen wir zunächst einen Banner-Scan auf Port 445 mit Nmap durch. Öffnen Sie Ihren Xfce-Terminal und führen Sie folgenden Befehl aus:

nmap -p 445 -sV 127.0.0.1

Hier ist eine Aufteilung des Befehls:

  • nmap: Das Netzwerk-Mapper-Tool.
  • -p 445: Gibt Port 445 an, der der Port für SMB ist.
  • -sV: Aktiviert die Versionserkennung, die versucht, die Informationen über den Dienst und die Version, die auf dem Zielport läuft, zu bestimmen.
  • 127.0.0.1: Dies ist die Ziel-IP-Adresse, in diesem Fall localhost.

Die Ausgabe des Befehls wird den auf Port 445 laufenden Dienst und seine Versionsinformationen anzeigen. Beispielsweise könnte die Ausgabe so aussehen:

Starting Nmap 7.80 ( https://nmap.org ) at Fri Oct 27 10:25:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).

PORT    STATE SERVICE      VERSION
445/tcp open  microsoft-ds Windows 10 Pro 19042 microsoft-ds

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

In diesem Beispiel zeigt der Banner-Scan an, dass das Ziel Windows 10 Pro 19042 ausführt. Diese Informationen können verwendet werden, um potenzielle Schwachstellen, die speziell für diese Betriebssystemversion gelten, zu identifizieren.

Vergleichen wir nun diese Informationen mit den Ergebnissen der SMB-Share-Enumeration aus dem vorherigen Schritt. Im vorherigen Schritt haben wir die folgenden SMB-Share identifiziert: IPC$, ADMIN$ und C$. Wir wissen auch, dass das Ziel Windows 10 Pro 19042 ausführt.

Indem wir diese Informationen kombinieren, können wir beginnen, ein vollständigeres Bild des Zielsystems und seiner potenziellen Schwachstellen zu erstellen. Beispielsweise können wir bekannte Schwachstellen in Windows 10 Pro 19042 im Zusammenhang mit SMB-Share recherchieren und bestimmen, ob das Zielsystem betroffen ist.

Dieser Vergleich hilft uns, unsere Anstrengungen zu priorisieren und uns auf die wahrscheinlichsten Angriffsvektoren zu konzentrieren. Beispielsweise können wir uns auf die Ausnutzung einer bekannten Schwachstelle in Windows 10 Pro 19042 konzentrieren, die unbefugten Zugang zum `ADMIN$-Share ermöglicht.

Zusammenfassung

In diesem Lab haben wir untersucht, wie man Nmap mit dem Skript smb-enum-shares verwendet, um SMB-Share auf einem Zielcomputer aufzulisten. Wir haben gelernt, dass SMB ein Netzwerkdateiteilungsprotokoll ist und dass das Auflisten von Share wertvolle Informationen über das Zielsystem aufzeigen kann, einschließlich verfügbare Ressourcen und potenzielle Schwachstellen. Der grundlegende Befehl nmap --script smb-enum-shares <target_ip> wurde verwendet, um die Aufzählung durchzuführen.

Des Weiteren haben wir die Angabe des Zielports (445) praktiziert, die Verständlichkeit mit der -v-Option erhöht und die Ausgabe mithilfe der -oN-Option in eine Datei gespeichert. Schließlich haben wir die SMB-Share im Xfce-Terminal überprüft und die Ergebnisse mit einem Banner-Scan verglichen, was verschiedene Methoden zur Erfassung von Informationen über SMB-Dienste zeigt.