文章总结: 该工具利用WindowsAPI的ReadProcessMemory函数漏洞,通过操纵参数注入shellcode来绕过AV和EDR检测。它基于Rust开发,提供远程执行、终端注入和文件执行三种方式,展示了API行为被滥用的风险。建议安全厂商加强监控非标准API调用,红队可用此测试防御系统。
综合评分: 88
文章分类: 红队,免杀,漏洞分析,安全工具,渗透测试
间接Shellcode执行工具利用Windows API漏洞绕过杀毒软件和EDR。
TtTeam
2025年12月5日 12:40
广东
一种用 Rust 开发的新型攻击性安全工具,通过利用 Windows API 中被忽视的行为,展示了一种绕过现代端点检测和响应 (EDR) 系统的新方法。
该工具名为“间接 Shellcode 执行器”,利用 ReadProcessMemory 函数注入 shellcode,有效地避免了安全厂商监控恶意活动的标准 API 调用。
这项技术的核心依赖于安全研究员 Jean-Pierre LESUEUR (DarkCoderSc) 最初发现的研究成果。ReadProcessMemory 函数旨在从特定进程读取数据,但它包含一个名为 *lpNumberOfBytesRead 的 [out] 指针参数。
此参数旨在报告成功读取的数据量。但是,攻击者可以通过操纵此指针强制 API 将数据写入进程内存。
这种行为利用“读取”函数创建了一个“写入原语”。由于该工具避开了诸如 WriteProcessMemory 或 memcpy 之类的标准内存操作 API,因此对于依赖于钩住这些特定函数来检测代码注入的防病毒 (AV) 和 EDR 解决方案而言,这造成了一个盲点。
基于 Rust 的红队演练实现
由研究员 Mimorep 开发的间接 Shellcode 执行器是一个完全可运行的概念验证 (PoC),使用 Rust 编写。与理论上的漏洞利用不同,该工具旨在供红队演练中立即使用,用于测试防御态势。
该工具专门针对 x32 架构(通过 i686-pc-windows-msvc)进行编译,并为操作员提供三种不同的攻击面场景:
- 远程有效载荷执行:该工具可以直接从远程命令和控制 (C2) 服务器获取 shellcode (例如,将有效载荷隐藏在 PNG 文件中),并在内存中执行它。
- 终端注入:操作员可以通过命令行界面直接传递 shellcode 字符串或二进制文件以立即执行。
- 基于文件的执行:该工具可以读取隐藏在本地文件(例如文档或临时文件)中的有效载荷,并将其注入到进程中。
该工具凸显了安全厂商面临的持续挑战:Windows API 非常庞大,合法的功能往往可以被重新用于规避攻击。
通过使用 *lpNumberOfBytesRead 逐字节构建有效载荷,间接 Shellcode 执行器在寻找快速内存写入序列的启发式分析的监视下运行。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:TtTeam 《间接Shellcode执行工具利用Windows API漏洞绕过杀毒软件和EDR。》