chainski/GlobalAMSIBypass

GitHub: chainski/GlobalAMSIBypass

通过修补内存中 amsi.dll 的 AmsiScanBuffer 函数实现 PowerShell 进程级别的全局 AMSI 绕过。

Stars: 15 | Forks: 5




# PowerShell 全局 AMSI 绕过 # 概述 该 PowerShell 脚本通过修补当前进程内存中 amsi.dll 的 AmsiScanBuffer 函数,实现全局反恶意软件扫描接口 (AMSI) 绕过。这种方法会禁用该进程中执行的所有脚本和命令的 `AMSI` 扫描,使其成为安全研究人员和红队人员的有力工具。 ## 此 AMSI 绕过为何脱颖而出 - 全局范围:与仅影响特定脚本块或会话的局部 `AMSI` 绕过不同,此绕过在进程内全局修改 `AmsiScanBuffer` 的行为。一旦应用,所有后续 `AMSI` 扫描都将返回 `AMSI_RESULT_CLEAN`,从而在整个进程生命周期内有效禁用 `AMSI`。 - 不使用 Add-Type:许多 `AMSI` 绕过技术依赖 `Add-Type` 来编译 C# 代码,这是端点安全解决方案常见的检测载体。此脚本完全避免使用 `Add-Type`,而是利用反射和动态程序集创建来降低被检测的可能性。 - 低级内存操作:通过使用 `VirtualProtect` 和自定义字节补丁直接在内存中修补 `amsi.dll`,此方法比大多数绕过方法操作层级更低,使其更难被检测和缓解。 - 隐蔽性与稳定性:该脚本谨慎管理内存保护,确保补丁被干净地应用和还原,最大限度地降低崩溃或内存损坏的风险。 # 全局与局部 AMSI 绕过 ## 全局 AMSI 绕过: 影响整个进程,禁用其中执行的所有脚本和命令的 `AMSI`。 通过修补 `amsi.dll` 中的 `AmsiScanBuffer` 以始终返回 `AMSI_RESULT_CLEAN` 来实现。 在进程期间持续有效,无需为后续脚本重新应用。 非常适合需要在没有 `AMSI` 干扰的情况下运行多个脚本或命令的场景。 由于其影响范围较广,检测风险较高,但此实现通过隐蔽技术缓解了这一问题。 ## 局部 AMSI 绕过: 仅限于特定的脚本块、会话或 PowerShell 实例。 通常通过修改与 AMSI 相关的对象或变量(例如 `[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils')`)来实现。 必须为每个新会话或脚本块重新应用,对于广泛操作而言不太方便。 检测足迹较低,但范围较不全面。 # 功能特性 - 动态函数查找:使用 `GetProcAddress` 和 `GetModuleHandle` 动态定位 `AmsiScanBuffer`,避免使用可能在不同 Windows 版本间失效的硬编码偏移量。 - 自定义委托创建:利用 Reflection.Emit 为本机函数调用创建委托类型,而无需 `Add-Type`。 - 内存保护管理:使用 `VirtualProtect` 安全地修改内存保护以应用和还原补丁,确保进程稳定性。 - 最小依赖:仅依赖本机 PowerShell 和 `.NET` 反射,无需外部模块或库。 # 用法 运行脚本: ``` .\GlobalAMSIBypass.ps1 ``` 该脚本将执行 `GlobalAMSIBypass` 函数,修补 `amsi.dll`,并显示进度消息。 执行后,当前进程的 `AMSI` 将被禁用。您可以通过运行通常触发 `AMSI` 的脚本(例如,运行 `Invoke-Mimikatz` 或其他已知恶意命令)来测试这一点。 ## 示例输出 ![output](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/20b928d8e9175637.jpg) # 参考 [PowerShell 与 .NET AMSI 接口](https://s3cur3th1ssh1t.github.io/Powershell-and-the-.NET-AMSI-Interface) # 许可证 本项目采用 MIT 许可证授权。有关详细信息,请参阅 [LICENSE](https://github.com/Chainski/GlobalAMSIBypass#GPL-3.0-1-ov-file) 文件。 # 注意事项 - 预期用途:此脚本专为教育目的、安全研究和授权红队演练设计。未经授权的使用可能违反适用法律或政策。 - 规避检测:虽然此绕过避免了使用 `Add-Type` 并采用了隐蔽技术,但现代 EDR 解决方案仍可能检测到内存修补或可疑的 PowerShell 活动。请谨慎使用,并在受控环境中进行测试。
标签:AI合规, AMSI Bypass, amsi.dll, AmsiScanBuffer, AMSI 绕过, CTF学习, Libemu, Libemu, Linux, PowerShell 安全, RFI远程文件包含, VirtualProtect, Windows 安全, 云资产清单, 免杀技术, 内存修补, 内网渗透, 反射调用, 反病毒绕过, 暴力破解检测, 私有化部署, 逆向工程, 防御规避