官方公众号企业安全新浪微博
FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。
FreeBuf+小程序
关于C2concealer
C2concealer是一款功能强大的命令行工具,在该工具的帮助下,广大研究人员可以轻松生成随机化的C2 Malleable配置文件,以便在Cobalt Strike中使用。
工具运行机制
开发人员对Cobalt Strike文档进行了详细的研究,C2concealer可以通过Python字典来生成一个随机值,能够确保C2concealer针对每一个配置属性生成的值的范围都是有效的。
接下来,工具会将每一个Malleable配置字段拆分为单独的.py文件,其中将包含为每个属性生成随机值的处理逻辑,并为这个配置输出格式化的字符串。最后,工具会将所有的配置连接起来,并输出一个最终符合条件的配置文件。
工具下载
广大研究人员可以使用下列命令将该项目源码克隆至本地:
git clone https://github.com/FortyNorthSecurity/C2concealer.git
工具安装
在命令行中切换到项目目录,并运行下列命令:
chmod u+x install.sh ./install.sh
构建Docker镜像
docker build -t C2concealer .
使用Docker运行C2concealer
docker container run -it -v <cobalt_strike_location>:/usr/share/cobaltstrike/ C2concealer --hostname google.com --variant 3
工具使用样例
Usage: $ C2concealer --hostname google.com --variant 3 Flags: (optional) --hostname HTTP客户端和服务器端设置中使用的主机名。默认值为“None”。 --variant 要生成的HTTP客户端/服务器变量数量,建议介于1-5之间,最多为10。
命令行输出样例
[email protected]:~# C2concealer --variant 1 --hostname google.com [i] Searching for the c2lint tool on your system (part of Cobalt Strike). Might take 10-20 seconds. [i] Found c2lint in the /opt/cobaltstrike/c2lint directory. Choose an SSL option: Self-signed SSL cert (just input a few details) LetsEncrypt SSL cert (requies a temporary A record for the relevant domain to be pointed to this machine) Existing keystore No SSL [?] Option [1/2/3/4]:
注意事项
1、请使用SSL证书,建议LetsEncrypt;
2、HTTP变量允许我们选择不同的IoC,建议值至少为1;
工具自定义配置
dns.py (自定义DNS子域名)
file_type_prepend.py (自定义http-get-server请求格式,即C2控制指令)
params.py (包含常见参数名和通用字典的两个字典)
reg_headers.py (常见HTTP Header,类似user-agent和server)
smb.py (SMB管道命名)
stage.py (跟IoC相关的stager数据)
transform.py (Payload数据转换)
urls.py (用于在整个工具中构建URI的文件类型和URL路径组件)
许可证协议
本项目的开发与发布遵循GPL-3.0开源许可证协议。
项目地址
C2concealer:【GitHub传送门】
参考资料
https://bluescreenofjeff.com/2017-01-24-how-to-write-malleable-c2-profiles-for-cobalt-strike/
https://posts.specterops.io/a-deep-dive-into-cobalt-strike-malleable-c2-6660e33b0e0b