Cobalt Strike特征性信息修改玩转防火墙设备

admin 2020年10月25日09:00:50评论349 views字数 2852阅读9分30秒阅读模式

原创作者:Adminxe,作者博客:https://www.adminxe.com/,已获授权。

0x00 前言


Cobalt Strike 服务端和客户端是通过 SSL 加密通讯的,由于SSL配置文件和代理配置文件由于默认配置导致keystore文件内容通常被用于防火墙识别。


后渗透中经常使用到CS,从两方面讲:一方面是内网设备对流量的管控十分严格,如果不对CS特征进行修改,很容易就被内网设备抓到,进行溯源或者直接封掉IP,间接凉西皮;另外一方面主要还是为了保证攻击队队员计算机的安全,防止被攻击队反制,前段时间看到大佬写的反制CS低版本尤为吊,所以呢,为了防止凉犊子,改了最好。不然的话,你有你的鱼,同时你是我的渔。


0x01 针对特征性信息修改


  • 端口号修改

  • 指纹修改

  • SSL证书修改


0x02 端口号和SSL证书指纹信息修改


首先看一下默认的配置情况:

Cobalt Strike特征性信息修改玩转防火墙设备


因为今天看了好多文章,也来总结下,印象比较深的就是根据墨森写的,获取权威性证书,仿造信息进行修改,当然我觉得这里土豪随意,完全可以去买一个证书进行绑定。先将原来的store文件删除掉,然后修改teamserver文件。(先备份好),以为通过teamserver进行挂载服务器端的时候,会生成store文件。


端口号和SSL证书指纹信息修改:


Cobalt Strike特征性信息修改玩转防火墙设备
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文件

Cobalt Strike特征性信息修改玩转防火墙设备
Cobalt Strike特征性信息修改玩转防火墙设备
Cobalt Strike特征性信息修改玩转防火墙设备


0x03 创建新的CobaltStrike.store


有的时候为了方便起见,我们可以直接进行证书指纹的修改,这边使用常用的工具keytool进行修改,操作简单。Keytool是一个Java数据证书的管理工具,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中,即store后缀文件中。


Cobalt Strike特征性信息修改玩转防火墙设备


命令:

  ‐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

Cobalt Strike特征性信息修改玩转防火墙设备


以上默认CobaltStrike特征,特征十分明显,为了掩盖默认SSL证书存在的特征,需要重新创建一个新的不一样的证书 。使用以下命令创建证书:

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即

可!然后客户端连接即可。


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 pkcs12keytool -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文件

Cobalt Strike特征性信息修改玩转防火墙设备


0x04 总结


时代在变迁,人类在进步,安全在发展,内网流量设备变得越来越先进,机器玩不过人是永恒的真理,就像今年的HW,安全设备成了最大的0day。


针对流量设备的检测,根据流量设备的判断,不断完善攻击利器,才能在后渗透中不被干扰,我这边只是借鉴各位大佬和网上的教程做了一个总结,抛砖引玉,希望能得到更多师傅的支持,有更好的修改方法请尽情提出,我这边也跟着学习一波,共同发展,才能进步的更快,今天就这样,继续加油!



    扫描关注乌云安全

    Cobalt Strike特征性信息修改玩转防火墙设备

    觉得不错点个“赞”、“在看”哦Cobalt Strike特征性信息修改玩转防火墙设备

本文始发于微信公众号(乌云安全):Cobalt Strike特征性信息修改玩转防火墙设备

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年10月25日09:00:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Cobalt Strike特征性信息修改玩转防火墙设备http://cn-sec.com/archives/156251.html

发表评论

匿名网友 填写信息