圖片來源: 

HelpSystems

滲透測試工具Cobalt Strike是紅隊演練實用的工具之一,近年來也有越來越多的攻擊者濫用這款工具,根據資安公司Proofpoint的統計,在2019年到2020年之間,濫用Cobalt Strike的攻擊行動爆增161%。對此,如何阻止攻擊者濫用該滲透測試工具的行為,也成為資安研究員研究的對象。

資安業者SentinelOne發現在4.2與4.3版的Cobalt Strike裡,存在名為Hotcobalt的阻斷服務(DoS)漏洞CVE-2021-36798,一旦資安人員運用這項漏洞,就可以攔阻攻擊者遠端控制受害目標的行為。

基本上,軟體出現漏洞,通常是受害系統曝露遭受攻擊的危險,但如今出現漏洞的是被攻擊者濫用的滲透測試工具,也使得資安人員與執法單位能用來防堵網路攻擊。

為了讓資安人員更容易研究Cobalt Strike的Beacon通訊機制,SentinelOne也提供了以Python打造的程式庫,來協助他們解析其通訊內容。

用漏洞耗盡伺服器記憶體, 停止信標通訊

基本上,這個Cobalt Strike漏洞的存在,關鍵在於伺服器(亦稱為Teamserver)與Beacon之間的通訊。SentinelOne解釋其中的運作流程。因為首次執行Teamserver時,會隨機產生公用與私有的RSA金鑰,並存放於名為.Cobalt Strike.beacon_keys的檔案,而每個Beacon訊號發送器(Stager)都內嵌公用的金鑰。

當訊號發送器在受害電腦執行時,會收集電腦資訊,諸如中央處理器架構、鍵盤布局、內部IP位址等,並透過前述公鑰加密並回傳給Teamserver,發出HTTP GET請求向伺服器註冊。一旦註冊成功之後,Beacon就能接收攻擊者下達的指令並執行工作。

但SentinelOne指出,在執行Screenshot和Keylogger工作的回傳結果中,伺服器必須分配指定大小的緩衝區來容納檔案,對此,研究人員發現,可以藉由控制傳送的螢幕截圖檔案大小,來讓Cobalt Strike伺服器分配特定容量的記憶體作為緩衝區,導致伺服器的記憶體消耗殆盡。

利用這項漏洞,研究人員利用偽造的Beacon,向Teamserver發送假的任務資料,或是異常大的螢幕截圖,來占用Teamserver的記憶體空間,導致該伺服器的記憶體耗盡而無法回應,造成阻斷服務的局面,換言之,這樣的情況使得所有的Beacon無法與該伺服器通訊。

一旦遭到攻擊,只能透過重開機暫時緩解

對此,SentinelOne指出,除非管理者將Teamserver重開機,才能暫時擺脫記憶體耗盡的情況,攻擊者很可能再度發動攻擊來癱瘓Cobalt Strike的運作。該公司也發布了概念性驗證(PoC)攻擊程式

由於Cobalt Strike也被攻擊者大肆濫用,執法單位與資安研究人員可能可以透過Hotcobalt漏洞,來關閉攻擊者的基礎設施。而對於這個漏洞的揭露,SentinelOne於4月20日通報給HelpSystems,HelpSystems則於8月4日發布了Cobalt Strike 4.4予以修補。

熱門新聞

Advertisement