Merlin
Merlin是一个用Go语言编写的跨平台后渗透命令与控制服务器和代理。
主要特点:
- 通过gRPC连接到Merlin服务器的merlin-cli命令行界面,支持多用户
- 支持的代理C2协议:http/1.1明文、基于TLS的http/1.1、HTTP/2、HTTP/2明文(h2c)、http/3(基于QUIC的http/2)
- 代理之间通过SMB、TCP和UDP进行点对点(P2P)通信,支持绑定或反向连接
- 可配置的代理数据编码和加密转换:AES、Base64、gob、十六进制、JWE、RC4和XOR
- JWE转换使用PBES2_HS512_A256KW PBES2 (RFC 2898),以HMAC SHA-512作为PRF,使用256位密钥的AES密钥包装(RFC 3394)作为加密方案
- 可配置的代理认证器:
- 无:无认证
- OPAQUE:非对称密码认证密钥交换(PAKE)
- 使用加密的JWT进行消息认证
- 可配置的代理消息数据填充,以对抗基于固定消息大小的信标检测
- 使用
invoke-assembly
在进程内执行.NET程序集,或使用execute-assembly
在牺牲进程中执行 - 使用
execute-pe
在牺牲进程中执行任意Windows可执行文件(PE) - 各种shellcode执行技术:CreateThread、CreateRemoteThread、RtlCreateUserThread、QueueUserAPC
- 集成了Donut、sRDI和SharpGen支持
- 动态更改代理的JA3哈希
- 支持Mythic
- 文档和Wiki
介绍性博客文章可在此处找到:https://medium.com/@Ne0nd0g/introducing-merlin-645da3c635a
支持的仓库:
- Merlin Agent - 代理源代码
- Merlin Agent DLL - 代理DLL源代码
- Merlin CLI - Merlin的命令行界面
- Merlin Documentation - 文档源代码
- Merlin on Mythic - Mythic框架的Merlin代理
- Merlin Docker - Merlin镜像的基础Docker镜像
- Merlin Message - Merlin服务器和代理之间交换的Merlin消息的Go库
快速入门
-
从releases部分下载最新版本的Merlin服务器
服务器包在
data/bin
目录中包含了所有主要操作系统的CLI和代理的编译版本 -
使用7zip的
x
功能提取文件 密码是:merlin
-
启动Merlin
-
启动CLI
-
配置一个监听器
-
部署一个代理。参见代理执行快速入门指南获取示例
-
攻击、枢纽、获利
mkdir /opt/merlin;cd /opt/merlin wget https://github.com/Ne0nd0g/merlin/releases/latest/download/merlinServer-Linux-x64.7z 7z x merlinServer-Linux-x64.7z sudo ./merlinServer-Linux-x64 ./data/bin/merlinCLI-Linux-x64
Mythic
Merlin可以与Mythic(一个协作、多平台的红队框架)集成并用作代理。
访问MythicAgents组织中的Merlin on Mythic仓库开始使用。
其他
Slack
加入BloodHoundGang Slack中的#merlin
频道提问、排除故障或提供反馈。
JetBrains
感谢JetBrains通过提供Goland IDE开源许可证来友好赞助Merlin