Covenant:用.NET写的“隐形”C2框架,连黑客组织都在用

admin 2026-03-10 02:45:24 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍开源C2框架Covenant,其基于.NET开发,支持跨平台运行、动态编译和内存加载,具备通信伪装、加密传输等隐蔽特性。文章详述其架构组成、部署流程及信息收集、横向移动等功能,并举APT组织实战案例。最后提出网络特征检测、内存加载监控、AMSI等防御建议,为红蓝双方提供参考。 综合评分: 80 文章分类: 红队,渗透测试,安全工具,内网渗透


cover_image

Covenant:用.NET写的“隐形”C2框架,连黑客组织都在用

原创

xxxxxx xxxxxx

渗透测试知识学习

2026年3月8日 19:40 四川

Covenant:用.NET写的“隐形”C2框架,连黑客组织都在用

你听说过Cobalt Strike,也知道了Sliver。

但还有一个工具,正在悄悄成为红队和黑客的新宠——它用.NET写成,能在内存里动态编译,连俄罗斯黑客组织APT29都在用。

它叫Covenant。

一、Covenant是什么?

Covenant是一个基于.NET的开源C2(命令控制)框架,由安全研究员Ryan Cobb开发,旨在突出.NET的攻击面,让红队成员能更方便地协作。

它能干什么?

· 跨平台运行:支持Windows、Linux、MacOS,还有Docker版本

· 多用户协作:多个黑客可以同时登录同一个服务器,分头干活

· 动态编译:每次生成木马都重新编译,避免静态特征

· 内存加载:用Assembly.Load()从内存加载执行,不上磁盘

二、为什么说它是“隐形”的?

Covenant最厉害的地方在于:它长得很像正常流量。

第一:通信可伪装

它支持“监听器配置文件”(Listener Profiles),可以控制网络通信长什么样——User-Agent、URI路径、心跳间隔,全都能调。可以伪装成正常的浏览器访问,也可以模仿Windows更新。

第二:加密是标配

Grunt(Covenant的植入物)与服务器通信时,使用AES加密,还实现了前向保密(forward secrecy)的密钥交换。就算流量被截获,也解不出来。

第三:动态编译免杀

每次生成Grunt,都是用Roslyn API动态编译的,还带ConfuserEx混淆。这意味着:没有两个Grunt是完全一样的。杀毒软件靠签名识别?没用。

三、黑客组织也在用

Covenant不是玩具。MITRE ATT&CK官方收录显示,APT组织HAFNIUM在攻击中使用了Covenant。

HAFNIUM是谁?就是2021年攻破Exchange服务器的那个中国境外黑客组织(注:这里只是引述MITRE的 attribution,不代表我方立场)。

他们怎么用的?

· 先打穿面向互联网的服务器

· 然后用Covenant建立C2通道

· 后续横向移动、数据窃取

这说明什么?说明Covenant已经被实战检验过,不是实验室玩具。

四、Covenant的架构长啥样?

Covenant由三部分组成:

  1. Covenant Server

服务端,跑在C2服务器上,负责管理所有Grunt、处理任务、存储数据。用ASP.NET Core写成,提供Web API和Web UI。

  1. Elite客户端

命令行客户端,操作员用它连到Server下发命令。支持多用户同时登录,可以团队协作。

  1. Grunt植入物

被控机器上跑的“木马”。用.NET Framework写成,支持反射加载、内存执行。

五、怎么用?一个简化版流程

第一步:部署Server

git clone --recurse-submodules https://github.com/cobbr/Covenant

cd Covenant/Covenant

dotnet build

dotnet run

然后浏览器访问 https://你的IP:7443,注册账号,就看到Web界面了。

第二步:创建Listener

点“Listeners”→“Create”,选HTTP或HTTPS,设置BindAddress和ConnectAddress(就是你的C2服务器IP)。

第三步:生成Launcher

点“Launchers”,选PowerShell、MSBuild、MSHTA等。Covenant支持多种启动方式:

· PowerShell:生成一段PowerShell命令,目标一跑就上线

· MSBuild:生成一个XML文件,用msbuild.exe执行

· MSHTA:生成HTA文件,用mshta.exe执行

· WMI:通过WMI远程执行

第四步:目标上线

目标执行后,Grunts页面就会出现一个新的Grunt。点进去,就能执行命令了。

六、能干什么坏事?

进入Grunt交互界面后,能做的事多了:

信息收集

· whoami、ipconfig、net view

· 抓屏幕截图

· 键盘记录

横向移动

· WMI远程执行

· PsExec扩散

· 令牌窃取

权限维持

· 创建计划任务

· 注册表自启动

· 服务安装

凭证窃取

· Mimikatz集成(直接执行mimikatz命令)

· 扒内存中的密码

七、真实场景:一个完整的攻击链

假设红队要渗透一家公司:

  1. 钓鱼邮件:发一封带附件的邮件,附件是Covenant生成的MSBuild XML文件

  2. 执行:员工点开,msbuild.exe跑起来,Grunt上线

  3. 信息收集:看是谁的电脑、有什么权限、内网什么样

  4. 提权:发现有漏洞,用提权模块拿到SYSTEM

  5. 横向移动:用WMI往其他服务器上种Grunt

  6. 拿域控:一步步跳板,最后拿下域控

  7. 留后门:在所有关键服务器上种Grunt

  8. 撤:打包数据,清日志

八、怎么防Covenant?

Covenant再隐蔽,也有迹可循:

  1. 看网络特征

虽然能伪装,但默认配置有特征:

· Web服务端口7443

· 默认证书指纹固定

· 心跳包周期(虽然可调,但固定不变)

  1. 监控内存加载

Covenant依赖Assembly.Load()从内存加载。ETW(Event Tracing for Windows)可以捕获这类事件。微软虽然没官方文档,但有社区脚本能监控。

  1. 开AMSI

.NET 4.8开始,AMSI(反恶意软件扫描接口)正式支持.NET程序集加载。能扫描内存里加载的.NET代码。

  1. 看PowerShell

Covenant的PowerShell启动器常有特征:

· -Sta -Nop -Window Hidden 参数

· 长串Base64编码

· 从远程下载执行

安全产品已经有现成的检测规则。

  1. 看异常进程

msbuild.exe、mshta.exe、regsvr32.exe这些“白名单”进程,如果发起异常网络连接——可疑。

九、最后一句

Covenant是开源社区的产物,也是黑客的利器。

它用.NET的动态编译和内存加载,绕过了传统检测。APT组织在用,红队在练,蓝队在防。

它的出现,让买不起Cobalt Strike的人有了新选择,也让防御方多了一个需要盯着的对手。

想了解黑客怎么干活?

安装命令:

git clone https://github.com/cobbr/Covenant

cd Covenant/Covenant

dotnet run

今晚就试试。


免责声明:

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

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

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

本文转载自:渗透测试知识学习 xxxxxx xxxxxx《Covenant:用.NET写的“隐形”C2框架,连黑客组织都在用》

评论:0   参与:  0