增加使用Delphi Packer來躲避惡意軟件分類區塊鏈
“打包”或“加密”惡意程序的概念在希望繞過或破壞靜態和動態分析工具分析的威脅參與者中廣泛流行。逃避分類和檢測是一種軍備競賽,其中新技術在野外交易和使用。
前言
“打包”或“加密”惡意程序的概念在希望繞過或破壞靜態和動態分析工具分析的威脅參與者中廣泛流行。逃避分類和檢測是一種軍備競賽,其中新技術在野外交易和使用。例如,觀察到許多加密服務由地下論壇提供,他們聲稱通過反病毒技術,沙箱和其他端點解決方案制作任何惡意軟件“FUD”或“完全無法檢測”。然后還看到了對正常用戶活動建模的更多努力,并將其作為指紋惡意軟件分析環境的有效對策。
Delphi Code to the Rescue
在檢查的樣本帶有Delphi簽名如下圖所示,與使用IDR(Interactive Delphi Reconstructor)分析時的Delphi代碼構造一致。
圖1:樣本中的Delphi簽名
Delphi編程語言是編寫利用Windows API函數的應用程序和程序的簡便方法。事實上,一些演員故意將默認庫包含為妨礙靜態分析的轉移,并使應用程序在動態分析中“看起來合法”。如下圖顯示了一個討論這種技術的演員的論壇帖子。
圖2:演員討論技術的地下論壇帖子
分銷活動
可以觀察到許多具有不同主題的垃圾郵件活動會丟棄使用此打包程序打包的有效內容。
一個例子是平均快速傳輸垃圾郵件,它將文檔文件作為附件,它利用惡意宏來刪除有效負載。垃圾郵件如下圖所示。
圖3:垃圾郵件示例1
另一個例子是平均報價主題垃圾郵件,它將漏洞利用文檔文件作為附件,利用公式編輯器漏洞來刪除有效負載(下圖所示)。
圖4:垃圾郵件示例2
示例中的文檔從http://5.152.203.115/win32.exe獲取了一個有效負載。原來是Lokibot惡意軟件。
用戶活動檢查
封隔器竭盡全力確保它不在分析環境中運行。普通用戶活動涉及在一段時間內旋轉或更改的許多應用程序窗口。打包器的第一個變體使用GetForegroundWindow API在進一步執行之前檢查更改窗口的用戶活動至少三次。如果它沒有看到窗戶的變化,它會使自己陷入無限的睡眠。代碼如下圖所示。有趣的是,這種簡單的技術可以檢測到一些公開可用的沙箱。
圖5:窗口更改檢查
為了確認用戶活動,打包器的第二個變體使用GetCursorPos和Sleep API檢查鼠標光標移動,而第三個變體使用GetLastInputInfo和GetTickCount API檢查系統空閑狀態。
從PE資源中提取實際有效負載
原始有效負載被拆分為多個二進制blob,并存儲在資源目錄內的各個位置,如下圖所示。
圖6:具有加密內容的位圖資源
為了定位和組裝實際有效負載字節,封裝器代碼首先直接從資源部分內的硬編碼資源ID讀取內容。它的前16個字節形成一個XOR密鑰,用于使用滾動XOR解密其余字節。解密的字節實際上表示內部數據結構,如下圖所示,由打包器用于引用各種資源ID的加密和混淆緩沖區。
圖7:顯示加密文件信息的結構
然后,打包器從加密緩沖區讀取值,從dwStartResourceId開始到dwStartResourceId dwNumberOfResources,并通過讀取dwChunkSize的塊將它們帶到一個位置。一旦準備好最終數據緩沖區,它就會開始使用前面提到的相同滾動XOR算法和上述結構中的新密鑰對其進行解密,從而生成核心有效負載可執行文件。此腳本可用于靜態提取實際有效負載。
真實的分類
不但能夠從樣本集中提取的許多解壓縮的二進制文件被識別為屬于Lokibot惡意軟件系列。還能夠識別Pony,IRStealer,Nanocore,Netwire,Remcos和nJRAT惡意軟件系列,以及硬幣挖掘惡意軟件系列等。使用打包器的惡意軟件系列的分布如下圖所示。惡意軟件系列的多樣性意味著許多威脅參與者正在使用這種“加密”服務工具進行操作,可能從開發人員本身購買。
圖8:使用packer分發惡意軟件系列
結論
打包者和加密器服務為威脅行為者提供了一種簡單方便的選擇,可以將盡可能長時間保持真實有效載荷的工作量外包出去并保持未分類。他們經常通過反分析技術找到繞過沙箱環境的好方法; 因此,在試圖模擬真實用戶行為的沙箱環境中引爆惡意軟件樣本是一種安全的選擇。
1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。