cobalt skrike合法证书实现ssl加密通讯
一. cs通讯介绍
在红蓝对抗中,防守方往往会有很多的设备审计流量。Cobalt Strike 服务端和客户端是通过SSL加密通讯的(默认证书对cobaltstrike.store),默认情况下的SSL配置文件和代理配置文件导致keystore文件内容被用于防火墙识别及特征识别。并且默认配置的SSL证书对不是合法的无法使用HTTPS Beacon,实则HTTPS Beacon的流量还是明文的传输的
二. keystore介绍
2.1 keystore文件
keystore是java的密钥库,用来进行通信加密,如数字签名。keystore就是用来保存密钥对的,公钥和私钥。Keystore可理解为一个数据库,可以存放很多个组数据。
每组数据主要包含以下两种数据:
密钥实体 — 密钥(secret key)又或者私钥和配对公钥(采用非对称加密)
可信任的证书实体 — 只包含公钥
2.2 keytool生成证书对
Keytool是一个java数据证书的管理工具,Keytool可以将密钥和证书存放在keystore的文件中,形成后缀为.store文件的证书对。
查看cs默认证书文件,:keytool -list -v -keystore cobaltstrike.store
三. 生成合法证书
3.1 申请SSL证书
会生成一个TXT记录,然后前往域名配置中去添加一条TXT记录规则
注:TXT记录,也可以称之为SPF记录。指为主机名或域名进行配置说明。一般常见于邮箱域名,是非常高效的垃圾邮件解决方案。接收方邮件方会首先检查域名的SPF记录,来确定发件人的IP地址是不是被包含在SPF记录里面。
TXT记录解析记录配置成功后,可以使用nslookup命令检测TXT配置是否成功
配置成功后,下载SSL证书文件
- 生成keystore文件
使用openssl将pem证书和key私钥导出为P12格式的证书
openssl pkcs12 -export -in pem证书 -inkey key私钥 -out p12文件 -name 域名 -passout pass:密码
openssl pkcs12 -export -in full_chain.pem -inkey private.key -out baidu.p12 -name baidu.xyz -passout pass:123456
使用keytool生成store格式的证书对
keytool -importkeystore -deststorepass pass -destkeypass pass -destkeystore store文件 -srckeystore P12格式证书 -srcstoretype PKCS12 -srcstorepass pass -alias 域名
keytool -importkeystore -deststorepass mypass -destkeypass mypass -destkeystore baidu.store -srckeystore spoofdomain.p12 -srcstoretype PKCS12 -srcstorepass mypass -alias baidu.xyz
四. cs启用合法证书
4.1 cs证书配置
cs启动的时候会加载一个默认的配置文件,里面配置了证书文件,证书密码,心跳时间等。配置文件中还可以自己修改特定的请求和响应,可以分析一些百度、谷歌这种网站的请求来修改,让cs的通信在流量中看起来更像合法的请求。要在teamserver使用另外的keystore证书文件,还需要重新写个配置文件(profile)引用证书。CS profile文件地址:https://github.com/rsmudge/Malleable-C2-Profiles/
https Beacon的证书配置如下:
https-certificate {
set keystore “store文件”;
set password “密码”;
}
修改完成后,可以用自带的c2lint检查配置文件是否正确,只要不报错就可以正常使用
最后还需要修改teamserver文件,把证书文件和密码修改为自己生成的。也可以修改端口号,50050端口也是cs的特征
4.2 cs上线测试
全部修改完成后,使用命令启动teamserver
./teamserver ip pass baidu.profile
启动后创建监听, HTTPS Hosts、HTTPS Host(Stager)、HTTPS Host Header字段都填入自己的域名,配置powershell上线,勾选Enable SSL选项
https监听器:
利用script web模块生成powershell payload
上线成功
直接访问payload下载地址(web),浏览器标记证书有效,https协议传输
目标与服务端的通讯使用https协议传输
参考文档
http://blog.leanote.com/post/snowming/6a724671de78
https://mp.weixin.qq.com/s/sYfvD0XQqi6BFw70_jrv5Q