日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

反击CobaltStrike

發(fā)布時(shí)間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 反击CobaltStrike 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

背景

CobaltStrike(簡(jiǎn)稱CS)作為一款滲透測(cè)試神器,采用C/S架構(gòu),可進(jìn)行分布式團(tuán)隊(duì)協(xié)作。CS集成了端口轉(zhuǎn)發(fā)、服務(wù)掃描、自動(dòng)化溢出、多模式端口監(jiān)聽、Windows exe與dll 木馬生、Java 木馬生成、Office 宏病毒生成、木馬捆綁等強(qiáng)大功能,深受廣大紅隊(duì)同學(xué)的喜愛。為了規(guī)避偵測(cè),紅隊(duì)往往會(huì)對(duì)CS采用一些隱匿手段,常見方式有云函數(shù)和CDN等。這些隱匿手段隱匿了CS的真實(shí)IP,諸如DDoS之類的流量無法穿透CDN到達(dá)CS,常規(guī)的攻擊方式難以對(duì)CS服務(wù)器形成有效干擾和打擊。只能止步于此了嗎?有沒有反擊CS的奇技淫巧?答案當(dāng)然是肯定的!接下來帶各位看官體驗(yàn)一種批量偽造肉雞來戲耍CS的新方法,希望各位藍(lán)隊(duì)同學(xué)引(付)以(諸)為(實(shí))戒(踐)。

CS上線流量特征分析

首先,我們先研究下CS上線的流量有無特征。圖1使用Wireshark分析HTTP型Beacon的上線包。

圖1

肉眼來看,上線包的敏感信息隱藏到了Cookie中,特征非常明顯。通過進(jìn)一步分析,我們發(fā)現(xiàn)上線包的請(qǐng)求Cookie值是受控主機(jī)元數(shù)據(jù)經(jīng)過非對(duì)稱加密后的密文,CS服務(wù)器接收到Cookie值后進(jìn)行解密從而獲取到受控主機(jī)信息。受控主機(jī)元數(shù)據(jù)包含了若干敏感信息,如圖2所示:


圖2

此處劃重點(diǎn),HTTP型Beacon 上線包的核心在于Cookie,而Cookie是對(duì)受控主機(jī)元數(shù)據(jù)的非對(duì)稱加密的密文。

HTTP Beacon重放實(shí)驗(yàn)

由于HTTP屬于明文傳輸協(xié)議,HTTP型Beacon的上線過程存在中間人重放的可能。

我們做了一個(gè)簡(jiǎn)單的測(cè)試,驗(yàn)證了這種可能性(此處迫于運(yùn)營小姐姐壓力,稍微有湊字?jǐn)?shù)嫌疑)。

首先抓取測(cè)試環(huán)境中的HTTP Beacon上線請(qǐng)求,使用Python腳本(如:圖3)進(jìn)行重放(注意:Header頭信息不能錯(cuò)誤,CS Server對(duì)Header頭檢查非常嚴(yán)格)。


圖3

結(jié)果顯示,重放Response符合我們的預(yù)期,CS Server成功響應(yīng)了我們的請(qǐng)求。(如:圖4)


圖4

此外,紅隊(duì)同學(xué)在使用CS時(shí)候會(huì)自定義Malleable C2 Profile修改默認(rèn)流量特征,但是這個(gè)對(duì)中間人重放沒有影響。

新的問題產(chǎn)生了。

中間人重放的方法,只能偽造已經(jīng)上線的主機(jī),不能偽造新的受控主機(jī)。

這句話翻譯過來就是,沒啥鳥用。

好了,字?jǐn)?shù)湊夠了。書接上回,言歸正傳。

現(xiàn)在聚焦最迫切的問題:有沒有辦法偽造全新的受控主機(jī)呢?

答案當(dāng)然是肯定的。

新主機(jī)偽造

我們先看一個(gè)效果圖(如:圖5)。

圖5

短時(shí)間內(nèi)大量主機(jī)上線。想想1分鐘上線了千八百個(gè)主機(jī),紅隊(duì)同學(xué)是不是有點(diǎn)慌?這是如何做到的呢?

我們以Stager型Beacon為例,按照KillChain模型從攻擊者角度回顧下CS上線流程(如:圖6)。

圖6

攻擊者利用CS Server生成新的Beacon監(jiān)聽(包括一對(duì)非對(duì)稱公私鑰)并生成Stager;

攻擊者投遞Stager到受控主機(jī);

受控主機(jī)在Exploit階段執(zhí)行小巧的Stager;

受控主機(jī)根據(jù)Stager Url請(qǐng)求特征向Beacon Staging Server下載體積較大更復(fù)雜的Stage到本地,Beacon Staging Server會(huì)校驗(yàn)Url的合法性;

Stage解密并解析Beacon配置信息(比如公鑰PublicKey、C2 Server信息);

Stage通過公鑰PublicKey加密主機(jī)的元數(shù)據(jù)并發(fā)送至C2 Server;

C2 Server用私鑰解密數(shù)據(jù)獲取主機(jī)元數(shù)據(jù)。

從上述流程中,我們能Get到2個(gè)核心點(diǎn):

Stager Url校驗(yàn)算法

Beacon配置的解密算法

與CS Server合法通信的問題等價(jià)轉(zhuǎn)換為獲取Stager Url和Beacon解密問題,即:

CS/C2 Server合法通信 = (Stager Url校驗(yàn)算法,Beacon解密算法)

只要拿到了(Stager Url校驗(yàn)算法,Beacon解密算法),相當(dāng)于我們掌握了與CS/C2 Server合法通信的憑據(jù)。我們分別對(duì)上述2個(gè)核心點(diǎn)進(jìn)行分析。

Stager Url校驗(yàn)算法

Stager Url校驗(yàn)算法在公開的NSE腳本中可以找到,關(guān)鍵函數(shù)包括:checksum8、MSFURI、isStager。

其中,MSFURI函數(shù)從大小寫字母+數(shù)字的字符數(shù)組中隨機(jī)指定長度的字符序列并調(diào)用checksum8函數(shù)計(jì)算字符序列的ASCII和與256的模是否等于固定值(32位Stage與64位Stage分別使用92、93作為固定值),如果相等返回字符序列,否則繼續(xù)直至找到符合條件的字符序列。MSFURI(如:圖7)、checksum8(如:圖8)、isStager(如:圖9)函數(shù)的定義:

圖7

圖8

圖9
如果找到符合條件的字符序列,則作為Stager Url向Beacon Staging Server發(fā)送下載請(qǐng)求。Beacon Staging Server在_serve函數(shù)中校驗(yàn)Url的合法性,如:圖10。

圖10

至此,我們獲取到了Stager Url的校驗(yàn)算法,手動(dòng)下載Stager。下載效果如圖11下:

圖11

很好!已經(jīng)成功一半了。接下來,我們?cè)賮硌芯緽eacon配置的解密算法。

Beacon配置解密算法

感謝前人栽樹!

之前已經(jīng)有人發(fā)布了Beacon配置的解密算法,比如JPCERT的Volatility插件cobaltstrikescan(https://github.com/jpcertcc/aa-tools/blob/master/cobaltstrikescan.py)、美國SentinelOne安全公司開源的CobaltStrikeParser工具(https://github.com/Sentinel-One/CobaltStrikeParser)等。

具體的解密算法此處不再贅述,感興趣的同學(xué)可參考上述的開源工具。解密結(jié)果如圖12所示:


圖12

從解密的配置中可以看到PublicKey和C2 Server地址。

OK!2個(gè)算法我們都已經(jīng)搞定,接下來就該反擊CS了!

反擊!

萬事俱備,只欠東風(fēng)!

想象以下場(chǎng)景:藍(lán)隊(duì)同學(xué)防守時(shí)獲取到了一個(gè)CS的上線地址。

首先,構(gòu)造Stager Url下載Stage,如果在抓到CS上線地址的同時(shí)抓到了Stage,此步可跳過。

然后,解析Stager Beacon的配置文件,得到了PublicKey公鑰與C2 Server地址。

最后,構(gòu)造虛假主機(jī)元數(shù)據(jù),加密發(fā)送至C2 Server。

Github上開源的CobaltSpam(https://github.com/hariomenkel/CobaltSpam)已實(shí)現(xiàn)此功能,但CobaltSpam上線的主機(jī)信息都是隨機(jī)生成,很容易被識(shí)破。因此,需要將主機(jī)信息偽造的更加準(zhǔn)確,提高混淆度。

最終,通過修改CobaltSpam代碼,添加自定義的更加精準(zhǔn)的主機(jī)信息,達(dá)到了我們想要的效果,如:圖13。

圖13

最終效果見下圖(圖14)!!!

圖14

結(jié)語

通過這種以假亂真的方法,藍(lán)隊(duì)同學(xué)可很好的混淆紅隊(duì)同學(xué)的視線,以此來反制攻擊者。

對(duì)于低級(jí)的攻擊者而言,目前不能夠很好的防御這種攻擊手段。

同樣,上面提及的2種算法可用于Beacon Staging Server和C2 Server的挖掘。

目前,防御上述反制的方法,可通過修改CS代碼上述2種算法的邏輯,阻止虛假主機(jī)上線和C2挖掘。

在HVV過程中,如果發(fā)現(xiàn)紅隊(duì)的CS木馬樣本或者CS服務(wù)器,我們可以用上述方法來混淆紅隊(duì)同學(xué)的視線、拖延他們的時(shí)間,讓紅隊(duì)同學(xué)陷入懷疑人生的地步。

【網(wǎng)絡(luò)安全學(xué)習(xí)資料筆記】

總結(jié)

以上是生活随笔為你收集整理的反击CobaltStrike的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。