Merlin 项目介绍
Merlin 是一个使用 Go 语言开发的跨平台后渗透指挥与控制(C2)服务器和代理。这个项目主要为信息安全领域提供了一种灵活而强大的工具,用于在网络中进行渗透测试和安全评估。以下是对 Merlin 项目的详细介绍和功能概述。
核心功能
- 强大的命令行接口:Merlin 提供了基于 gRPC 的
merlin-cli
命令行接口,可以与 Merlin 服务器连接,从而支持多用户操作。 - 多种协议支持:支持的 Agent C2 协议有 http/1.1 明文、http/1.1 TLS 加密、HTTP/2、HTTP/2 明文(h2c)以及 HTTP/3(即 http/2 over QUIC)。
- 对等(P2P)通信:支持 Agent 之间的对等通信,包括 SMB、TCP 和 UDP 的绑定或反向连接。
- 可配置的编码和加密转换:支持多种数据编码和加密转换,比如 AES、Base64、gob、hex、JWE、RC4 和 XOR,其中 JWE 使用 PBES2_HS512_A256KW、HMAC SHA-512 和 256 位 AES 密钥包装。
- 配置化认证机制:可以进行无认证或使用 OPAQUE 进行非对称密码认证密钥交换(PAKE)。
- 加密的 JWT 消息认证:保障信息传输的安全性。
- 自定义消息数据填充:通过调整消息的大小来规避信号检测。
- 丰富的执行功能:支持在进程内或牺牲进程中执行 .NET 程序集和任意 Windows 可执行文件(PE),以及多种 shellcode 执行技术。
- 集成支持:包含 Donut、sRDI 和 SharpGen 的集成支持,能够动态更改代理的 JA3 hash 和 Mythic 框架的兼容支持。
快速入门
- 从最新版本的释放页面下载 Merlin 服务器。
- 使用 7zip 并用密码解压文件(密码:
merlin
)。 - 启动 Merlin 服务器和命令行接口。
- 配置一个监听器并部署 Agent。
- 开始进行网络渗透测试。
Mythic 集成
Merlin 可作为 Agent 集成到 Mythic,这是一个协作性、多平台的红队框架,有效提升红队操作的效率。
支持和社区
用户可以通过加入 BloodHoundGang Slack 的 #merlin
频道来提问、解决问题或提供反馈。此外,JetBrains 为 Merlin 项目提供了 Goland IDE 的开源许可证赞助。
总结
Merlin 项目凭借其强大的功能、丰富的协议支持及其高度灵活的可配置性,成为渗透测试人员和安全研究员的有力工具。通过多样化的执行方式和通信方式,Merlin 能够应对各种复杂网络环境中的安全评估挑战。