新聞中心
寫(xiě)在前面的話

用戶賬戶控制(UAC)是微軟開(kāi)發(fā)出的一套安全控制機(jī)制,其目的是為了限制未經(jīng)授權(quán)的應(yīng)用程序以管理員等級(jí)的權(quán)限執(zhí)行,但是當(dāng)管理員提供了密碼并允許該程序執(zhí)行的話,那么這個(gè)非特權(quán)應(yīng)用仍然能夠以管理員權(quán)限運(yùn)行。這也就意味著,由于用戶賬戶控制機(jī)制的存在,滲透測(cè)試人員就可以通過(guò)Meterpreter來(lái)阻止這種提權(quán)方法。
下圖即為UAC阻止應(yīng)用程序提權(quán)的演示樣例:
Matt Nelson在其發(fā)布的技術(shù)博客中解釋稱,通過(guò)劫持注冊(cè)表鍵,我們是有可能利用類似Event Viewer(事件查看器)這樣的原生Windows服務(wù)來(lái)繞過(guò)用戶賬戶控制(UAC)的。首先,Event Viewer(事件查看器)的進(jìn)程(eventvwr.exe)是以高級(jí)完整權(quán)限運(yùn)行的;其次,Event Viewer(事件查看器)是Microsoft Management Console(微軟管理控制臺(tái))通過(guò)注冊(cè)表進(jìn)行加載的,因此我們的這個(gè)假設(shè)完全是可以實(shí)現(xiàn)的。
手動(dòng)實(shí)現(xiàn)
在新版本的Windows(包括Vista及其之后版本)平臺(tái)中,進(jìn)程是以三種不同的權(quán)限等級(jí)運(yùn)行的。系統(tǒng)可以通過(guò)這三個(gè)不同的等級(jí)來(lái)確定進(jìn)程最終以哪一種權(quán)限來(lái)運(yùn)行:
- -高級(jí):管理員權(quán)限
- -中級(jí):標(biāo)準(zhǔn)用戶權(quán)限
- -低級(jí):受限制權(quán)限
我們可以根據(jù)Process Explorer(進(jìn)程查看器)來(lái)確定一個(gè)進(jìn)程所分配到的權(quán)限等級(jí)。當(dāng)事件查看器出于運(yùn)行過(guò)程中時(shí),我們可以通過(guò)下面這兩個(gè)因素來(lái)檢查Windows進(jìn)程的權(quán)限:
1. 系統(tǒng)通過(guò)微軟管理控制臺(tái)(mmc.exe)加載事件查看器;
2. 事件查看器以高級(jí)完整權(quán)限運(yùn)行;
從下圖中可以看到,事件查看器進(jìn)程是以高級(jí)權(quán)限運(yùn)行的:
這里需要注意的是,當(dāng)eventvwr.exe被執(zhí)行之后,它會(huì)嘗試在下面這兩個(gè)注冊(cè)表地址中搜索mmc.exe:
- -HKCU\Software\Classes\mscfile\shell\open\command
- -HKCR\mscfile\shell\open\command
由于第一個(gè)注冊(cè)表地址并不存在,因此mmc.exe會(huì)以第二個(gè)注冊(cè)表地址運(yùn)行,隨后該地址便會(huì)加載文件eventvwr.msc并將相關(guān)信息顯示給用戶。
下圖即為MMC以及事件查看器的相關(guān)信息:
這樣一來(lái),攻擊者就有可能創(chuàng)建一個(gè)壓根不存在的注冊(cè)表地址來(lái)以高級(jí)權(quán)限運(yùn)行某個(gè)進(jìn)程了,而這樣就可以允許攻擊者繞過(guò)目標(biāo)系統(tǒng)的用戶賬戶控制(UAC)。
下圖顯示的是攻擊者通過(guò)事件查看器來(lái)提升命令控制臺(tái)(CMD)權(quán)限的操作界面:
當(dāng)eventvwr.exe得到執(zhí)行之后,它將會(huì)直接打開(kāi)命令控制臺(tái)窗口,而且在整個(gè)過(guò)程中系統(tǒng)既不會(huì)彈出用戶賬戶控制窗口,也不會(huì)請(qǐng)求高級(jí)權(quán)限。如下圖所示:
這項(xiàng)攻擊技術(shù)的隱蔽性非常高,因?yàn)檎麄€(gè)過(guò)程根本無(wú)需觸及硬盤,而且也不需要進(jìn)行任何的進(jìn)程注入,這樣就可以防止被那些基于進(jìn)程行為監(jiān)控的反病毒產(chǎn)品或安全解決方案所檢測(cè)到。
自動(dòng)化實(shí)現(xiàn)
需要注意的是,我們還可以通過(guò)一個(gè)不可檢測(cè)的惡意Payload來(lái)代替之前所彈出的命令控制臺(tái)窗口,這樣不僅可以允許我們通過(guò)Meterpreter會(huì)話來(lái)實(shí)現(xiàn)自動(dòng)化提權(quán),而且還可以執(zhí)行很多其他的系統(tǒng)級(jí)指令。我們可以在注冊(cè)表中加載自定義Payload:
我們可以在進(jìn)程查看器中看到,進(jìn)程pentestlab3.exe再一次以高級(jí)權(quán)限運(yùn)行了:
Metasploit的handler模塊可以捕獲到提權(quán)的Meterpreter會(huì)話,而此時(shí)我們就可以給目標(biāo)應(yīng)用進(jìn)行提權(quán)了,因?yàn)槲覀儸F(xiàn)在已經(jīng)繞過(guò)了目標(biāo)系統(tǒng)的用戶賬戶控制。
Metasploit
除了上面所描述的技術(shù)方法之外,我們也可以使用Metasploit提供的模塊來(lái)實(shí)現(xiàn)整個(gè)攻擊過(guò)程的自動(dòng)化,并自動(dòng)返回一個(gè)高權(quán)限的Meterpreter會(huì)話。命令如下:
- exploit/windows/local/bypassuac_eventvwr
通過(guò)事件查看器繞過(guò)用戶賬戶控制(Metasploit版):
當(dāng)前名稱:看我如何利用事件查看器繞過(guò)UAC(用戶帳戶控制)
網(wǎng)站URL:http://m.fisionsoft.com.cn/article/dpsjseh.html


咨詢
建站咨詢
