CobaltStrike证书修改躲避流量审查
目录
Keytool
keystore
创建新的CobaltStrike.store
在红蓝对抗中,防守方往往会有很多的设备审计流量。Cobalt Strike 服务端和客户端是通过 SSL 加密通讯的,默认情况下的SSL配置文件和代理配置文件导致 keystore 文件内容被用于防火墙识别。
✦Keytool
Keytool是一个java数据证书的管理工具,Keytool将密钥 和 证书 存放在一个称为 keystore 的文件中,即.store后缀的文件中。
代码语言:javascript复制查看证书文件:keytool -list -v -keystore xx.store
修改证书密码:keytool -storepasswd -keystore test.store
修改keystore的alias别名:keytool -changealias -keystore test.store -alias source_name -destalias new_name
修改alias(别名)的密码:keytool -keypasswd -keystore test.store -alias source_name
✦keystore
Keystore是什么?keystore是java的密钥库,用来进行通信加密,如数字签名。keystore就是用来保存密钥对的,公钥和私钥。Keystore可理解为一个数据库,可以存放很多个组数据。
每组数据主要包含以下两种数据:
- 密钥实体 --- 密钥(secret key)又或者私钥和配对公钥(采用非对称加密)
- 可信任的证书实体 --- 只包含公钥
查看CobaltStrike的默认store文件
代码语言:javascript复制keytool -list -v -keystore cobaltstrike.store
可以看出CobaltStrike默认的store文件中的Alias name 、Onwer 和 Issuer 的信息,特征都比较明显。
✦创建新的CobaltStrike.store
而为了掩盖默认SSL证书存在的特征,需要重新创建一个新的不一样的证书 。使用以下命令创建证书:
代码语言:javascript复制keytool -keystore cobaltstrike.store -storepass 密码 -keypass 密码 -genkey -keyalg RSA -alias google.com -dname "CN=(名字与姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或区域名称), ST=(州或省份名称), C=(单位的两字母国家代码)"
- -alias 指定别名
- -storepass pass 和 -keypass pass 指定密钥
- -keyalg 指定算法
- -dname 指定所有者信息
删除 CobaltStrike 自带的cobaltstrike.store,使用以下命令生成一个新的 cobaltstrike.store即可!然后客户端连接即可。
代码语言:javascript复制keytool -keystore cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias baidu.com -dname "CN=(名字与姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或区域名称), ST=(州或省份名称), C=(单位的两字母国家代码)"
keytool -importkeystore -srckeystore cobaltstrike.store -destkeystore cobaltstrike.store -deststoretype pkcs12
注:我看很多其他文章还需要将cobaltstrike.store文件下载至客户端本地,然后保存为ssl.store
和 proxy.store
两个文件。然后,将它们放入cobaltstrike.jar 中的 resources目录中。但是实际我在配置过程中,并不需要这些步骤。并且,在CobaltStrike3.14版本下,重新生成cobaltstrike.store后启动CobaltStrike会报错无法正常启动。本次环境在CobaltStrike4.0环境下配置成功。
参考文章:http://test666.me/archives/227/
责编:Vivian
来源:谢公子博客