過去幾年,使用社會工程的微軟office宏惡意軟件成為惡意軟件感染的一種新方式。惡意軟件作者還不斷發(fā)展其家屬以繞過檢測。這些技術(shù)使用宏混淆、DDE、以及使用支持老版本的xls格式。
McAfee實驗室研究人員近日發(fā)現(xiàn)一種可以在垃圾郵件附件宏中沒有任何惡意代碼的情況下下載和執(zhí)行惡意DLL文件——Zloader。
感染圖
威脅總結(jié)
初始的攻擊向量是一個含有微軟word附件的釣魚郵件。
打開該word附件后,就會從遠程服務器下載一個密碼保護的Excel文件。
Word文件的VBA會讀取下載的XLS文件的單元格內(nèi)容,并以宏的形式寫入XLS VBA。
宏寫入下載的XLS文件后,word文件就會在注冊表中設置策略來禁用Excel宏警告,并從Excel文件中動態(tài)調(diào)用宏函數(shù)。
結(jié)果就是下載最終的zloader payload。然后,zloader payload通過rundll32.exe動態(tài)執(zhí)行。
詳細技術(shù)分析
感染鏈
惡意軟件會通過含有word附件的釣魚郵件傳輸。Word文件打開且宏啟用時,word文件就會下載和打開另一個有密碼保護的Excel文件。
在下載XLS文件后,word VBA會從XLS中讀取單元格內(nèi)容,為該xls文件創(chuàng)建一個新的宏,并將單元格內(nèi)容寫入xls VBA宏。
宏寫入后,word文檔就會在注冊表中設置策略來禁用Excel宏警告,并從Excel文件中調(diào)用惡意宏函數(shù)。然后,Excel文件就會下載zloader payload。然后,Zloader payload就會用rundll32.eze執(zhí)行。
圖-1: 感染流圖
Word文件分析
圖2是打開word文件時的樣子。一般來說,微軟office默認是禁用宏的。惡意軟件作者意識到了這一點,所以在這里展示了一個誘餌圖像來誘使受害者按照指示去啟用宏。
圖-2: word文件的圖像
Word文件中的userform combo-box組件保存了連接到遠程Excel文件的所需要的所有內(nèi)容,包括Excel對象、URL、打開Excel文件所需的密碼。URL以分開的字符串的形式保存在combobox中,這些字符串之后會連接在一起來組成一個完整的字符串。
圖-3: URL組件(右側(cè))、打開Excel需要的密碼(“i5x0wbqe81s”)在user-form組件中
Word文檔VBA宏分析
圖-4: VBA編輯器圖像
如圖4所示,代碼會嘗試下載和打開惡意域名保存的Excel文件。首先,會使用CreateObject() 函數(shù)和從combobox-1(如圖2)來讀取字符串來創(chuàng)建Excel應用對象。在創(chuàng)建了對象后,使用相同的對象來打開Excel文件,會使用Workbooks.Open()函數(shù)直接從惡意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 相關(guān)的字符串,該注冊表是用于禁用Excel中VBA的可信訪問的,字符串Auto_Open3是Excel宏執(zhí)行的入口點。
可以看到字符串“ThisWorkbook”, “REG_DWORD”, “Version”, “ActiveVBProject”以及“Function c4r40() c4r40=1 End Function”這樣的隨機字符串。因為這些內(nèi)容是在運行時在動態(tài)構(gòu)造的,因此無法使用靜態(tài)檢測方法檢測。
圖-6: 讀取Excel單元中的變量值
從Excel單元格提取內(nèi)容后,word文件會通過寫入提取的內(nèi)容在下載的Excel文件中創(chuàng)建一個新的VBA模塊。
宏文件構(gòu)造后,會修改下面的注冊表來禁用受害者機器的VBA,在沒有office宏警告的情況下執(zhí)行函數(shù)。
HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security\AccessVBOM
將宏內(nèi)容寫入Excel文件,并禁用信任訪問后,來自新寫入的Excel VBA函數(shù)Auto_Open3()會被調(diào)用,從hxxp://heavenlygem.com/22.php?5PH8Z 下載zloader dll。
圖-7: Auto_Open3()函數(shù)
下載的dll會保存在 %temp% 文件夾中,通過調(diào)用rundll32.exe來執(zhí)行。
圖-8: rundll32.exe調(diào)用zloader dll
命令行參數(shù):
Rundll32.exe shell32.dll,Control_RunDLL “<路徑下載的dll>”
Windows Rundll32命令會加載和運行32位的DLL,該dll可以用來調(diào)用特定函數(shù)或用來創(chuàng)建快捷方式。在上面的命令行中,惡意軟件使用Rundll32.exe shell32.dll,Control_RunDLL 函數(shù)來調(diào)用control.exe,并傳遞DLL路徑作為參數(shù),然后下載的DLL會由control.exe來執(zhí)行。
Excel 文檔分析
圖9是保存在服務器上的有密碼保護的Excel文件??梢钥吹奖4媪恕癛egDelete”, “ThisWorkbook”, “DeleteLines”這樣的隨機單元。
這些字符串會在下一階段形成VBA宏。
圖-9: 遠程Excel文件圖像