原來Windows7的UAC也有漏洞
時間:2015-05-15 來源:互聯網 瀏覽量:
本文介紹在Windows 7中UAC的漏洞,能夠幫助我們很好地了解Windows 7的一些內部原理。
首先,如果把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文件,然後仔細查看,會發現其中有一段語句:
true
這就是為什麼運行組策略編輯器等工具時,Windows並不會彈出UAC對話框的原因。
小結:嚴格來說,如果某個Windows組件位於UAC的白名單時,係統還是會“彈出”UAC對話框的,我們可以通過Process Monitor監控到其進程consent.exe,隻是該進程並沒有UI顯示在用戶桌麵上而已。