奧推網

選單
科技

Zloader惡意軟體可禁用office宏警告

過去幾年,使用社會工程的微軟office宏惡意軟體成為惡意軟體感染的一種新方式。惡意軟體作者還不斷髮展其家屬以繞過檢測。這些技術使用宏混淆、DDE、以及使用支援老版本的xls格式。

McAfee實驗室研究人員近日發現一種可以在垃圾郵件附件宏中沒有任何惡意程式碼的情況下下載和執行惡意DLL檔案——Zloader。

感染圖

威脅總結

初始的攻擊向量是一個含有微軟word附件的釣魚郵件。

開啟該word附件後,就會從遠端伺服器下載一個密碼保護的Excel檔案。

Word檔案的VBA會讀取下載的XLS檔案的單元格內容,並以宏的形式寫入XLS VBA。

宏寫入下載的XLS檔案後,word檔案就會在登錄檔中設定策略來禁用Excel宏警告,並從Excel檔案中動態呼叫宏函式。

結果就是下載最終的zloader payload。然後,zloader payload透過rundll32。exe動態執行。

詳細技術分析

感染鏈

惡意軟體會透過含有word附件的釣魚郵件傳輸。Word檔案開啟且宏啟用時,word檔案就會下載和開啟另一個有密碼保護的Excel檔案。

在下載XLS檔案後,word VBA會從XLS中讀取單元格內容,為該xls檔案建立一個新的宏,並將單元格內容寫入xls VBA宏。

宏寫入後,word文件就會在登錄檔中設定策略來禁用Excel宏警告,並從Excel檔案中呼叫惡意宏函式。然後,Excel檔案就會下載zloader payload。然後,Zloader payload就會用rundll32。eze執行。

圖-1: 感染流圖

Word檔案分析

圖2是開啟word檔案時的樣子。一般來說,微軟office預設是禁用宏的。惡意軟體作者意識到了這一點,所以在這裡展示了一個誘餌影象來誘使受害者按照指示去啟用宏。

圖-2: word檔案的影象

Word檔案中的userform combo-box元件儲存了連線到遠端Excel檔案的所需要的所有內容,包括Excel物件、URL、開啟Excel檔案所需的密碼。URL以分開的字串的形式儲存在combobox中,這些字串之後會連線在一起來組成一個完整的字串。

圖-3: URL元件(右側)、開啟Excel需要的密碼(“i5x0wbqe81s”)在user-form元件中

Word文件VBA宏分析

圖-4: VBA編輯器影象

如圖4所示,程式碼會嘗試下載和開啟惡意域名儲存的Excel檔案。首先,會使用CreateObject() 函式和從combobox-1(如圖2)來讀取字串來建立Excel應用物件。在建立了物件後,使用相同的物件來開啟Excel檔案,會使用Workbooks。Open()函式直接從惡意URL直接開啟檔案而不儲存檔案到硬碟上。

圖-5: 讀取Excel中隨機表格中字串的Word宏程式碼

圖5中的程式碼是從Excel單元格讀取字串部分宏程式碼。比如:

Ixbq = ifk。sheets(3)。Cells(44,42)。Value

上面的程式碼將sheet 3單元格(44,22)中字串儲存到變數ixbq中。Excel。Application物件會分配變數ifk用於訪問Excel檔案中的表單和單元格。

圖6中可以看出,從單元格中讀取的儲存在變數中的字串。其中有魚登錄檔記錄HKEY_CURRENT_USER\Software\Microsoft\Office\12。0\Excel\Security\AccessVBOM 相關的字串,該登錄檔是用於禁用Excel中VBA的可信訪問的,字串Auto_Open3是Excel宏執行的入口點。

可以看到字串“ThisWorkbook”, “REG_DWORD”, “Version”, “ActiveVBProject”以及“Function c4r40() c4r40=1 End Function”這樣的隨機字串。因為這些內容是在執行時在動態構造的,因此無法使用靜態檢測方法檢測。

圖-6: 讀取Excel單元中的變數值

從Excel單元格提取內容後,word檔案會透過寫入提取的內容在下載的Excel檔案中建立一個新的VBA模組。

宏檔案構造後,會修改下面的登錄檔來禁用受害者機器的VBA,在沒有office宏警告的情況下執行函式。

HKEY_CURRENT_USER\Software\Microsoft\Office\12。0\Excel\Security\AccessVBOM

將宏內容寫入Excel檔案,並禁用信任訪問後,來自新寫入的Excel VBA函式Auto_Open3()會被呼叫,從hxxp://heavenlygem。com/22。php?5PH8Z 下載zloader dll。

圖-7: Auto_Open3()函式

下載的dll會儲存在 %temp% 資料夾中,透過呼叫rundll32。exe來執行。

圖-8: rundll32。exe呼叫zloader dll

命令列引數:

Rundll32。exe shell32。dll,Control_RunDLL “< 路徑下載的dll >”

Windows Rundll32命令會載入和執行32位的DLL,該dll可以用來呼叫特定函式或用來建立快捷方式。在上面的命令列中,惡意軟體使用Rundll32。exe shell32。dll,Control_RunDLL 函式來呼叫control。exe,並傳遞DLL路徑作為引數,然後下載的DLL會由control。exe來執行。

Excel 文件分析

圖9是儲存在伺服器上的有密碼保護的Excel檔案。可以看到儲存了“RegDelete”, “ThisWorkbook”, “DeleteLines”這樣的隨機單元。

這些字串會在下一階段形成VBA宏。

圖-9: 遠端Excel檔案影象