惊爆!原来Windows 7的UAC也有漏洞
2009-08-12 08:17:07 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁诡垎鍐f寖闂佺娅曢幑鍥灳閺冨牆绀冩い蹇庣娴滈箖鏌ㄥ┑鍡欏嚬缂併劎绮妵鍕箳鐎n亞浠鹃梺闈涙搐鐎氫即鐛崶顒夋晬婵絾瀵ч幑鍥蓟閻斿摜鐟归柛顭戝枛椤牆顪冮妶搴′簼缂侇喗鎸搁悾鐑藉础閻愬秵妫冮崺鈧い鎺戝瀹撲礁鈹戦悩鎻掝伀缁惧彞绮欓弻娑氫沪閹规劕顥濋梺閫炲苯澧伴柟铏崌閿濈偛鈹戠€n€晠鏌嶆潪鎷屽厡闁汇倕鎳愮槐鎾存媴閸撴彃鍓卞銈嗗灦閻熲晛鐣烽妷褉鍋撻敐搴℃灍闁绘挻娲橀妵鍕箛闂堟稐绨肩紓浣藉煐濮樸劎妲愰幘璇茬闁冲搫鍊婚ˇ鏉库攽椤旂》宸ユい顓炲槻閻g兘骞掗幋鏃€鐎婚梺瑙勬儗閸樺€熲叺婵犵數濮烽弫鍛婃叏椤撱垹纾婚柟鍓х帛閳锋垶銇勯幒鍡椾壕缂備礁顦遍弫濠氱嵁閸℃稒鍊烽柛婵嗗椤旀劕鈹戦悜鍥╃У闁告挻鐟︽穱濠囨嚃閳哄啰锛滈梺褰掑亰閸欏骸鈻撳⿰鍫熺厸閻忕偟纭堕崑鎾诲箛娴e憡鍊梺纭呭亹鐞涖儵鍩€椤掑啫鐨洪柡浣圭墪閳规垿鎮欓弶鎴犱桓闂佸湱枪閹芥粎鍒掗弮鍫熷仺缂佸顕抽敃鍌涚厱闁哄洢鍔岄悘鐘绘煕閹般劌浜惧┑锛勫亼閸婃牠宕濋敃鈧…鍧楀焵椤掍胶绠剧€光偓婵犱線鍋楀┑顔硷龚濞咃絿妲愰幒鎳崇喓鎷犻懠鑸垫毐闂傚倷鑳舵灙婵炲鍏樺顐ゆ嫚瀹割喖娈ㄦ繝鐢靛У绾板秹寮查幓鎺濈唵閻犺櫣灏ㄥ銉р偓瑙勬尭濡繂顫忛搹鍦<婵☆垰鎼~宥囩磽娴i鍔嶉柟绋垮暱閻g兘骞嬮敃鈧粻濠氭偣閸パ冪骇鐎规挸绉撮—鍐Χ閸℃ê闉嶇紓浣割儐閸ㄥ墎绮嬪澶嬪€锋い鎺嶇瀵灝鈹戦埥鍡楃仯闁告鍕洸濡わ絽鍟崐鍨叏濡厧浜鹃悗姘炬嫹

首先,如果把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显示在用户桌面上而已。
更多精彩
赞助商链接