根據Check Point在2022年上半年的報告,每40個組織中就有1個受到勒索軟件攻擊的影響,這比去年增加了59%。勒索軟件之所以如此猖狂,原因就是獲利巨大。隨著雙重勒索的增加,勒索軟件攻擊變得更加吸引人:即使受害者拒絕支付,被盜的私人數據可能會在黑市上以相當大的價格出售。
自2022年5月以來,累計有89多起知名組織被Black Basta組織攻擊。數據顯示,該組織的攻擊目標明顯位於美國和德國,49%的受害者是美國用戶。在某些情況下,贖金甚至超過100萬美元。
接下來,我將介紹Black Basta活動的技術細節,以及各種規避和反分析技術。
技術細節在攻擊開始之前,幕後組織必須將勒索軟件傳播到受害者的設備。憑藉先進的傳播技術,滴管有不同的方式將其有效載荷下載到選定的受害者設備,不過也可能會出現不同滴管模塊的組合使用(比如QakBot和Cobalt Strike有效載荷的組合),最終導致勒索軟件的執行。
Black Basta向受害者的設備發送勒索軟件的可能方式
我們觀察到,滴管可以比技術上簡單的勒索軟件有效載荷複雜得多。我們將在下面介紹Black Basta勒索軟件的最終傳播階段。
傳播階段Black Basta滴管模仿了創建此網站上託管的USB可引導驅動器的應用程序:
Black Basta滴管的圖標和介紹
應用程序使用與Rufus網站上合法可執行文件相同的證書(由“Akeo Consulting”頒發)進行數字簽名:
Black Basta滴管和證書頒發者的數字簽名
有關如何使用經過驗證的數字簽名創建惡意應用程序的更多信息,請參閱Check Point研究團隊的文章。
規避和反分析技術在Black Basta滴管中實現了很多反調試技巧,下面按類別列出。
Black Basta滴管中的反調試和規避技術如果這些技術中的任何一種成功地檢測到調試器或仿真環境,則滴管將停止執行並退出,而不啟動Black Basta。
系統標誌這組反調試技術依賴於進程內結構來檢查狀態:是否正在調試。
PEB: is debugger present;
PEB: being debugged;
PEB: NtGlobalFlag;
CheckRemoteDebugger;
Check kernel debugger;
CPU寄存器下面分組的技術使用CPU寄存器檢查進程是否正在調試。
設置陷阱標誌;
檢查陷阱標誌,同上。標誌未設置,只是選中;
檢查HW斷點(鏈接中的方法1);
CPU指令這些技術通過直接調用或包裝器使用CPU指令來檢查進程是否正在調試。
DebugBreak;
INT 2D;
INT3;
定時檢查這些技術執行定時檢查,以查看經過調試的進程與沒有調試器運行的進程之間的差異。
RDTSC;
QueryPerformanceCounter;
GetTickCount;
庫檢查這種技術依賴於這樣一個假設,即在通常的系統中有一些通用的系統庫可以毫無問題地加載,還有一些不常見的庫不應該真正出現在典型的系統中。然而,在沙盒環境中,當試圖加載一個不常見的庫時,在這種情況下可能返回預定義的代碼,而不是在非模擬設備中返回的代碼。返回代碼的差異可以用來檢測沙盒。
必須加載的庫kernel32.dll;
networkexplorer.dll;
NlsData0000.dll;
不能加載的庫NetProjW.dll;
Ghofr.dll;
fg122.dll;
Windows API檢查下面的一組技術使用Windows API函數來檢測進程是否正在調試。
VirtualAlloc與GetWriteWatch結合使用;
具有錯誤介紹符的CloseHandle;
OutputDebugString檢查最後的系統錯誤;
被污染的日誌這種技術並不是真正的反調試器,但會使日誌分析更加困難。重點是隨機調用kernel32.beep函數。你可以在這個沙盒分析中看到更多內容。
由於編碼錯誤導致檢查失敗
這些檢查應該使用仿真環境或已調試進程的細節,但由於編碼錯誤而無法正常工作。
FindWindow(類名:▬unAwtFrame)——名稱中的第一個符號是錯誤的,應該是SunAwtFrame;
NtQueryInformationProcess, check DebugPort——由於dll名稱錯誤而無法工作;
模糊轉儲成功躲避檢測後,Black Basta滴管又進行了模糊轉儲。 Black Basta有效載荷不是簡單地解壓縮並在內存中執行的,存在位於勒索軟件的PE標頭之前的數據是為了防止自動掃描器容易識別惡意有效載荷。
位於PE標頭之前的數據,以防止自動內存分析
正如預期的那樣,WinDbg中的imgscan命令無法顯示dropper進程內存中的Black Basta PE模塊。
WinDbg內存掃描中缺少Black Basta模塊
在完成所有這些步驟之後,實際的Black Basta有效載荷被執行。
Black Basta有效載荷在勒索軟件開始執行時創建互斥鎖,以確保只有一個惡意軟件副本處於活動狀態:
在Black Basta中創建互斥鎖
在我們介紹的示例中,互斥鎖的名稱是“dsajdhas.0”。
然後,惡意軟件設置壁紙,並為擴展名為“.basta”的文件指定一個自定義圖標。
Black Basta釋放的圖像
這些圖像來自Black Basta解壓縮它們的TEMP目錄。
該勒索軟件還試圖刪除任何卷影副本,如下圖所示:
刪除卷影副本所執行的命令
加密創建多個線程來進行多線程加密過程:
創建用於執行加密的線程
惡意軟件會加密驅動器上找到的所有文件,路徑中包含以下字符串的文件除外:
$Recycle.Bin
Windows
DocumentsandSettings
LocalSettings
ApplicationData
txt
Boot
txt
jpg
DAT
ico
ChaCha20流密碼(其比AES更快)用於加密,每個加密文件隨機生成密鑰。然後將該密鑰傳遞給帶有硬編碼公鑰的RSA加密,以檢索512字節的加密ChaCha20密鑰。此密鑰附加到加密文件的末尾:
文件末尾的加密密鑰開始(左側);原始文件(右側)
在塊的末尾,還有加密密鑰的長度(0x200):
加密文件末尾的密鑰長度
請注意,並不是整個文件都被加密。惡意軟件針對每個64字節的第三個塊:
由Black Basta加密的塊(左側);原始文件(右側)
要處理文件,通常使用kernel32函數CreateFile;
ReadFile;
WriteFile;
MoveFile (重命名加密文件);
作為附帶說明,我們需要提到使用了RSA的mini GMP實現。
加密完成後,勒索軟件會在桌面上的“readme.txt”文件中釋放一條勒索說明。公司ID被硬編碼在勒索信中,這是有針對性和有準備的攻擊的標誌:
在示例中硬編碼的公司ID
在不知道RSA私鑰的情況下,沒有明顯的方法來解密文件。
自動分配Black Basta具有內置的網絡自動傳播功能,這是為了預防滴管的功能不足以完成任務。勒索軟件嘗試在LDAP API的幫助下連接到AD,並使用過濾器字符串(samAccountType=805306369)遍歷連接的工作站:
通過連接的工作站啟動搜索的函數
獲得工作站列表後,勒索軟件嘗試通過路徑\\c$\\Windows\\tmp.exe將自己複製到遠程計算機。然後,在COM對象objectIWbemClassObject (CLSID: 4590f812 - 1d3b - 11d0 - 891f - 00aa004b2e24)和IWbemServices-Win32_Process的幫助下,通過Create方法啟動前一階段複製的可執行文件。
總結勒索軟件攻擊是受害者可能面臨的最嚴重威脅之一。當代勒索軟件攻擊有大量成功勒索的記錄,並且可以在網絡內橫向移動,因此在使用雙重勒索方案時,可以獲得越來越多有保證的回報。
新出現的Black Basta就是一個非常成功的勒索軟件組織,它採取了各種預防措施,並執行了實際的數據加密,例如應用的反調試和逃避技術。
如上所述,勒索軟件本身的設計不僅能夠在最短的時間內造成最大的傷害,而且傳播階段也非常隱蔽、複雜和有效。 Black Basta會確保在安全的環境中運行,並且有機會執行加密。
為了降低遭受類似攻擊的可能性,組織應採取以下做法:
1.教育員工如何在網絡安全領域保持安全;
2.不要打開來自陌生髮件人的件;
3.更新並提高網絡基礎設施的安全性。
4.定期備份敏感數據並將其存儲在其他外部驅動器上。
5.保持系統保更新到最新版本。
Recommended Comments