不安全的是用戶而不是系統——再談QQ輸入法漏洞
在Win8的遠程桌面漏洞:利用QQ拼音純凈版實現提權這篇文章里,作者發現一個通過"遠程桌面的輸入法漏洞"進行提權,從而達到控制Winows 8遠程機器的方法。這里面是什么原理呢?
當我們看到遠程桌面顯示登錄界面的時候,因為這個時候并沒有已經登陸的用戶,所以這個階段開啟的所有應用都是以系統權限運行的。 一個以系統權限運行的應用程序在執行相當多的操作時都是不需要進行提權的,而由這個應用開啟的其他應用程序,同樣也以系統權限運行,這就是為什么我們看到該文作者可以直接通過net.exe命令成功添加管理員賬戶的原因(系統賬戶外的用戶賬戶在運行這個命令時都需要提權)。
然而這并非Windows設計上的漏洞,這個入侵之所以能夠成功,是因為這臺Windows 8機器上極其愚蠢的配置。這就好比銀行沒鎖好金庫的大門,然后在失竊后卻怪門鎖不給力……實際上,不安全的不是操作系統,而是用戶本身。下面我們具體來看看究竟是哪些不安全的設置導致機器被入侵。
錯誤1 :使用不安全的第三方輸入法作為默認輸入法
經過測試發現,如果不使用第三方輸入法作為默認輸入法,在登錄界面是無法調出這些第三方輸入法的,只能使用系統本身的輸入法。而自帶的輸入法根本無法調用瀏覽器(或者其他程序)。讓一個不安全的程序在登錄界面運行,這就已經相當危險了,因為這些程序全部會以無需提權的系統權限運行的。假如這個程序不是調用瀏覽器,而直接調用網絡上的惡意程序,那根本就是無解的事情。
錯誤2 :使用了不安全的遠程桌面驗證方式
傳統的遠程桌面連接是先打開rdp會話把登陸界面呈現出來,這就導致了本例中遠程用戶可以直接訪問登陸界面上的程序這個問題。而Network Level Authentication是微軟在Vista之后引入遠程桌面的一個機制,它的原理是先讓用戶在本地驗明正身之后才打開rdp會話,這就避免了在遠程計算機上載入整個登陸界面,同時也可以一定程度地避免了DDoS之類的攻擊。這項設置在配置Win8遠程桌面時默認是啟用的,但不知道為什么本案例里的Win8機器沒有啟用,可能是為了讓較低版本的遠程桌面也能順利連接的緣故罷。
說了這么多,其實都是要提醒下大家,系統本身的安全機制對于一般人來說都是足夠的了,但如果你把這些安全機制都取消了,那么你用Win8還是XP在安全性上還真沒什么區別。有一些半桶水的用戶關掉了UAC,使用著內置管理員,以為自己裝個第三方的流氓安全管家就算是真正安全了,圖樣圖森破了啊。
注:QQ輸入法的漏洞不知道是什么時候被發現的,但已經在最新版本中修正了,現在也沒有新出現其他通過QQ輸入法調出IE瀏覽器的方法。QQ拼音的開發團隊還是挺給力的,不存在沒有漏洞的軟件,能夠盡快地修復漏洞就是安全的軟件。