
POC-Exploit für CVE-2025-33053 (externe Kontrolle des Dateiausführungspfads in der URL-Datei)
Das Arbeitsverzeichnis in einer .url-Datei kann auf einen fremden WebDAV-Server gesetzt werden. Wenn sie von einem Windows-Client geöffnet wird, werden Abhängigkeiten für die im URL-Feld definierte ausführbare Datei im fremden WebDAV-Freigabe gesucht. Wenn einer ausführbaren Datei oder DLL willkürlich der gleiche Name wie einer dieser Abhängigkeiten gegeben wird, wird sie vom Windows-Client geladen und ausgeführt. Im Fall dieses POC ist die URL auf die lokale ausführbare Datei des Internet Explorer Diagnosetools "iediagcmd.exe" des Windows-Clients gesetzt. iediagcmd.exe ruft anschließend einige verschiedene ausführbare Dateien auf, darunter "route.exe". Indem man einer beliebigen Binärdatei, z. B. einem Shellcode-Lader, den gleichen Namen gibt und sie auf dem WebDAV-Server freigibt, auf den in der Variable "WorkingDirectory" der .url-Datei verwiesen wird, lädt und führt der Windows-Client sie aus, wenn die URL-Datei geöffnet wird.
Führen Sie sudo bash webdav_setup.sh aus, um einen Apache2-WebDAV-Server von einem Linux-Host aus zu konfigurieren und auszuführen (oder richten Sie selbst einen ein).
Platzieren Sie eine ausführbare Datei wie einen Shellcode-Lader mit dem Namen "route.exe" in der WebDAV-Freigabe.
Ändern Sie die URL-Datei so, dass sie auf den Domänennamen oder die IP-Adresse des WebDAV-Servers verweist.
Stellen Sie die URL-Datei einem Windows-Client unter einem Vorwand zur Verfügung, damit sie von einem Benutzer ausgeführt wird.
Wenn Sie ein Payload verwenden, das einen C2-Callback auslöst, kehrt route.exe möglicherweise nie zurück. iediagcmd.exe öffnet ein Fenster, das auf das Ende des Befehls wartet. Führen Sie daher den Befehl taskkill /f /im iediagcmd.exe aus, um das ursprüngliche iediagcmd-Prozessfenster auf dem Client zu beenden.