于非法用途及盈利等目的,间接使用文章中的任何工具、思路及技术,我方对于由此引起的法律后果概不负责。
🌟简介
使用图标将 DLL 注入资源管理器的非正统和隐蔽方式
IconJector
这是一个Windows资源管理器DLL注入技术,使用Windows上的更改图标对话框。
它是如何工作的?
首先,在临时目录中创建一个文件夹,并使用SHObjectProperties打开该文件夹的属性。为了独立于系统语言检索窗口的句柄,EnumWindows与一个回调函数一起使用,该函数在每个打开的窗口中检查不同的文件夹名称。
通过属性页,调用更改图标对话框,其句柄也通过EnumWindows检索。最后,图标路径更改为DLL(在本例中扩展名为.ico),这将导致资源管理器在按下OK按钮后加载DLL。
图标
“图标”实际上是一个简单的DLL文件,扩展名为.ico,它可以打开使用资源黑客添加的图标资源的计算器应用程序。
当涉及到文件夹视图中图标的外观时,存在一些异常。我已经在两个不同的Windows 10版本(最新版本和旧版本)和Windows 11上进行了测试。
Windows 10
在两个Widnows10版本上,当扩展名更改为. ico时,DLL中存储的图标不会显示
然而,在最新的Windows 10版本上,它确实工作,直到我试图打开照片应用程序内部的“图标”。从那时起,我就无法重新创建它。
Windows 11
在Windows 11上,该图标在资源管理器视图中显示为正常图标。然而,当它在照片应用程序中打开时,会显示错误。这种行为当然很有趣,因为用户如果只是想更改文件夹的图标,可能会将恶意DLL注入到资源管理器中。这可能看起来像这样:
为什么?
这是一种非常隐蔽的将DLL注入Explorer进程的方法,因为它不使用通常的DLL注入API。它确实产生了两个简短的弹出窗口,但并不太令人不安。因此,它可以被威胁行为者用作AV规避技术,通过合法的资源管理器进程执行代码或加载UMD rootkit。nbsp;
此外,将DLL伪装成. ico文件传播可能是一种有趣的攻击媒介。
使用的工具
为了获得正确的窗口句柄,我使用了Spy++,这是一个与Visual Studio一起安装的工具。
项目地址
https://github.com/0xda568/IconJector?tab=readme-ov-file
原文始发于微信公众号(SecHub网络安全社区):Windows资源管理器Icon图标注入
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论