在 .url 文件中,工作目录可以设置为外部 WebDAV 服务器。当 Windows 客户端打开该文件时,URL 字段中定义的可执行文件的依赖项会在外部 WebDAV 共享中搜索。如果某个任意可执行文件或 DLL 与这些依赖项之一同名,它就会被 Windows 客户端加载并执行。在这个 POC 中,URL 被设置为 Windows 客户端本地的 Internet Explorer 诊断可执行文件“iediagcmd.exe”。iediagcmd.exe 随后会调用几个不同的可执行文件,其中之一是“route.exe”。通过将一个任意二进制文件(例如 shellcode 加载器)命名为相同的名称,并将其放置在 .url 文件的“WorkingDirectory”变量指向的 WebDAV 服务器上,当 Windows 客户端打开该 URL 文件时,就会加载并执行该文件。
运行 sudo bash webdav_setup.sh 以在 Linux 主机上配置并运行 Apache2 WebDAV 服务器(或自行设置一个)。
将一个可执行文件(例如名为“route.exe”的 shellcode 加载器)放置在 WebDAV 共享中。
修改 URL 文件,使其指向 WebDAV 服务器的域名或 IP 地址。
通过某种伪装手段将 URL 文件提供给 Windows 客户端,诱使用户运行它。
如果使用触发 C2 回连的有效载荷,route.exe 可能永远不会返回。iediagcmd.exe 会打开一个窗口等待命令完成,因此请执行命令 taskkill /f /im iediagcmd.exe 来终止客户端上的原始 iediagcmd 进程窗口。
Windows Defender 通常会让 URL 文件正常打开,但 route.exe 可执行文件会被扫描,需要具有干净的签名。
此 CVE 已在 2025 年 6 月的星期二补丁更新中修复。