驚爆!原來Windows 7的UAC也有漏洞
首先,如果把Windows 7自帶的某個組件(例如Notepad)復(fù)制到其他路徑,其數(shù)字簽名實際上是不會變的。這可以用SigCheck命令進行檢測:
盡管Notepad已經(jīng)更改了路徑,但是其數(shù)字簽名是不會變化的。其Publisher還是顯示“Microsoft Corporation”。但是為什么UAC對話框上顯示其為未知發(fā)布方呢?
UAC和路徑有關(guān)?
更具體的來猜測,應(yīng)該是UAC在顯示對話框時,會對其路徑進行判斷,如果路徑已經(jīng)改變,則不管數(shù)字簽名是否有變,一律彈出橙黃色報警對話框,以便提醒用戶,在提升權(quán)限時要注意!
其實這個特性在Windows Vista里也存在。
另外,對于某些特殊的Windows組件,例如IE瀏覽器,不管是否移動路徑,如果試圖用管理員權(quán)限運行的話,系統(tǒng)也一律彈出橙黃色報警的UAC對話框,顯示發(fā)布方為未知,以提醒我們注意,因為IE瀏覽器屬于高危險的組件,如果用完全管理員權(quán)限運行,會有很大的風(fēng)險。
就目前而言,嚴(yán)格來說,并非所有的Windows組件都可以默認(rèn)在Windows 7里自動提升權(quán)限,例如Notepad本身就不能自動提升權(quán)限(哪怕沒有更改路徑),也會彈出UAC對話框(但是能夠正確顯示發(fā)布方為微軟公司),其他的例子還有注冊表編輯器等。
哪些Windows自帶組件才能自動提升權(quán)限?
根據(jù)Rafael Rivera的說法,是由這些組件內(nèi)嵌的程序清單(manifest)所控制的,可以做一個實驗:
我們知道,如果在Windows 7里運行服務(wù)、組策略、磁盤管理等管理單元時,并不會彈出UAC對話框,這說明其主進程mmc.exe位于UAC的白名單上。
請用記事本或者別的工具打開MMC.exe文件,然后仔細(xì)查看,會發(fā)現(xiàn)其中有一段語句:
<autoElevate>true</autoElevate>
這就是為什么運行組策略編輯器等工具時,Windows并不會彈出UAC對話框的原因。
小結(jié):嚴(yán)格來說,如果某個Windows組件位于UAC的白名單時,系統(tǒng)還是會“彈出”UAC對話框的,我們可以通過Process Monitor監(jiān)控到其進程consent.exe,只是該進程并沒有UI顯示在用戶桌面上而已。
相關(guān)文章:
