100多个C#工具怎么用?先学会这招绕过AMSI

admin 2026-05-11 08:15:09 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详述了C#红队工具绕过AMSI的技巧,指出直接修补AmsiScanBuffer易被拦截,推荐清除clr.dll内存中的对应字符串或使用硬件断点致盲AMSI,后者最隐蔽有效。同时梳理了107个C#后渗透武器库,含55个主机通用与52个域专用工具,覆盖提权、凭据窃取与横向移动等,为红队实战提供丰富工具及绕过防御的可操作方案。 综合评分: 83 文章分类: 红队,免杀,安全工具,内网渗透,渗透测试


cover_image

100多个C#工具怎么用?先学会这招绕过AMSI

原创

陆安予 陆安予

白帽子安全笔记2.0

2026年4月3日 06:27 江苏

在小说阅读器读本章

去阅读

这篇文章,我整理了上百个C# 红队工具和插件,获取方式见文末

目录

一、Cobalt Strike 中的 C# 执行 二、AMSI绕过方法 三、C# 武器库   · 主机通用工具(55 个)   · 域环境专用工具(52 个) 四、免责声明


一、Cobalt Strike 中的 C# 执行

上文我们介绍了AMSI的历史和监控范围,Cobalt Strike中自带的 execute-assembly 为什么无法绕过AMSI?

这是由配置文件 post-ex 部分控制的,(如4.9.1版本中)AMSI 推荐配置是 false,由于它特征固定,不管是开启还是关闭,现在均会被检测,并要求我们使用自定义的 patch 方法。

post-ex {
    set spawnto_x86 "%windir%\syswow64\wbem\wmiprvse.exe -Embedding";
    set spawnto_x64 "%windir%\sysnative\wbem\wmiprvse.exe -Embedding";
    set pipename "Winsock2\CatalogChangeListener-###-0";
    set obfuscate "true";
    set smartinject "true";
    set cleanup "true";
    set amsi_disable "false"; #Recommended to Patch AMSI yourself
    set keylogger "GetAsyncKeyState";

    # Enable one of the following options for starting a spoofed thread
    #set threadhint "ntdll.dll!RtlUserThreadStart+0x21"
    #set threadhint "kernel32.dll!BaseThreadInitThunk+0x14"
}

二、AMSI绕过方法

现在,我们使用 InlineExecute-Assembly,它将使用修补方法致盲 AMSI。

在 a.exe 中执行 AMSI 修补

BOOL patchAMSI()
{

#ifdef _M_AMD64
    unsigned char amsiPatch[] = { 0xB8, 0x57, 0x00, 0x07, 0x80, 0xC3 };//x64
#elif defined(_M_IX86)
    unsigned char amsiPatch[] = { 0xB8, 0x57, 0x00, 0x07, 0x80, 0xC2, 0x18, 0x00 };//x86
#endif

    HINSTANCE hinst = LoadLibrary("amsi.dll");
    void* pAddress = (PVOID)GetProcAddress(hinst, "AmsiScanBuffer");

这个代码直接加载amsi.dll,然后强行修改了返回指令使其报错,这个就跟web修改返回值欺骗前端校验一样,可以看到这种简单粗暴的操作已经被精准识别为patch行为,因此任何想尝试操控这个dll的均会被检测。

Defender 拦截 AMSI 修补告警

那只能迂回操作:

根据对.Net检测的逻辑,擦除clr.dll的AmsiScanBuffer以阻止amsi.dll扫描。

未执行修补(左),执行修补(右)

但这个只能看出加载了C# 看不出效果,我们找一个.NET程序运行。然后Process Hacker找到memory,然后找到clr.dll,可以看到有许多clr.dll,这是正常的,它分配在多个内存区域,我们要知道除了.text代码段必须有读执行(RX)权限,其它数据资源区域通常是读写(RW),看到中间那个1.8MB的那个,双击打开,点击那个保存。

.NET程序运行后的clr.dll内容

把那个导出的BIN丢到DIE中,搜索字符串。这时候我们就会发现这个AmsiScanBuffer字符串。

DIE打开clr.dll并查找字符串

直接使用泳池派对将我们的载荷注入到这个进程。

PoolPartyBof 进程注入日志

注意: 注入的进程位数必须与有效载荷保持一致(x64 位进程)。

然后执行修补操作

在C#进程上进行修补

再次导出,这时候我们发现,AmsiScanBuffer消失了这一变化。

修补后字符串被清除

由于CLR需要通过这个字符串来才能找到函数从而调用扫描功能,现在找不到了,即使amsi.dll被加载但它不扫描,实现绕过。

那硬件断点是什么意思呢,这个就比较复杂了。简而言之就是在扫描之前被拦截了,这跟上面的不同,上面是让它找不到扫描功能,这个是相当于直接开挂拦截扫描功能,不修改任何DLL,直接操作CPU指令。

使用硬件断点绕过AMSI执行c #

注意: ETW参数不要用,那部分会被Defender检测到。

不需要知道它怎么实现,只需要知道目前阶段是这样,已经两三年了依然无解。这个东西非常隐蔽,是绕过AMSI和ETW的首选。


三、C# 武器库

经过内存修补加载 .NET 程序和 BOF 一样能实现效果,它们互相补充。至少到目前为止,这些技术不会被检测到。

接下来,我们就可以使用 C# 武器库 执行各种后渗透任务,这些工具多达上百个,足以研究许久。

主机通用工具

| 序号 | 工具名称 | 分类 | 用途说明 | | — | — | — | — | | 1 | Seatbelt | 信息收集 | 全能主机安全配置与信息搜集 | | 2 | winPEAS | 信息收集 | 自动化提权路径与本地配置枚举 | | 3 | SharpEDRChecker | 信息收集 | 检测系统中存在的防御产品 (AV/EDR) | | 4 | SharpAppLocker | 信息收集 | 枚举本地 AppLocker 限制策略 | | 5 | AtYourService | 信息收集 | 专门针对本地服务的安全枚举 | | 6 | SharpCloud | 信息收集 | 搜集本地云环境凭据 (AWS/Azure/GCP) | | 7 | SharpPrinter | 信息收集 | 发现主机连接的打印机信息 | | 8 | SharpDir | 信息收集 | 快速枚举本地或远程目录/文件 | | 9 | Scout | 信息收集 | 主机网络与环境侦察 | | 10 | Watson | 权限提升 | 匹配系统缺失补丁与已知提权漏洞 | | 11 | SweetPotato | 权限提升 | 服务账号提权至 SYSTEM (Potato 变种) | | 12 | SharpUp | 权限提升 | 检查本地系统常见的安全错误配置 | | 13 | SharpBypassUAC | 权限提升 | 集合多种绕过 UAC 技术 | | 14 | Moriarty | 权限提升 | 漏洞扫描并提供提权利用建议 | | 15 | TokenStomp | 权限提升 | 利用令牌特权移除漏洞进行攻击 | | 16 | SharpKatz | 凭据窃取 | 纯 C# 实现 Mimikatz (Logonpasswords) | | 17 | SafetyKatz | 凭据窃取 | 内存加载经过混淆处理的 Mimikatz | | 18 | BetterSafetyKatz | 凭据窃取 | 动态获取最新 Mimikatz 并运行时加载 | | 19 | SharpDPAPI | 凭据窃取 | 解密 DPAPI 保护的密码和 MasterKey | | 20 | SharpChrome | 凭据窃取 | 专门提取 Chrome 浏览器的密码和 Cookie | | 21 | SharpChromium | 凭据窃取 | 通用 Chromium 内核浏览器数据提取 | | 22 | SharpCookieMonster | 凭据窃取 | 从浏览器中直接提取 Cookie 数据 | | 23 | SharpDump | 凭据窃取 | 导出 LSASS 进程内存镜像 | | 24 | SharpMiniDump | 凭据窃取 | 创建 LSASS 的轻量级 Minidump | | 25 | SharpHandler | 凭据窃取 | 窃取/复制现有进程的 LSASS 句柄 | | 26 | SharpWifiGrabber | 凭据窃取 | 提取本地保存的所有 Wifi 密码 | | 27 | StickyNotesExtract | 凭据窃取 | 提取 Windows 便签数据库中的文字 | | 28 | ThunderFox | 凭据窃取 | 提取 Firefox 和 Thunderbird 凭据 | | 29 | SharpTokenFinder | 凭据窃取 | 从 Office 应用中提取 M365 访问令牌 | | 30 | ThreatCheck | 防御规避 | 定位文件中被杀软识别的特征字节 | | 31 | SharpKiller | 防御规避 | 运行时绕过 AMSI 检测 | | 32 | SharpBlock | 防御规避 | 阻断 EDR DLL 的加载执行 | | 33 | Shhmon | 防御规避 | 卸载驱动使 Sysmon 日志监控失效 | | 34 | Evasor | 防御规避 | 评估并自动规避现有的 AV/EDR | | 35 | SharpCrashEventLog | 防御规避 | 制造异常使日志服务停止记录 | | 36 | SharpRDP | 横向移动 | 通过 RDP 协议在控制台执行命令 | | 37 | SharpWMI | 横向移动 | 通过 WMI 接口进行远程命令执行 | | 38 | SharpMapExec | 横向移动 | 批量验证凭据并执行任务 (C# 版 CME) | | 39 | SharpMove | 横向移动 | 综合横向移动手段 (DCOM/WMI 等) | | 40 | RunasCs | 横向移动 | 增强型 runas,支持交互式 Shell | | 41 | SharpCOM | 横向移动 | 利用 DCOM 对象远程执行代码 | | 42 | SharpChisel | 横向移动 | Chisel 内网穿透隧道的 C# 包装版 | | 43 | SharpExec | 横向移动 | 辅助横向移动的快速命令执行工具 | | 44 | Snaffler | 文件搜索 | 自动发现共享文件夹中的敏感文件 | | 45 | SauronEye | 文件搜索 | 关键字扫描敏感文档 (docx, xlsx 等) | | 46 | LockLess | 文件搜索 | 复制并读取被锁定的系统文件 | | 47 | SharpSearch | 文件搜索 | 增强型文件搜索工具 | | 48 | SharpFiles | 文件搜索 | 批量搜索共享文件夹中的文件 | | 49 | SharpFinder | 文件搜索 | 搜索具有特定权限的可读文件 | | 50 | SharPersist | 持久化 | 安装各类持久化后门 (任务/服务等) | | 51 | SharpStay | 持久化 | 快速安装常见的持久化机制 | | 52 | SharpDoor | 持久化 | 补丁 Termsrv 以开启多用户 RDP | | 53 | BadAssMacros | 攻击进入 | 自动化生成恶意的 C# 宏代码 | | 54 | PurpleSharp | 模拟对抗 | 自动化对手模拟,生成安全遥测数据 | | 55 | SharpSphere | 云/虚拟化 | 针对 vCenter 虚拟机进行 Guest 操作 |

域环境专用工具

| 序号 | 工具名称 | 分类 | 用途说明 | | — | — | — | — | | 1 | SharpHound | 域侦察与建模 | BloodHound 采集器,抓取全域权限依赖与攻击路径图 | | 2 | ADCollector | 域侦察与建模 | 快速扫描域内高价值属性(委派、AS-REP、SPN 等) | | 3 | EDD | 域侦察与建模 | 纯 .NET 环境枚举域用户、组、机器及其成员关系 | | 4 | SharpView | 域侦察与建模 | PowerView 的 C# 移植版,深度的域对象权限查询 | | 5 | ADSearch | 域侦察与建模 | 专业 LDAP 查询工具,支持高级自定义过滤器 | | 6 | SharpADWS | 域侦察与建模 | 通过 AD Web 服务端口进行隐蔽的域信息搜索 | | 7 | StandIn | 域侦察与建模 | 轻量级域数据查询,支持简单的账号变更操作 | | 8 | TruffleSnout | 域侦察与建模 | 迭代式 AD 发现工具包,用于低频率红队侦察 | | 9 | SharpSniper | 域侦察与建模 | 定位特定高价值用户(如管理员)当前登录的 IP | | 10 | SharpShares | 域侦察与建模 | 批量枚举全域网络共享资源及其访问控制权限 | | 11 | SharpLaps | 域侦察与建模 | 从 LDAP 中检索 LAPS 机制存储的本地管理员密码 | | 12 | SharpZeroLogon | 协议漏洞利用 | Zerologon 漏洞利用,强制重置域控机器账号密码 | | 13 | SharpAllowedToAct | 协议漏洞利用 | 资源限制委派 (RBCD) 攻击,实现机器对象接管 | | 14 | Whisker | 协议漏洞利用 | 操作 msDS-KeyCredentialLink 进行身份账号接管 | | 15 | ShadowSpray | 协议漏洞利用 | 批量喷洒 Shadow Credentials 探测 GenericWrite 权限 | | 16 | SharpSuccessor | 协议漏洞利用 | 利用 dMSA (默认管理服务账户) 的权限提升漏洞 | | 17 | DeployPrinterNightmare | 协议漏洞利用 | 利用打印机漏洞在域内分发恶意驱动实现提权 | | 18 | Certify | 证书服务攻击 | 扫描 AD CS 证书服务器的漏洞模板 (ESC1-ESC8) | | 19 | ForgeCert | 证书服务攻击 | 利用被盗 CA 私钥为域内任意用户签发伪造证书 | | 20 | ADCSPwn | 证书服务攻击 | 强制机器认证并中继到证书服务 (AD CS) 申请证书 | | 21 | PassTheCert | 证书服务攻击 | 使用证书通过 Schannel 向 LDAP 服务器进行身份验证 | | 22 | Rubeus | 认证与票据利用 | Kerberos 协议交互全能工具 (Roast/票据注入等) | | 23 | KrbRelay | 认证与票据利用 | Kerberos 服务中继攻击框架,支持中继到 LDAP | | 24 | KrbRelayUp | 认证与票据利用 | 结合中继与 LDAP 权限实现全自动域内本地提权 | | 25 | SharpSystemTriggers | 认证与票据利用 | 集合多种强制远程认证触发器 (如 PetitPotam) | | 26 | SpoolSample | 认证与票据利用 | 利用打印机协议强制机器向攻击者机器发起认证 | | 27 | Farmer | 认证与票据利用 | 本地启动 WebDAV 服务捕获域内发送的 NetNTLM | | 28 | SharpWebServer | 认证与票据利用 | 红队专用 Web/WebDAV 捕获服务器,提取哈希值 | | 29 | SharpSpray | 认证与票据利用 | 利用 LDAP 协议对域内所有用户批量进行密码喷洒 | | 30 | SharpHose | 认证与票据利用 | 高并发异步密码喷洒工具,适用于大规模域环境 | | 31 | SharpSMBSpray | 认证与票据利用 | 针对 SMB 服务进行的批量密码验证与喷洒 | | 32 | SharpGPOAbuse | 组策略利用 | 利用 GPO 编辑权限修改策略,在目标机强制执行任务 | | 33 | Group3r | 组策略利用 | 深度扫描 GPO 配置文件中的漏洞、权限及硬编码密码 | | 34 | Grouper2 | 组策略利用 | 自动化搜寻 GPO 配置中存在的安全隐患和特权项 | | 35 | SharpSecDump | 域横向与执行 | 远程导出目标机器的 SAM、LSA 和域缓存机密 | | 36 | Sharp-SMBExec | 域横向与执行 | 基于原生 SMB 协议实现远程命令执行 | | 37 | SharpNoPSExec | 域横向与执行 | 利用远程服务管理器实现的无文件横向移动 | | 38 | SharpRDP | 域横向与执行 | 通过 RDP 协议命令行方式在远程主机隐蔽执行命令 | | 39 | SharpWMI | 域横向与执行 | 远程执行 WMI 查询或通过 WMI 启动远程新进程 | | 40 | SharpNamedPipePTH | 域横向与执行 | 在命名管道连接中实现哈希传递攻击 (PTH) | | 41 | SharpMove | 域横向与执行 | 集合 DCOM、WMI 等多种手段的远程横向载体工具 | | 42 | SharpMapExec | 域横向与执行 | 批量验证凭据并在域内多台机器执行任务 (C# 版 CME) | | 43 | CheeseTools | 域横向与执行 | 针对横向移动优化的后渗透代码执行小工具集 | | 44 | SharpWSUS | 域横向与执行 | 通过 WSUS 更新服务器批量分发并执行恶意 Payload | | 45 | SharpSCCM | 域横向与执行 | 针对域内 SCCM 环境的资产发现、接管与横向移动 | | 46 | SharpSCOM | 域横向与执行 | 针对 SCOM 管理环境的代理接管与远程代码执行 | | 47 | ADFSDump | 域横向与执行 | 远程提取 AD FS 身份验证服务的关键机密和证书 | | 48 | SharpSQLPwn | 域横向与执行 | 发现并利用域内 MSSQL 实例的配置漏洞进行接管 | | 49 | SqlClient | 域横向与执行 | 利用域凭据通过数据库连接执行命令或数据查询 | | 50 | SharpReg | 域横向与执行 | 通过域账户权限远程读写目标主机的注册表项 | | 51 | SharpSvc | 域横向与执行 | 远程枚举、启动或停止目标主机的 Windows 服务 | | 52 | SharpTask | 域横向与执行 | 远程查询、创建或删除目标主机的计划任务 |


获取方式

本文涉及的所有资料已整理打包,开箱即用。

获取步骤:

  1. 1. 👍 点赞 + 爱心,支持一下
  2. 2. 点击公众号底部菜单栏 「武器库」 即可获取下载链接

四、免责声明

本文涉及方案仅限合法授权的安全研究、渗透测试用途,使用者须确保符合《网络安全法》及相关法规。具体条款如下:

  • • 仅可用于已获得书面授权的目标系统测试;
  • • 遵守法律法规,不得用于侵犯他人隐私或数据窃取;

本人不承担因用户滥用本软件导致的任何后果。使用即视为同意并接受上述条款。


推荐阅读

  • • Tigress 和 OLLVM 混淆 C 代码
  • • [更新] 红队加载器 LoaderV5
  • • 攻防必备,DLL 代理自动化生成
  • • 攻防必备,DLL 侧载(白加黑)自动化生成
  • • 采用黑白名单匹配进行反沙箱
  • • [0day] 新挖掘到一套高级 LNK 快捷方式

免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:白帽子安全笔记2.0 陆安予 陆安予《100多个C#工具怎么用?先学会这招绕过AMSI》

评论:0   参与:  0