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