2017年3月,ShadowBrokers放出了一份震驚世界的機密文檔,其中包括兩個框架:DanderSpritz和FuzzBunch。
DanderSpritz是純外掛程式構成的,旨在收集情報、利用漏洞、並控制已接管的設備。它是基於Java編寫,提供類似殭屍網路管理面板的圖形介面以及類似Metasploit工具的控制面板。它還整合了用於非FuzzBunch受控設備的後門和插件。
DanderSprit介面
#Fuzzbunch為不同的實用程式提供了一個用於互動和協同工作的框架,包含各種類型的插件,其目的是分析物件、利用漏洞、植入任務等。 FuzzBunch框架插件包中的檔案分為三種類型:
%pluginName%-version.fb
這是框架的實用程式檔案。它從XML複製標頭並包含插件的ID。
%pluginName%-version.exe
當FuZZbuNch收到執行指令時,執行此可執行檔。
%pluginName%-version.xml
此設定檔描述了插件的輸入和輸出參數的名稱、類型和描述。這些資訊都可以透過FuzzBunch介面顯示。這一文件類型的分類標準規定了預設參數的設定,從而增強了框架的可操作性。
ImplantConfig是一個Fuzzbunch可呼叫的工具包,包含一個名為DarkPulsar的管理模組,用於管理受控設備的插件,用於控制名為“sipauth42.tsp”的遠端控制後門。
它支援以下命令:
BurnRawShellcodeEDFStagedUploadDisableSecurityEnableSecurityUpgradeImplantPingPong
Burn、RawShellcode、UpgradeImplant和PingPong支援移除/升級植入軟體、執行任意程式碼和檢查後門是否已安裝在遠端機器上,其他命令的目的暫不明確。
卡巴斯基實驗室在分析DarkPulsar時發現了幾個用於加密C&C和植入軟體之間流量的常數:
卡巴斯基認為這些常數可以作為進一步深入調查的抓手,所以建造了一個檢測器。幾個月後,神秘的DarkPulsar後門浮出水面,而且包含32位元和64位元版本。研究人員發現約50個案例,分別位於俄羅斯、伊朗和埃及,常見感染Windows 2003/2008伺服器,涉及核能、電信、IT、航空航太和研發等領域。
DarkPulsar植入的是一個動態庫文件,從其工作負載導出的函數來看可以實現以下幾類功能:
兩個匿名函數用於在系統中安裝後門。
名稱與TSPI(電話服務提供者介面)操作相關的函數,用於確保後門存在於自動運行清單中並自動啟動。
名稱與SSPI(安全性支援提供者介面)操作相關的函數,主要用於執行惡意程式碼。
SSPI和TSPI介面的實作很簡單,使得DarkPulsar導出的函數與介面函數的名稱相同即可,只不過用惡意程式碼取代了正確的電話服務。
這個動態函式庫透過匿名函式安裝在系統中,呼叫具有管理員權限的Secur32.AddSecurityPackage
以及參數中它自己函式庫的路徑來啟動後門,使得lsass. exe
將DarkPulsar載入為SSP/AP並呼叫其導出的函數SpLsaModeInitialize
,由DarkPulsar初始化後閘。其中AddSecurityPackage用於將程式碼注入到lsass.exe
。它還在HKLM\Software\Microsoft\Windows\CurrentVersion\Telephony\Providers
中新增了其庫檔案名稱。
這樣一來Telephony API(TapiSrv)開始載入隨著遠端存取連線管理器(RasMan)服務啟動開始加載,將該啟動類型設定為「自動」。載入電話服務提供者的函式庫時,TapiSrv呼叫TSPI_lineNegotiateTSPIVersion
,其中包含AddSecurityPackage呼叫以將惡意程式碼注入到lsass.exe
。
DarkPulsar透過為SpAcceptLsaModeContext
(負責身份驗證的函數)安裝鉤子來實現惡意功能。此類注入行為在進程lsass.exe
中的多個系統驗證封包中進行,並允許Darkpulsar根據下列協定控制身份驗證過程:
1、Msv1_0 .dll - 用於NTLM協議,
2、Kerberos.dll - 用於Kerberos協議,
3、Schannel.dll - 用於TLS / SSL協議,
# 4、Wdigest.dll - 用於摘要協議,
5、Lsasrv.dll-用於談判協議。
完成這個過程後,Darkpulsar能夠將惡意軟體流量插入系統協定中。由於此類網路活動是根據系統標準進行的,因此它只會反映在系統進程中,也就是說它使用了為上述協定保留的系統端口,而不會妨礙其正常運作。
成功連接到DarkPulsar植入軟體的網路流量
控制身分驗證流程的第二個優點是可以繞過輸入使用者名稱和密碼保護,以取得對需要身份驗證的物件的存取權限,例如進程清單、遠端註冊表、SMB檔案系統。發送Darkpulsar的DisableSecurity命令後,受控裝置的後門鉤子將呼叫SpAcceptLsaModeContext
函數,使得該函數傳遞的憑證有效,然後系統將提供對客戶端的受保護物件的存取權限。
Darkpulsar-1.1.0.exe的管理介面是基於「一條指令和一次啟動」原則建構的。要執行的命令必須在設定檔Darkpulsar-1.1.0.9.xml中指定,或作為命令列參數指定,至少詳細說明:
目標機器是使用32位元還是64位元系統;
協定(支援SMB、NBT、SSL、RDP協定)以提供命令和連接埠號碼;
用於解密會話AES金鑰的私有RSA金鑰。
Fuzzbunch框架的插件Darkpulsar-1.1.0可以協調不同的元件並管理參數。以下是DisableSecurity指令在Fuzzbunch中的實際應用範例:
#下面是執行DisableSecurity之後的行程表實例,允許執行任何沒有有效憑證的插件,並透過常規系統功能(遠端登錄服務)進行操作:
DanderSpritz是用來控制受感染機器的框架,與FuZZbuNch不同,因為後者為具有特定功能的後期開發階段提供了部分工具包,例如DisableSecurity和DarkSeuls的EnableSecurity。
DanderSpritz適用於更大範圍的後門,在受控設備中使用PeedleCheap來啟動攻擊者的惡意軟體。 DanderSpritz的外掛程式PeddleCheap可用於設定嵌入式軟體並連接到被感染的電腦。建立連線後,所有DanderSpritz後期開發功能均可使用。
這就是EDFStagedUpload模式中的DarkPulsar透過植入惡意軟體感染設備的管道:PCDllLauncher(Fuzzbunch的插件)在受控設備一側部署PeddleCheap植入軟體,DanderSpritz提供用戶友好的開發介面。所以,PCDllLauncher的全名是'PeddleCheap DLL Launcher'。
整合DanderSpritz方案、PeddleCheap外掛程式、DarkPulsar外掛程式和PCDllLauncher到一起實作惡意功能共包含四個步驟:
透過FuZZbuNch,執行指令EDFStagedUpload以啟動DarkPulsar。
在DanderSpritz中,執行指令pc_prep(PeedelCheap Preparation)以準備惡意程式碼和要啟動的程式庫檔案。
在DanderSpritz中,執行指令pc_old(這是指令pc_listen -reuse -nolisten -key預設的別名),這會將其設定為等待來自Pcdlllauncher的socket。
透過FuZZbuNch啟動Pcdlllauncher並指定使用ImplantFilename參數中的指令pc_prep準備的有效路徑。
DanderSpritz
#檔案系統外掛程式
##總結 FuzzBunch和DanderSpritz框架提供了極大的靈活性,包含許多專為不同任務設計的插件,比如說FuzzBunch插件負責監控和攻擊設備,DanderSpritz框架中的插件則是為管理已感染的受害者而開發的。 DarkPulsar後門的發現有助於理解它作為兩個洩漏框架之間的橋樑作用,以及它們如何成為同一攻擊平台的一部分。這些平台是為長期潛伏攻擊而設計的,從DarkPulsar的持久性和潛伏能力(例如將其流量封裝到合法協議中並繞過密碼保護以通過身份驗證)可以看出背後的開發者非常之專業。 偵測惡意網路活動在受感染的電腦中執行EDFStagedUpload時,會建立永久連接,這是連接埠445流量的原因。lsass.exe中也出現了一對綁定的socket:
#
當終止與受感染電腦的連線時,網路活動將停止,並且只保留lsass.exe
中兩個綁定socket:
以上是NSA新型APT框架DarkPulsar怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!