利用DOCX文檔遠程模板注入執行宏代碼

利用DOCX文檔遠程模板注入執行宏代碼

簡介

本地文件中在沒有宏代碼的情況下,攻擊者可以嘗試執行遠程文件中宏代碼。其中來自APT28的最新樣本將此技術展現的淋漓盡致。該樣本是docx文件,文件內沒有任何宏相關信息,但是打開該文件後,卻會彈出經典的“宏安全警告”。本實驗將實現通過遠程加載執行宏代碼的攻擊方式。
在這裏插入圖片描述

應用場景

該種攻擊方式與傳統的宏啓用文檔相比,這種攻擊的好處是多方面的。在對目標執行網絡釣魚攻擊時,您可以將.docx的文檔直接附加到電子郵件中,並且您不太可能根據文件的拓展名去阻止它。

Word遠程模板執行宏就是利用Word文檔加載附加模板時的缺陷所發起的惡意請求而達到的攻擊目的,所以當目標用戶點開攻擊者發給他的惡意word文檔就可以通過向遠程服務器發送惡意請求的方式,然後加載模板執行惡意模板的宏。

這種攻擊更常見的原因是,發送的文檔本身是不帶惡意代碼的,能過很多靜態的檢測。那麼我們只需要在遠程DOTM文檔中編寫宏病毒或者宏木馬即可完成攻擊

實際案例

最爲著名的是APT28 使用 Zebrocy 攻擊歐洲軍事和外交機構。

APT28,又名 Sofacy、Sednit、FancyBear、TsarTeam、Group 74、Pawn Storm 和 Strontium,自 2007 年起就開始針對北約、東歐及高加索地區的政府等機構開展網絡間諜活動,主要目的是收集國防和地緣政治相關情報,被指可能與俄羅斯情報機構 GRU 有關。情報顯示,該組織於 2017 年下半年將目標範圍擴大到包含中亞地區,且有東移趨勢。
該組織自2018年10月下旬以來,針對白俄羅斯等歐洲目標發起了一波新的攻擊。分析之後發現:

  • 這波攻擊活動中,受害者主要爲歐洲和北約相關的軍事和外交機構,具體目標包含白俄羅斯國防部和波蘭政府等等。
  • 攻擊手法爲魚叉式網絡釣魚結合遠程模板注入技術,攻擊文檔包含的惡意宏使用相對較爲少見的AutoClose 函數觸發執行,啓用宏之後,在關閉
    Word 文檔時纔會執行惡意代碼。

具體內容詳見:【微步在線報告】APT28 使用 Zebrocy 攻擊歐洲軍事和外交機構

思路

  • 編寫一個帶有宏代碼的DOTM文檔,上傳服務器
  • 編寫一個能夠遠程連接的DOCX文檔
  • 將該文檔壓縮找到並更改settings.xml.rels文件中的內容,將其中的target內容修改爲服務器上DOTM文檔的URL
  • 將DOCX解壓後的內容再以存儲模式壓縮爲ZIP
  • 修改後綴名爲DOCX,打開後即可實現遠程注入宏文檔

難點

  • DOTM宏編寫的位置需要在左側導航欄中本DOTM文檔中,不要在normal等位置編寫
  • DOTM文檔上傳至服務器可以自己編寫,也可以上傳至GitHub,本實驗是上傳到自己服務器實現的
  • 編寫一個能夠遠程連接的DOCX文檔,不要編寫純文本的文檔,以上兩種文檔解壓後的目錄結構不相同(卡在這裏非常非常久,具體操作見下文)
  • 壓縮解壓後的DOCX文檔目錄,不要在父目錄壓縮,需要以存儲模式壓縮(卡在這裏非常久,具體操作見下文)

實驗環境

  • Windows10操作系統
  • Word 2016(據參考網站說,word 2013也可以)

具體步驟

DOTM文檔編寫

首先,打開一個word docx文檔,點擊開發工具->Visual Basic,打開宏代碼編輯環境
在這裏插入圖片描述
我們打開宏代碼編輯環境後,在本文檔的ThisDocument下,編寫如下宏代碼,作用爲:打開文檔即可彈出對話框,顯示“你好!這是遠程加載注入宏!”
在這裏插入圖片描述
現在將該docx文檔另存爲dotm文檔,並命名爲:MacroTemplate.dotm,保存爲啓用宏的Word模板
在這裏插入圖片描述
最後將該dotm文件上傳到後臺服務器上

DOCX文檔編寫

新建一個docx文檔,命名爲RemoteMacroExecute.docx,其中,要注意的是,一定要通過網絡來加載一個word模板,這樣才能成功。
在這裏插入圖片描述
如下是反例,不可以只填寫文本字符,可以嘗試如下兩種文檔,並將其解壓,可以看到兩種文檔解壓後目錄結構不相同(如下是反例,不要這麼寫,不要這麼寫,不要這麼寫)
在這裏插入圖片描述
現在將我們的docx文檔壓縮成zip格式
在這裏插入圖片描述
將該zip壓縮包解壓,其目錄結構如下所示
在這裏插入圖片描述
現在找到word->_rels中的settings.xml.rels,右鍵打開編輯(如果沒有,說明沒有按照第一種方式創建docx文檔,需要重新創建,以到文件解壓後可以看到如下文件位置)
在這裏插入圖片描述
打開編輯settings.xml.rels後,可以看到如下所示內容,其中,Target所指的路徑即我們要修改的位置
在這裏插入圖片描述
我們現在將其修改爲我們dotm文件所在的URL位置,然後將其保存
在這裏插入圖片描述
現在在RemoteMacroExecute路徑下,將其中所有目錄及文件選中,點擊右鍵壓縮,選中壓縮文件格式爲zip,壓縮方式爲存儲,然後對其進行壓縮
在這裏插入圖片描述
然後將其後綴名修改爲docx,再將其打開,可以看到我們成功加載了遠程宏
在這裏插入圖片描述

代碼地址

本文所有代碼地址

參考網站

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章