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