Office宏的基本利用


前言

Office宏,譯自英文單詞Macro。宏是Office自帶的一種高級腳本特性,通過VBA代碼,可以在Office中去完成某項特定的任務,而不必再重復相同的動作,目的是讓用戶文檔中的一些任務自動化。而宏病毒是一種寄存在文檔或模板的宏中的計算機病毒。一旦打開這樣的文檔,其中的宏就會被執行,於是宏病毒就會被激活,轉移到計算機上,並駐留在Normal模板上。

Visual Basic for Applications(VBA)是Visual Basic的一種宏語言,是微軟開發出來在其桌面應用程序中執行通用的自動化(OLE)任務的編程語言。主要能用來擴展Windows的應用程序功能,特別是Microsoft Office軟件,也可說是一種應用程式視覺化的Basic 腳本。

環境准備

  • Windows 7 x64 旗艦版
  • Microsoft Office 2016
  • CobaltStrike 3.14

CobaltStrike生成宏

先利用CobaltStrike生成宏payload,接下來只要放入word、excel或ppt即可。

image-20191016222133610

創建宏Word

打開Word文檔,點擊 “Word 選項 — 自定義功能區 — 開發者工具(勾選) — 確定” 。

image-20191016215348926

編寫主體內容后,點擊 “開發工具 — Visual Basic” 。

image-20191016215645574

雙擊 “ThisDocument” ,將原有內容全部清空,然后將CobaltStrike生成宏payload全部粘貼進去,保存並關閉該 VBA 編輯器 。

image-20191016220549344

另存為的Word類型務必要選”Word 97-2003 文檔 (*.doc)”,即 doc 文件,保證低版本可以打開。之后關閉,再打開即可執行宏代碼。

image-20191016215855386

反彈Beacon shell

默認情況下,Office已經禁用所有宏,但仍會在打開Word文檔的時候發出通知。

image-20191016221012732

誘導目標手動點擊”啟用內容”宏。

image-20191016221159875

目標一旦啟用,CobaltStrike的Beacon就會上線,即成功接收到Shell。

image-20191016221405060

宏代碼分析

CobaltStrike生成默認的VBA會導入四個Windows API函數,常見的ShellCode加載器代碼:

image-20191016234635077

  • CreateRemoteThread 創建一個在其它進程地址空間中運行的線程(也稱:創建遠程線程).
  • VirtualAllocEx 指定進程的虛擬空間保留或提交內存區域
  • WriteProcessMemory 寫入某一進程的內存區域
  • CreateProcess 創建一個新的進程和它的主線程,這個新進程運行指定的可執行文件

其中Array(-4,-24,-119,0,0,0,96,-119,-27...就是ShellCode,混淆的辦法有很多種。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM