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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM