宏病毒的研究与实例分析05——无宏文件携带宏病毒
文章目錄
- 前言
- 遠(yuǎn)程模板注入執(zhí)行宏
- docx文件格式解析
- 竊取NTLM Hashes
- 小結(jié)
- 說明
前言
docx文件可能是宏病毒嗎?
如果你是一周前問筆者這個問題,筆者一定會斬釘截鐵的說:”不可能!” 。筆者在之前的文章中提到過,docx中是不含宏的,所以不可能是宏病毒。但是,現(xiàn)在筆者卻會斬釘截鐵的說:”即使沒有宏也可能是宏病毒!”。
故事要從很久很久以前說起,office文檔誕生后不久,就迅速占領(lǐng)各大平臺,成為使用最廣泛的文檔文件。office文檔能夠迅速占領(lǐng)各大平臺市場,離不開其豐富多樣的內(nèi)容。為了組裝其豐富多彩的內(nèi)容,微軟最初使用的是OLE文件格式,OLE文件數(shù)據(jù)管理方式類似磁盤管理,該方式能夠有效組裝各個零件,但是卻不夠靈活。在office2007中,微軟推出了OpenXML文件格式,該文件格式其實(shí)是標(biāo)準(zhǔn)的壓縮文件格式,通過XML組裝各個零件。OpenXML文件格式足夠靈活,同時也“解決”了office文檔最大的安全問題——宏病毒威脅,微軟將所有宏相關(guān)的內(nèi)容都放進(jìn)了vbaProject.bin文件中,只要文件中不包含vbaProject.bin,就不可能含有宏,也就不可能是宏病毒。于是,微軟推出了以x結(jié)尾(docx)和以m結(jié)尾(docm)的兩大類文檔文件,這兩類文件均是OpenXML文件,但是以x結(jié)尾的文件中不含有vbaProject.bin。
正所謂“道高一尺魔高一丈”,沒有vbaProject.bin,攻擊者們就不能使用宏病毒進(jìn)行攻擊了嗎?
遠(yuǎn)程模板注入執(zhí)行宏
既然本地文件中沒有宏,攻擊者便嘗試執(zhí)行遠(yuǎn)程文件中宏。來自APT28的最新樣本將此技術(shù)展現(xiàn)的淋漓盡致。
該樣本是docx文件,文件內(nèi)沒有任何宏相關(guān)信息,但是打開該文件后,卻會彈出經(jīng)典的“宏安全告警”:
這個宏是哪里來的?
為了追蹤這個宏的來源,我們開啟行為監(jiān)控軟件,再次打開這個docx文件。這個時候就會發(fā)現(xiàn),該docx文件打開了一個遠(yuǎn)程站點(diǎn)上的dotm文件:
以m結(jié)尾的文檔文件是可能攜帶宏的。
查看宏代碼,dotm文件中的宏和docx中的宏代碼完全相同,可以確定docx文件中的宏就是來自于這個dotm文件。
繼續(xù)追蹤,docx文件為什么會打開這樣遠(yuǎn)程dotm文件?
解壓docx文件,遍歷所有文件,搜索字符串"http://109.248.148.42/office/thememl/2012/main/attachedTemplate.dotm”,我們可以在./word/rels/settings.xml.rels中找到這段字符串:
遠(yuǎn)程鏈接的位置也找到了,但是新的問題又出現(xiàn)了,這段字符串在docx中是如何起作用的?接下來我們就需要分析docx文件的文件格式了。
docx文件格式解析
將docx文件后綴名修改為zip,解壓該文件,我們發(fā)現(xiàn)其文件結(jié)構(gòu)如下:
其結(jié)構(gòu)解釋如下:
此內(nèi)容摘自于l1xnan,雖然沒有提到settings.xml.rel,但我們可以根據(jù)document.xml.rels猜測settings.xml.rels也是用于定位文檔各零件的。在rels文件Relationship標(biāo)簽中,Target表示零件的文件位置,正常情況下,給值是相對路徑,且存在于壓縮包中:
通過惡意構(gòu)造Target,使其執(zhí)行遠(yuǎn)程文件,就可以打開遠(yuǎn)程文件:
APT28就是利用這種方式打開遠(yuǎn)程含有宏病毒的文檔模板
竊取NTLM Hashes
此攻擊技術(shù)最早由pentestlab提出,與前文不同的是,此技術(shù)中修改的是webSetings.xml.rels文件,且只有在Office2010及之后版本才能利用成功。詳細(xì)的操作步驟請看pentestlab的分析文章,筆者就不贅述了,實(shí)驗(yàn)效果如下:
此攻擊技術(shù)能獲取NTLM Hashes的原因是,經(jīng)過惡意構(gòu)造的docx打開時會訪問遠(yuǎn)程資源,訪問遠(yuǎn)程資源使用NTLM協(xié)議進(jìn)行身份驗(yàn)證,從而泄露NTLM Hashes信息。
小結(jié)
與傳統(tǒng)的病毒文檔相比,這個攻擊文檔本身不含有惡意代碼,任何靜態(tài)掃描程序都無法發(fā)現(xiàn)宏本身,郵件攔截系統(tǒng)也很難發(fā)現(xiàn)存在其中的威脅,可以預(yù)見此類宏病毒威脅將會越來越多。而隨著此類攻擊技術(shù)的發(fā)展,除了settings.xml.rels、webSettings.xml.rels,其他rels也可能成為被攻擊的目標(biāo)。
參考資料:
https://mp.weixin.qq.com/s/zoaJAoUtjRtJzT6UkQuN5w
http://blog.redxorblue.com/2018/07/executing-macros-from-docx-with-remote.html
http://www.4hou.com/technology/9403.html
說明
- 本文并非原創(chuàng),乃是征得作者同意后的轉(zhuǎn)載 原作者為狐貍先生 未經(jīng)允許,禁止轉(zhuǎn)載
- 需要相關(guān)文件可以到我的Github下載:https://github.com/TonyChen56/Virus-Analysis
- 應(yīng)作者要求 貼上知識星球圖片 主要分享病毒分析和逆向破解技術(shù),文章質(zhì)量很高 我也在這個星球里 大家可以積極加入
總結(jié)
以上是生活随笔為你收集整理的宏病毒的研究与实例分析05——无宏文件携带宏病毒的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 160个Crackme008
- 下一篇: 160个Crackme009