文章总结: 本文介绍了Rust实现的VectoredOverloading技术,该技术利用向量化异常处理和硬件断点,在合法DLL加载过程中动态将其替换为恶意PE载荷。通过模拟系统调用并替换参数,让Windows加载器负责处理恶意代码的导入与执行,以此实现隐蔽加载和规避检测。 综合评分: 78 文章分类: 恶意软件,免杀,威胁情报,红队,漏洞分析
Rust 中的 VectoredOverloading 加载一个合法的 DLL 文件,并利用向量化异常处理机制,将动态替换为恶意
Ots安全
2025年12月26日 16:18 广东
威胁简报
恶意软件
漏洞攻击
总结:
这个概念验证程序来自 YouTube Ghost Network,这是一个恶意软件分发网络,它利用被盗用的帐户来推广恶意视频和传播恶意软件,例如信息窃取程序。
Checkpoint Research:https://research.checkpoint.com/2025/gachiloader-node-js-malware-with-api-tracing/ 记录并破解了此次攻击活动,发现 GachiLoader 的一个变种会部署名为 Kidkadi 的第二阶段恶意软件,该软件采用了一种新颖的可移植可执行文件 (PE) 注入技术。这项技术会加载一个合法的 DLL 文件,并利用向量化异常处理机制,将其动态替换为恶意载荷。
这是在 Rust 中实现 Kidkadi(又名 VectoredOverloading)的概念验证。
它通过使用硬件断点 (HWBP) 和向量化异常处理 (VEH) 来操纵合法 DLL 的加载,从而动态地更改 DLL 节对象。
本质上,该技术执行以下操作:
- SEC_IMAGE从合法的 DLL创建映射(例如wmp.dll)
- 将有效载荷 PE 映射到此映像内存上
- 将其入口点设置为0并强制字段DLL中的标志FileHeader->Characteristics
- 设置硬件保护程序 (HWBP)NtOpenSection并加载任何合法的 DLL 文件。
- 当 Windows 加载器调用时NtOpenSection,VEH 会模拟该系统调用,跳过它并替换OUT参数,从而使该节对象变为有效载荷的节对象。VEH 还会设置一个新的 HWBP。NtMapViewOfSection
- 装载机尝试将该部分映射到内存中,然后触发车辆。NtMapViewOfSection
- VEH 会替换OUT系统调用的参数并跳过其执行,从而模拟恶意 PE 视图的映射。
- 加载过程继续进行,Windows 加载程序现在负责处理恶意 PE 映像的导入和后续处理。
- 入口点被调用,执行有效载荷。
鸣谢及参考文献:
- https://github.com/CheckPointSW/VectoredOverloading/tree/main
- https://research.checkpoint.com/2025/gachiloader-node-js-malware-with-api-tracing/
END
公众号内容都来自国外平台-所有文章可通过点击阅读原文到达原文地址或参考地址
排版 编辑 | Ots 小安
采集 翻译 | Ots Ai牛马
公众号 | AnQuan7 (Ots安全)
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:Ots安全 《Rust 中的 VectoredOverloading 加载一个合法的 DLL 文件,并利用向量化异常处理机制,将动态替换为恶意》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论