|
原文链接:Cobalt Strike特征性信息修改玩转防火墙设备
0x00 前言
Cobalt Strike 服务端和客户端是通过 SSL 加密通讯的,由于SSL配置文件和代理配置文件由于默认配置导致keystore文件内容通常被用于防火墙识别。
后渗透中经常使用到CS,从两方面讲:一方面是内网设备对流量的管控十分严格,如果不对CS特征进行修改,很容易就被内网设备抓到,进行溯源或者直接封掉IP,间接凉西皮;另外一方面主要还是为了保证攻击队队员计算机的安全,防止被攻击队反制,前段时间看到大佬写的反制CS低版本尤为吊,所以呢,为了防止凉犊子,改了最好。不然的话,你有你的鱼,同时你是我的渔。
0x01 针对特征性信息修改
0x02 端口号和SSL证书指纹信息修改
首先看一下默认的配置情况:
因为今天看了好多文章,也来总结下,印象比较深的就是根据墨森写的,获取权威性证书,仿造信息进行修改,当然我觉得这里土豪随意,完全可以去买一个证书进行绑定。先将原来的store文件删除掉,然后修改teamserver文件。(先备份好),以为通过teamserver进行挂载服务器端的时候,会生成store文件。
端口号和SSL证书指纹信息修改:
- print_info "Generating X509 certificate and keystore (for SSL)"
- keytool -keystore ./cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias Microsec.com -dname "CN=Microsec e-Szigno Root CA, OU=e-Szigno CA, O=Microsec Ltd., L=Budapest, S=HU, C=HU"
- java -XX:ParallelGCThreads=4 -Dcobaltstrike.server_port=50314 -Djavax.net.ssl.keyStore=./cobaltstrike.store -Djavax.net.ssl.keyStorePassword=123456 -server -XX:+AggressiveHeap -XX:+UseParallelGC -classpath ./cobaltstrike.jar
复制代码
通过生成的证书信息前后进行对比,能发现明显差别,cobaltstrike.store文件
0x03 创建新的CobaltStrike.store
有的时候为了方便起见,我们可以直接进行证书指纹的修改,这边使用常用的工具keytool进行修改,操作简单。Keytool是一个Java数据证书的管理工具,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中,即store后缀文件中。
命令:
- ‐certreq 生成证书请求
- ‐changealias 更改条目的别名
- ‐delete 删除条目
- ‐exportcert 导出证书
- ‐genkeypair 生成密钥对
- ‐genseckey 生成密钥
- ‐gencert 根据证书请求生成证书
- ‐importcert 导入证书或证书链
- ‐importpass 导入口令
- ‐importkeystore 从其他密钥库导入一个或所有条目
- ‐keypasswd 更改条目的密钥口令
- ‐list 列出密钥库中的条目
- ‐printcert 打印证书内容
- ‐printcertreq 打印证书请求的内容
- ‐printcrl 打印 CRL 文件的内容
- ‐storepasswd 更改密钥库的存储口令
复制代码
keystore是java的密钥库,用来进行通信加密,如数字签名。keystore就是用来保
存密钥对的,公钥和私钥。Keystore可理解为一个数据库,可以存放很多个组数据。
每组数据主要包含以下两种数据:
1.密匙实体–密匙(secret key)又或者私钥和配对公钥(采用非对称加密)
2.可信任的证书实体–只包含公钥
通过keytool查看CobaltStrike默认store文件
- keytool ‐list ‐v ‐keystore cobaltstrike.store
复制代码
以上默认CobaltStrike特征,特征十分明显,为了掩盖默认SSL证书存在的特征,需要重新创建一个新的不一样的证书 。使用以下命令创建证书:
- keytool ‐keystore cobaltstrike.store ‐storepass 密码 ‐keypass 密码 ‐genkey ‐key
- alg RSA ‐alias google.com ‐dname "CN=(名字与姓氏), OU=(组织单位名称), O=(组织名
- 称), L=(城市或区域名称), ST=(州或省份名称), C=(单位的两字母国家代码)"
复制代码- ‐alias 指定别名
- ‐storepass pass 和 ‐keypass pass 指定密钥
- ‐keyalg 指定算法
- ‐dname 指定所有者信息
复制代码 删除 CobaltStrike 自带的cobaltstrike.store,使用以下命令生成一个新的 cobaltstrike.store即
可!然后客户端连接即可。
- keytool ‐keystore cobaltstrike.store ‐storepass 123456 ‐keypass 123456 ‐gen
- key ‐keyalg RSA ‐alias baidu.com ‐dname "CN=(名字与姓氏), OU=(组织单位名称),
- O=(组织名称), L=(城市或区域名称), ST=(州或省份名称), C=(单位的两字母国家代码)"
复制代码- keytool ‐importkeystore ‐srckeystore cobaltstrike.store ‐destkeystore cobal
- tstrike.store ‐deststoretype pkcs12
- keytool -keystore CobaltStrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias baidu.com -dname "CN=ZhongGuo, OU=CC, O=CCSEC, L=BeiJing, ST=ChaoYang, C=CN"
复制代码
修改以后再次查看CobaltStrike的默认store文件
0x04 总结
时代在变迁,人类在进步,安全在发展,内网流量设备变得越来越先进,机器玩不过人是永恒的真理,就像今年的HW,安全设备成了最大的0day。
针对流量设备的检测,根据流量设备的判断,不断完善攻击利器,才能在后渗透中不被干扰,我这边只是借鉴各位大佬和网上的教程做了一个总结,抛砖引玉,希望能得到更多师傅的支持,有更好的修改方法请尽情提出,我这边也跟着学习一波,共同发展,才能进步的更快,今天就这样,继续加油!
|
|