Sharp4BypassAMSI:一款通过 Patch 内存绕过 AMSI 检测的工具
字数 2071 2025-08-29 22:41:24

Sharp4BypassAMSI:通过内存Patch绕过AMSI检测的详细指南

1. AMSI简介

AMSI(Antimalware Scan Interface)是微软开发的一套反恶意软件扫描接口,主要功能包括:

  • 提供应用程序与反恶意软件产品的标准接口
  • 允许反恶意软件产品对脚本、宏、PowerShell等进行扫描
  • 在内存中检测恶意行为,而不仅依赖静态特征

2. Sharp4BypassAMSI工具概述

Sharp4BypassAMSI是一款专门设计用于绕过AMSI检测的.NET工具,其核心原理是通过内存Patch技术修改AMSI的关键函数。

主要特点:

  • 纯.NET实现,无需依赖外部库
  • 支持多种AMSI绕过技术
  • 可针对不同版本的AMSI进行适配
  • 低检测率,适合红队操作

3. 技术原理详解

3.1 AMSI工作流程

  1. 应用程序调用AMSI接口(如AmsiScanBuffer)
  2. AMSI将扫描请求传递给注册的反恶意软件引擎
  3. 引擎返回扫描结果(恶意/非恶意)
  4. 应用程序根据结果决定是否阻止执行

3.2 关键函数Patch

Sharp4BypassAMSI主要通过修改以下关键函数实现绕过:

  1. AmsiScanBuffer

    • AMSI核心扫描函数
    • 工具会修改其内存中的指令,使其直接返回"干净"结果
  2. AmsiInitialize

    • AMSI初始化函数
    • Patch后可导致AMSI初始化失败
  3. AmsiOpenSession

    • 会话管理函数
    • 修改后可破坏扫描会话的建立

3.3 具体实现步骤

  1. 获取函数地址

    • 通过GetProcAddress获取AMSI相关函数地址
    • 使用.NET的P/Invoke调用Windows API
  2. 修改内存保护

    • 使用VirtualProtect修改目标内存区域为可写
    • 绕过内存保护机制(PAGE_EXECUTE_READ等)
  3. 写入Patch代码

    • 根据不同Windows版本写入特定指令
    • 常见Patch方式:
      • 直接返回S_OK (0x00000000)
      • 修改跳转指令绕过检测逻辑
      • NOP关键判断指令
  4. 恢复内存保护

    • 将内存属性恢复为原始状态
    • 避免引起异常或检测

4. 使用教程

4.1 环境准备

  • .NET Framework 4.0+ 或 .NET Core 3.1+
  • Windows 7及以上系统
  • 管理员权限(部分技术需要)

4.2 基本使用

// 实例化Bypass类
var bypass = new Sharp4BypassAMSI();

// 执行标准绕过
bypass.Bypass();

// 检查是否绕过成功
if(bypass.IsBypassed())
{
    // 执行后续操作
}

4.3 高级选项

// 指定绕过技术(根据目标系统选择)
bypass.Bypass(AMSI_BYPASS_METHOD.PatchAmsiScanBuffer);

// 持久化绕过(需要管理员权限)
bypass.Persist();

// 恢复原始AMSI功能
bypass.Restore();

4.4 支持的绕过方法

  1. PatchAmsiScanBuffer

    • 直接修改AmsiScanBuffer函数
    • 适用于大多数Windows 10/11版本
  2. PatchAmsiOpenSession

    • 针对会话机制的绕过
    • 对某些EDR产品特别有效
  3. HeapPatch

    • 修改AMSI使用的堆内存
    • 更隐蔽,但兼容性较差
  4. ContextPatch

    • 修改AMSI上下文结构
    • 需要深入了解AMSI内部结构

5. 防御与检测

5.1 如何检测此类绕过

  • 监控关键AMSI函数的内存修改
  • 检查AMSI.dll的完整性
  • 使用受保护进程轻量级(PPL)技术
  • 实施控制流保护(CFG)

5.2 防御建议

  1. 应用程序防御

    • 实现多层检测机制
    • 不依赖单一AMSI结果
  2. 系统加固

    • 启用Device Guard
    • 配置Windows Defender攻击面减少规则
    • 使用Credential Guard
  3. 监控措施

    • 记录AMSI初始化失败事件
    • 监控异常进程行为

6. 高级技巧与注意事项

6.1 绕过技术选择

  • 针对Windows 10 1903+:优先使用HeapPatch
  • 针对EDR产品:结合多种Patch技术
  • 在受限环境:尝试ContextPatch

6.2 规避检测的技巧

  1. 时序混淆

    • 延迟执行Patch操作
    • 在合法操作后执行
  2. 间接Patch

    • 通过ROP链间接修改内存
    • 避免直接调用敏感API
  3. 内存伪装

    • 使用合法的内存操作掩盖Patch
    • 结合.NET JIT编译特性

6.3 常见问题解决

  1. 权限不足

    • 确保以管理员身份运行
    • 尝试使用不同技术
  2. 兼容性问题

    • 检查Windows版本
    • 更新工具到最新版本
  3. 检测触发

    • 降低Patch频率
    • 使用更隐蔽的技术

7. 工具获取与更新

  • 官方GitHub仓库(需自行搜索最新地址)
  • 定期检查更新以适应新Windows版本
  • 建议自行编译以减少静态检测

8. 法律与道德声明

  • 本技术仅限合法授权测试使用
  • 未经授权使用可能违反法律
  • 使用者需自行承担相关责任

9. 扩展阅读

  1. 微软AMSI官方文档
  2. 《Windows内部原理》相关章节
  3. 最新AMSI绕过技术研究论文
  4. .NET内存操作高级技巧

10. 版本历史

  • v1.0:基础Patch功能
  • v1.2:增加多种绕过技术
  • v1.5:支持Windows 11
  • v2.0:全面重构,降低检测率

本文档提供了Sharp4BypassAMSI工具的全面技术解析,从原理到实践,涵盖了关键技术和注意事项。实际使用时请根据目标环境选择适当的技术组合,并注意规避检测机制。

Sharp4BypassAMSI:通过内存Patch绕过AMSI检测的详细指南 1. AMSI简介 AMSI(Antimalware Scan Interface)是微软开发的一套反恶意软件扫描接口,主要功能包括: 提供应用程序与反恶意软件产品的标准接口 允许反恶意软件产品对脚本、宏、PowerShell等进行扫描 在内存中检测恶意行为,而不仅依赖静态特征 2. Sharp4BypassAMSI工具概述 Sharp4BypassAMSI是一款专门设计用于绕过AMSI检测的.NET工具,其核心原理是通过内存Patch技术修改AMSI的关键函数。 主要特点: 纯.NET实现,无需依赖外部库 支持多种AMSI绕过技术 可针对不同版本的AMSI进行适配 低检测率,适合红队操作 3. 技术原理详解 3.1 AMSI工作流程 应用程序调用AMSI接口(如AmsiScanBuffer) AMSI将扫描请求传递给注册的反恶意软件引擎 引擎返回扫描结果(恶意/非恶意) 应用程序根据结果决定是否阻止执行 3.2 关键函数Patch Sharp4BypassAMSI主要通过修改以下关键函数实现绕过: AmsiScanBuffer : AMSI核心扫描函数 工具会修改其内存中的指令,使其直接返回"干净"结果 AmsiInitialize : AMSI初始化函数 Patch后可导致AMSI初始化失败 AmsiOpenSession : 会话管理函数 修改后可破坏扫描会话的建立 3.3 具体实现步骤 获取函数地址 : 通过GetProcAddress获取AMSI相关函数地址 使用.NET的P/Invoke调用Windows API 修改内存保护 : 使用VirtualProtect修改目标内存区域为可写 绕过内存保护机制(PAGE_ EXECUTE_ READ等) 写入Patch代码 : 根据不同Windows版本写入特定指令 常见Patch方式: 直接返回S_ OK (0x00000000) 修改跳转指令绕过检测逻辑 NOP关键判断指令 恢复内存保护 : 将内存属性恢复为原始状态 避免引起异常或检测 4. 使用教程 4.1 环境准备 .NET Framework 4.0+ 或 .NET Core 3.1+ Windows 7及以上系统 管理员权限(部分技术需要) 4.2 基本使用 4.3 高级选项 4.4 支持的绕过方法 PatchAmsiScanBuffer : 直接修改AmsiScanBuffer函数 适用于大多数Windows 10/11版本 PatchAmsiOpenSession : 针对会话机制的绕过 对某些EDR产品特别有效 HeapPatch : 修改AMSI使用的堆内存 更隐蔽,但兼容性较差 ContextPatch : 修改AMSI上下文结构 需要深入了解AMSI内部结构 5. 防御与检测 5.1 如何检测此类绕过 监控关键AMSI函数的内存修改 检查AMSI.dll的完整性 使用受保护进程轻量级(PPL)技术 实施控制流保护(CFG) 5.2 防御建议 应用程序防御 : 实现多层检测机制 不依赖单一AMSI结果 系统加固 : 启用Device Guard 配置Windows Defender攻击面减少规则 使用Credential Guard 监控措施 : 记录AMSI初始化失败事件 监控异常进程行为 6. 高级技巧与注意事项 6.1 绕过技术选择 针对Windows 10 1903+:优先使用HeapPatch 针对EDR产品:结合多种Patch技术 在受限环境:尝试ContextPatch 6.2 规避检测的技巧 时序混淆 : 延迟执行Patch操作 在合法操作后执行 间接Patch : 通过ROP链间接修改内存 避免直接调用敏感API 内存伪装 : 使用合法的内存操作掩盖Patch 结合.NET JIT编译特性 6.3 常见问题解决 权限不足 : 确保以管理员身份运行 尝试使用不同技术 兼容性问题 : 检查Windows版本 更新工具到最新版本 检测触发 : 降低Patch频率 使用更隐蔽的技术 7. 工具获取与更新 官方GitHub仓库(需自行搜索最新地址) 定期检查更新以适应新Windows版本 建议自行编译以减少静态检测 8. 法律与道德声明 本技术仅限合法授权测试使用 未经授权使用可能违反法律 使用者需自行承担相关责任 9. 扩展阅读 微软AMSI官方文档 《Windows内部原理》相关章节 最新AMSI绕过技术研究论文 .NET内存操作高级技巧 10. 版本历史 v1.0:基础Patch功能 v1.2:增加多种绕过技术 v1.5:支持Windows 11 v2.0:全面重构,降低检测率 本文档提供了Sharp4BypassAMSI工具的全面技术解析,从原理到实践,涵盖了关键技术和注意事项。实际使用时请根据目标环境选择适当的技术组合,并注意规避检测机制。