您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)Office漏洞的詳細(xì)分析是怎么樣的,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
在windows2017年 11月份發(fā)布補(bǔ)丁,修復(fù)了包括cve-2017-11882在內(nèi)之后,在2018年又繼續(xù)發(fā)布補(bǔ)丁,修復(fù)了包括CVE-2018-0802在內(nèi)的多個(gè)漏洞,而這次CVE-2018-0802再一次利用了EQNEDT32.EXE公式編輯器的棧溢出漏洞,而這個(gè)漏洞則是CVE-201-11882的補(bǔ)丁繞過(guò)漏洞,網(wǎng)上也出現(xiàn)兩種漏洞結(jié)合的POC,我們一起來(lái)看看這個(gè)漏洞。
漏洞分析
分析環(huán)境:win7
Office 版本:office2007 SP3 并打上CVE-2017-11882補(bǔ)丁
我們首先看下在打完補(bǔ)丁后EQNEDT32.exe的屬性
我們看看POC的RTF文件,可以看到繼續(xù)使用objupdate字段來(lái)使OLE對(duì)象的自動(dòng)更新和加載
然后我們通過(guò)rtfobj.py將這個(gè)OLE對(duì)象提取
我們可以看前面還是28字節(jié)的EQNOLEFILEHDR的結(jié)構(gòu)體,我們來(lái)看看后面的MIEF data,對(duì)應(yīng)的是下面的陰影部分,第一個(gè)字節(jié)03代表MTEF的版本號(hào),第二個(gè)字節(jié)01表示在windows平臺(tái)生成,第三個(gè)字節(jié)01表示這個(gè)是公式編輯器生成,之后的是產(chǎn)品的主版本號(hào)和產(chǎn)品的副版本號(hào)
之后是公式數(shù)據(jù)流,這個(gè)一系列的records 字節(jié)08 表示Font record,我們通過(guò)文檔
來(lái)具體查看一下這個(gè)font字節(jié),分別是tface和style和name,,看來(lái)這次出問(wèn)題的還是font name ,而上次CVE-2017-11882也是這個(gè)font name
我們先來(lái)動(dòng)態(tài)調(diào)試下,確定下漏洞點(diǎn)
設(shè)置windbg為默認(rèn)的調(diào)試器,并且設(shè)置EQNEDT32.EXE的默認(rèn)調(diào)試器為windbg,這樣在EQNEDT32.EXE在啟動(dòng)的時(shí)候就會(huì)默認(rèn)附加到windbg上
通過(guò)構(gòu)造Crash和?;厮菸覀兌ㄎ坏铰┒吹攸c(diǎn),函數(shù)地址為012D1774,基地址為0x12B0000,由于模塊開(kāi)啟了ASLR動(dòng)態(tài)調(diào)試地址可能不同
通過(guò)動(dòng)態(tài)分析我們發(fā)現(xiàn)漏洞點(diǎn)在crash函數(shù)的sub_1201E39
溢出點(diǎn)則在拷貝函數(shù)中,我們可以看到這個(gè)關(guān)鍵函數(shù)主要是用來(lái)初始化一個(gè)LOGFONT的結(jié)構(gòu)體
我們可以看到在拷貝的明顯發(fā)生了棧溢出,而這次拷貝的是0x94字節(jié),直到遇到0x00,而這次只分配了0x1c個(gè)字節(jié),顯然發(fā)生了棧溢出,
而這次只為了覆蓋返回地址,我們看看是如何覆蓋返回地址,以及如何繞過(guò)ASLR的,我們可以看到在覆蓋前的返回地址是012014e2,而這個(gè)函數(shù)也是crash函數(shù)調(diào)用以后的下一條指令
我們看看覆蓋之后的返回地址的是什么樣子的,變成了01200025
而0x01200025這個(gè)地址為retn 指令而正是通過(guò)這樣的覆蓋繞過(guò)了ASLR,我們知道在32位進(jìn)程中每次只隨機(jī)化地址的高2個(gè)字節(jié),而低兩個(gè)字節(jié)是不變的,而正是利用了這個(gè)特性才繞過(guò)ASLR
我們來(lái)看一下為什么會(huì)選擇這個(gè)ret指令,因?yàn)檫@樣會(huì)執(zhí)行 crash函數(shù)的第一個(gè)參數(shù)
正是lpLogfont,也就是樣本可以控制的FontName
由于并沒(méi)有開(kāi)啟DEP,所以可以在棧中可以執(zhí)行代碼,可以看一下這個(gè)shellcodes
還有一個(gè)問(wèn)題是這個(gè)漏洞在未打補(bǔ)丁的系統(tǒng)中,并不會(huì)執(zhí)行,因?yàn)镃VE-2017-11882覆蓋返回地址需要的長(zhǎng)度遠(yuǎn)遠(yuǎn)小于這個(gè)樣本,而在執(zhí)行這個(gè)樣本的時(shí)候會(huì)先觸發(fā)CVE-2017-11882導(dǎo)致Crash,網(wǎng)上也出現(xiàn)了將兩種洞組合的POC,在CVE-2017-11882利用不成功,會(huì)利用CVE-2018-0802
漏洞針對(duì)EQNEDT32.EXE公式編輯器,結(jié)合CVE-2017-11882漏洞組合攻擊將會(huì)造成很大的危害,建議盡快打補(bǔ)丁或者禁止EQNEDT32.EXE模塊
補(bǔ)丁下載地址 https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2018-0802
或者通過(guò)注冊(cè)表直接禁用這個(gè)模塊
reg add “HKLM\SOFTWARE\Microsoft\Office\XX.X\Common\COMCompatibility\{0002CE02-0000-0000-C000-000000000046}” /v”Compatibility Flags” /t REG_DWORD /d 0×400
regadd”HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\XX.X\Common\COMCompatibility\{0002CE02-0000-0000-C000-000000000046}”/v”Compatibility Flags” /t REG_DWORD /d 0×400
關(guān)于Office漏洞的詳細(xì)分析是怎么樣的就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。