CVE-2014-4113_Win32k提權(quán)漏洞學(xué)習(xí)筆記

一.前言

1.漏洞描述

該漏洞發(fā)生的位置是在驅(qū)動(dòng)文件Win32k.sys中的xxxHandleMenuMessage函數(shù)巡雨,產(chǎn)生的原因是沒有對(duì)該函數(shù)中調(diào)用的xxxMNFindWindowFromPoint函數(shù)的返回值進(jìn)行合法性驗(yàn)證揩抡,直接將其作為參數(shù)傳遞給后面的xxxSendMessage函數(shù)調(diào)用溯革,從而造成了提權(quán)漏洞兄裂。

2.實(shí)驗(yàn)環(huán)境

  • 操作系統(tǒng): Win7 x86 sp1 專業(yè)版
  • 編譯器: Visual Studio 2017
  • 調(diào)試器: IDA Pro爆哑,WinDbg

二.漏洞分析

1.靜態(tài)分析

通過IDA直接查看xxxHandleMenuMessage函數(shù)液茎,可以在其中看到野宜,在該函數(shù)中太防,會(huì)首先調(diào)用xxxMNFindWindowFromPoint函數(shù)肩刃,然后將該函數(shù)的返回值作為第一個(gè)參數(shù)被下面的xxxSendMessage函數(shù)調(diào)用,該函數(shù)會(huì)發(fā)送一個(gè)0xED的消息杏头。

image

xxxSendMessage函數(shù)是通過調(diào)用xxxSendMessageTimeout函數(shù)來實(shí)現(xiàn)的盈包,而在xxxSendMessageTimeout中會(huì)有如下的代碼:

image

此時(shí)esi保存的就是xxxSendMessage第一個(gè)參數(shù)的值,也就是說此時(shí)esi=iRet醇王。因此呢燥,如果xxxMNFindWindowFromPoint函數(shù)的返回值為-5的話,那么寓娩,此時(shí)call dword ptr [esi + 0x60]就會(huì)是call dword ptr [-5 + 0x60]叛氨,就等于call dword ptr [0x5B]。此時(shí)棘伴,可以通過在0x5B處保存要執(zhí)行的ShellCode的地址寞埠,那么此處的call dword ptr [esi+0x60]就會(huì)執(zhí)行指定的ShellCode。

而在xxxMNFindWindowFromPoint函數(shù)中焊夸,會(huì)調(diào)用xxxSendMessage來發(fā)送一個(gè)0x1EB的消息仁连。如果xxxSendMessage函數(shù)的返回值非0的話(比如-5),那么該返回值就會(huì)作為xxxMNFindWindowFromPoint函數(shù)的返回值返回回去阱穗。

image

這里IDA反編譯的結(jié)果出了問題饭冬,在反匯編的代碼中是可以看到使鹅,此處的xxxSendMessage函數(shù)發(fā)送的消息是0x1EB的消息:

image

2.動(dòng)態(tài)分析

運(yùn)行exp,在xxxMNFindWindowFromPoint函數(shù)發(fā)送消息的地址下斷點(diǎn)

\

image

中斷以后昌抠,調(diào)用函數(shù)發(fā)送消息患朱,然后查看返回值可以看到此時(shí)的返回值就是-5

image

繼續(xù)運(yùn)行到xxxMNFindWindowFromPoint函數(shù)返回前,可以看到此時(shí)的返回值為-5

image

繼續(xù)向下運(yùn)行到xxxSendMessageTimeout調(diào)用函數(shù)處的call dword ptr [esi + 60h]炊苫,可以看到此時(shí)的esi等于-5裁厅,而0x5B保存了要執(zhí)行的ShellCode的地址

image

繼續(xù)運(yùn)行,就會(huì)運(yùn)行ShellCode的代碼完成提權(quán)

image

三.漏洞利用

【→所有資源關(guān)注我侨艾,私信回復(fù)“資料”獲取←】
1姐直、網(wǎng)絡(luò)安全學(xué)習(xí)路線
2、電子書籍(白帽子)
3蒋畜、安全大廠內(nèi)部視頻
4声畏、100份src文檔
5、常見安全面試題
6姻成、ctf大賽經(jīng)典題目解析
7插龄、全套工具包
8、應(yīng)急響應(yīng)筆記

想要成功觸發(fā)該漏洞科展,需要使用TrackPopupMenu函數(shù)均牢,該函數(shù)定義如下:

image

其中第一個(gè)參數(shù)hMenu是一個(gè)pop-up菜單,第六個(gè)參數(shù)hWnd則是擁有該菜單的窗口句柄才睹,因此在exp中要?jiǎng)?chuàng)建好這些窗口徘跪,然后調(diào)用函數(shù)觸發(fā)漏洞:

image

同時(shí),在主窗口的處理函數(shù)中琅攘,也需要進(jìn)行判斷垮庐。如果窗口處于空閑狀態(tài),需要通過PostMessage函數(shù)來模擬鼠標(biāo)和鍵盤的操作坞琴,這樣才能成功發(fā)送0x1EB的消息來達(dá)到漏洞點(diǎn):

image

為了讓xxxSendMessage函數(shù)返回-5觸發(fā)漏洞哨查,還需要通過SetWindowHook來加入鉤子函數(shù),

image

在鉤子函數(shù)中剧辐,攔截0x1EB的消息寒亥,通過SetWindowLongA函數(shù)來修改菜單窗口的屬性。這里的第二個(gè)參數(shù)傳入的是GWL_WNDPROC荧关,意味著修改的是窗口的處理函數(shù)

image

在窗口處理函數(shù)中溉奕,如果接收的消息是0x1EB的消息,則調(diào)用EndMenu函數(shù)銷毀窗口且返回-5來觸發(fā)漏洞

image

最后忍啤,由于在xxxSendMessageTimeout中還有如下的驗(yàn)證:

image

此時(shí)的p就是傳遞的-5加勤,所以在0地址申請(qǐng)內(nèi)存成功以后,除了將0x5B地址的內(nèi)容修改為ShellCode的地址外,還需要將0x3和0x11處的數(shù)據(jù)修改為如下數(shù)據(jù):

image

四.運(yùn)行結(jié)果

image

image

最后在系統(tǒng)上運(yùn)行結(jié)果如下胸竞,可以看到提權(quán)成功欺嗤。

image

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末参萄,一起剝皮案震驚了整個(gè)濱河市卫枝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌讹挎,老刑警劉巖校赤,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異筒溃,居然都是意外死亡马篮,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門怜奖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浑测,“玉大人,你說我怎么就攤上這事歪玲∏ㄑ耄” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵滥崩,是天一觀的道長(zhǎng)岖圈。 經(jīng)常有香客問我,道長(zhǎng)钙皮,這世上最難降的妖魔是什么蜂科? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮短条,結(jié)果婚禮上导匣,老公的妹妹穿的比我還像新娘。我一直安慰自己茸时,他們只是感情好逐抑,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著屹蚊,像睡著了一般厕氨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上汹粤,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天命斧,我揣著相機(jī)與錄音,去河邊找鬼嘱兼。 笑死国葬,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播汇四,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼接奈,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了通孽?” 一聲冷哼從身側(cè)響起序宦,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎背苦,沒想到半個(gè)月后互捌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡行剂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年秕噪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厚宰。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡腌巾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出铲觉,到底是詐尸還是另有隱情澈蝙,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布备燃,位于F島的核電站碉克,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏并齐。R本人自食惡果不足惜漏麦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望况褪。 院中可真熱鬧撕贞,春花似錦、人聲如沸测垛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽食侮。三九已至号涯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間锯七,已是汗流浹背链快。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留眉尸,地道東北人域蜗。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓巨双,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親霉祸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子筑累,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容