zoukankan      html  css  js  c++  java
  • 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证书

    • 准备一个域名,添加A记录指向自己的vps

    • 申请ssl证书
      CSR选择->浏览器生成,然后点击创建

    会生成一个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

  • 相关阅读:
    vue富文本编辑器
    vue图片上传组件
    vue全局使用axios插件请求ajax
    vue项目初始化时npm run dev报错webpack-dev-server解决方法
    vue axios使用form-data的形式提交数据
    react-keep-alive
    create-react-app 兼容 ie9
    next-定义路由
    next-支持css样式和按需加载antd
    react-错误边界
  • 原文地址:https://www.cnblogs.com/supdon/p/14688257.html
Copyright © 2011-2022 走看看