
Exploit POC pour CVE-2025-33053 (contrôle externe du chemin d'exécution de fichier dans le fichier URL)
Le répertoire de travail dans un fichier .url peut être défini sur un serveur WebDAV distant. Lorsqu'il est ouvert par un client Windows, les dépendances de l'exécutable défini dans le champ URL sont recherchées dans le partage WebDAV distant. Si un exécutable ou une DLL arbitraire porte le même nom que l'une de ces dépendances, il est chargé et exécuté par le client Windows. Dans le cas de cette POC, l'URL est définie sur l'exécutable de diagnostics d'Internet Explorer "iediagcmd.exe" local sur le client Windows. iediagcmd.exe appelle ensuite quelques exécutables différents, dont l'un est "route.exe". En donnant à un binaire arbitraire, comme un chargeur de shellcode, le même nom et en le partageant sur le serveur WebDAV pointé par la variable "WorkingDirectory" du fichier .url, le client Windows le chargera et l'exécutera lorsque le fichier URL sera ouvert.
Exécutez sudo bash webdav_setup.sh pour configurer et exécuter un serveur Apache2 WebDAV à partir d'un hôte Linux (ou configurez-en un vous-même).
Placez un exécutable, tel qu'un chargeur de shellcode nommé "route.exe", dans le partage WebDAV.
Modifiez le fichier URL pour qu'il pointe vers le nom de domaine ou l'adresse IP du serveur WebDAV.
Distribuez le fichier URL à un client Windows par un moyen quelconque qui amène un utilisateur à l'exécuter.
Si vous utilisez une charge utile qui déclenche un rappel C2, route.exe pourrait ne jamais revenir. iediagcmd.exe ouvre une fenêtre qui attend la fin de la commande, alors exécutez la commande taskkill /f /im iediagcmd.exe pour tuer la fenêtre du processus iediagcmd d'origine sur le client.
Windows Defender laissera généralement le fichier URL s'ouvrir sans problème, mais l'exécutable route.exe sera analysé et doit avoir une signature propre.
Cette CVE a été corrigée dans une mise à jour du Patch Tuesday de juin 2025.