日前,滲透測試工具Cobalt Strike爆出一個有趣的漏洞,由于該漏洞的補(bǔ)丁僅發(fā)送給正版用戶,因此對那些使用該工具的盜版用戶,包括數(shù)量龐大的僵尸網(wǎng)絡(luò)系統(tǒng),將會因?yàn)槲茨芗皶r修復(fù)漏洞而面臨被“攻擊”的威脅。
眾所周知,Cobalt Strike是滲透測試人員用來模擬網(wǎng)絡(luò)中惡意活動的合法安全工具。在過去幾年中,各種黑客團(tuán)伙正在越來越多地使用該軟件。對于防御者和攻擊者來說,Cobalt Strike提供了一個完整的軟件包集合,允許受感染的計算機(jī)和攻擊者服務(wù)器以高度可定制的方式進(jìn)行交互。
Cobalt Strike的主要組件是Cobalt Strike客戶端(也稱為 Beacon)和Cobalt Strike團(tuán)隊服務(wù)器(Team Server),后者向受感染的計算機(jī)發(fā)送命令并接收它們泄露的數(shù)據(jù)。攻擊者首先啟動一臺運(yùn)行Team Server的機(jī)器,該機(jī)器已配置為使用特定的“延展性”自定義,例如自定義客戶端向服務(wù)器報告的頻率或定期發(fā)送特定數(shù)據(jù)。
然后攻擊者在利用漏洞、欺騙用戶或通過其他方式獲取訪問權(quán)限后,將客戶端安裝在目標(biāo)機(jī)器上。接下來,客戶端將使用這些自定義來保持與運(yùn)行Team Server機(jī)器的持久聯(lián)系。
將客戶端連接到服務(wù)器的鏈接稱為Web服務(wù)器線程,它處理兩臺機(jī)器之間的通信。通信中的主要內(nèi)容是服務(wù)器發(fā)送的“任務(wù)”,以指示客戶端運(yùn)行命令、獲取進(jìn)程列表或執(zhí)行其他操作。然后客戶端以“回復(fù)”進(jìn)行響應(yīng)。
安全公司SentinelOne的研究人員Gal Kristal在Team Server中發(fā)現(xiàn)了一個嚴(yán)重的漏洞,可以很容易地使服務(wù)器脫機(jī)。該研究員表示:“該漏洞的工作原理是發(fā)送服務(wù)器虛假回復(fù),從C2的Web服務(wù)器線程中榨取所有可用內(nèi)存。”
執(zhí)行攻擊所需的只是了解一些服務(wù)器配置。這些設(shè)置有時會嵌入到VirusTotal等服務(wù)提供的惡意軟件樣本中。任何可以物理訪問受感染客戶端的人都可以獲得這些配置。
為了簡化這一過程,Sentinel One發(fā)布了一個解析器,可以捕獲從惡意軟件樣本、內(nèi)存轉(zhuǎn)儲以及客戶端用于連接服務(wù)器的URL中獲取的配置。一旦掌握了這些設(shè)置,攻擊者就可以使用解析器附帶的通信模塊偽裝成屬于服務(wù)器的Cobalt Strike客戶端。
據(jù)了解,該工具能夠:
解析Beacon的嵌入式Malleable配置文件說明
直接從活動的C2解析信標(biāo)的配置(如流行的nmap腳本)
作為假信標(biāo)與C2通信的基本代碼
即使服務(wù)器沒有先發(fā)送相應(yīng)的任務(wù),假客戶端也可以發(fā)送服務(wù)器回復(fù)。Team Server軟件中的一個漏洞(編號為CVE-2021-36798)阻止其拒絕包含格式錯誤的數(shù)據(jù)的回復(fù)。一個例子是客戶端上傳到服務(wù)器的屏幕截圖附帶的數(shù)據(jù)。
“通過操縱屏幕截圖的大小,我們可以讓服務(wù)器分配任意大小的內(nèi)存,其大小完全由我們控制,通過將Beacon通信流的所有知識與我們的配置解析器相結(jié)合,我們擁有偽造Beacon所需的一切?!盞ristal寫道。
雖然這個漏洞理論上可以同時用來攻擊白帽黑客和黑帽黑客,但有趣的是,后者可能最容易受到漏洞的威脅。這是因?yàn)榇蠖鄶?shù)專業(yè)的安全維護(hù)者都購買了Cobalt Strike的許可證,而相比之下,許多惡意黑客都在使用該軟件的盜版版本。