文章总结: 本文介绍开源C2框架Covenant,其基于.NET开发,支持跨平台运行、动态编译和内存加载,具备通信伪装、加密传输等隐蔽特性。文章详述其架构组成、部署流程及信息收集、横向移动等功能,并举APT组织实战案例。最后提出网络特征检测、内存加载监控、AMSI等防御建议,为红蓝双方提供参考。 综合评分: 80 文章分类: 红队,渗透测试,安全工具,内网渗透
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由三部分组成:
- Covenant Server
服务端,跑在C2服务器上,负责管理所有Grunt、处理任务、存储数据。用ASP.NET Core写成,提供Web API和Web UI。
- Elite客户端
命令行客户端,操作员用它连到Server下发命令。支持多用户同时登录,可以团队协作。
- 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命令)
· 扒内存中的密码
七、真实场景:一个完整的攻击链
假设红队要渗透一家公司:
-
钓鱼邮件:发一封带附件的邮件,附件是Covenant生成的MSBuild XML文件
-
执行:员工点开,msbuild.exe跑起来,Grunt上线
-
信息收集:看是谁的电脑、有什么权限、内网什么样
-
提权:发现有漏洞,用提权模块拿到SYSTEM
-
横向移动:用WMI往其他服务器上种Grunt
-
拿域控:一步步跳板,最后拿下域控
-
留后门:在所有关键服务器上种Grunt
-
撤:打包数据,清日志
八、怎么防Covenant?
Covenant再隐蔽,也有迹可循:
- 看网络特征
虽然能伪装,但默认配置有特征:
· Web服务端口7443
· 默认证书指纹固定
· 心跳包周期(虽然可调,但固定不变)
- 监控内存加载
Covenant依赖Assembly.Load()从内存加载。ETW(Event Tracing for Windows)可以捕获这类事件。微软虽然没官方文档,但有社区脚本能监控。
- 开AMSI
.NET 4.8开始,AMSI(反恶意软件扫描接口)正式支持.NET程序集加载。能扫描内存里加载的.NET代码。
- 看PowerShell
Covenant的PowerShell启动器常有特征:
· -Sta -Nop -Window Hidden 参数
· 长串Base64编码
· 从远程下载执行
安全产品已经有现成的检测规则。
- 看异常进程
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框架,连黑客组织都在用》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论