突破QQ2009的nprotect鍵盤(pán)加密技術(shù) 收藏
近段時(shí)間,騰迅公司一直在吹牛他們?nèi)绾伪Wo(hù)QQ用戶(hù)的帳號(hào)和密碼安全,Nprotect鍵盤(pán)加密技術(shù)多么強(qiáng)大,由于鄙人近期要做一個(gè)密碼安全保護(hù)控件,就仔細(xì)分析了QQ2009的密碼保護(hù)功能框,結(jié)果發(fā)現(xiàn)QQ2009漏洞較多,安全措施都能獲得突破,下面一一道來(lái):
鄙人聲名:分析QQ2009的目的,不是盜取QQ帳號(hào),而是提高QQ的安全,促進(jìn)QQ的發(fā)展。信息安全需要很多事情要做,本人只是貢獻(xiàn)點(diǎn)微薄之力。信息安全需要多一份實(shí)在,少一份浮躁,多研究點(diǎn)安全問(wèn)題,少想點(diǎn)如何盜竊,這樣我們的信息安全就會(huì)更好。
一、Nprotect鍵盤(pán)加密技術(shù)
騰訊使用的Nprotect鍵盤(pán)加密技術(shù)來(lái)自一家韓國(guó)的公司,該技術(shù)已經(jīng)在很多地方都使用,包括銀行、證券、保險(xiǎn)、游戲、信用卡、電子政務(wù)和電子商務(wù)等,用戶(hù)比較多,使用面比較廣。
nProtect鍵盤(pán)加密保護(hù)系統(tǒng)是一種針對(duì)個(gè)人用戶(hù)信息安全的產(chǎn)品,它用來(lái)保護(hù)用戶(hù)的信息不被黑客的鍵盤(pán)記錄程序所獲取。通過(guò)鍵盤(pán)加密技術(shù)即使用戶(hù)的PC中有木馬程序,黑客也無(wú)法正確讀取輸入的鍵盤(pán)信息,從而根本上防止了互聯(lián)網(wǎng)用戶(hù)在進(jìn)行網(wǎng)上交易、網(wǎng)絡(luò)游戲以及使用電子銀行時(shí)可能出現(xiàn)的帳號(hào)被盜的情況。
nProtect鍵盤(pán)加密保護(hù)系統(tǒng)功能如下:
阻止黑客工具讀取鍵盤(pán)信息
自動(dòng)檢測(cè)鍵盤(pán)信息記錄黑客程序
對(duì)于每一次鍵盤(pán)敲擊,綠色衛(wèi)士鍵盤(pán)保護(hù)產(chǎn)品可以實(shí)時(shí)的進(jìn)行加密和解密(采用國(guó)際標(biāo)準(zhǔn)的RSA 128位算法)
支持不同類(lèi)型的鍵盤(pán)(ps/2,usb鍵盤(pán) 101 / 103 / 106 / 109,等等)
二、QQ2009采用的安全措施
當(dāng)前QQ2009(包括QQ2009 BETA1、BETA2、正式版、正式版(SP1)、正式版(SP2))所采取的措施大致包括:
1、采取Nprotect技術(shù)保護(hù)帳號(hào)密碼
A、屏蔽密碼窗口獲取內(nèi)容消息
B、屏蔽密碼窗口設(shè)置內(nèi)容消息
C、屏蔽密碼窗口光標(biāo)位置消息
D、屏蔽ACTIVEX鍵盤(pán)鉤子
E、屏蔽鍵盤(pán)狀態(tài)消息
F、屏蔽全局鍵盤(pán)鉤子
G、屏蔽鍵盤(pán)驅(qū)動(dòng)
H、發(fā)送鍵盤(pán)擾亂信息
I、鍵盤(pán)輸入內(nèi)容加密
2、采取虛擬鍵盤(pán)
A、屏蔽虛擬鍵盤(pán)按鈕窗口
B、虛擬鍵盤(pán)按鈕窗口隨意變動(dòng)
3、QQ采取的相關(guān)措施
A、屏蔽登錄按鈕窗口
B、系統(tǒng)漏洞掃描
C、盜號(hào)木馬掃描
D、發(fā)出安全警告
E、其他安全功能
三、QQ2009目前能夠阻止絕大多少鍵盤(pán)記錄器
1、nProtect技術(shù)本身就能夠防止一般的鍵盤(pán)記錄器,如ACTIVEX鍵盤(pán)鉤子、全局鍵盤(pán)鉤子和鍵盤(pán)驅(qū)動(dòng)
2、通過(guò)鍵盤(pán)光標(biāo)的過(guò)濾,能夠防止目前絕大多數(shù)鍵盤(pán)鉤子,使鍵盤(pán)輸入的內(nèi)容不知道插入到什么位置
3、通過(guò)與虛擬鍵盤(pán)的組合,幾乎是當(dāng)前絕大多少鍵盤(pán)記錄器的終結(jié)者
四、當(dāng)前QQ用戶(hù)一般的做法
1、在桌面機(jī)器上安裝防火墻、防病毒軟件
2、無(wú)法杜絕和檢測(cè)新出現(xiàn)的病毒、盜號(hào)木馬
3、故意輸入錯(cuò)誤密碼,防止鍵盤(pán)記錄器
4、故意打亂密碼輸入次序,防止鍵盤(pán)記錄器
5、申請(qǐng)QQ密碼保護(hù)
6、使用復(fù)雜密碼
7、密碼長(zhǎng)度保證
8、經(jīng)常更換密碼
9、不上亂七八糟的網(wǎng)站,以免被植木馬
10、密碼修改手機(jī)短信提示
11、等等
以上所有的做法,都滯后,沒(méi)有就QQ2009帳號(hào)安全這個(gè)根本上考慮和解決問(wèn)題,只能是依靠民眾的智慧,將QQ盜號(hào)損失降低到最低,下面就來(lái)分析當(dāng)前QQ2009存在的安全問(wèn)題。
五、QQ2009破解全過(guò)程
表面上QQ2009使用了很多安全措施,足以保障QQ登錄密碼安全。但仔細(xì)分析下,你會(huì)發(fā)現(xiàn),還存在很多問(wèn)題,還不足以防止密碼被盜。
第一步、我寫(xiě)了一個(gè)API全局鉤子
第二步、我加載了一個(gè)窗口鉤子,能夠獲取QQ窗口句柄和內(nèi)容
第三步、我加載了一個(gè)列舉子窗口函數(shù),能夠獲取QQ帳號(hào)窗口句柄和內(nèi)容,能夠獲取QQ密碼窗口句柄和類(lèi)型
,但無(wú)法QQ密碼窗口內(nèi)容,總是返回一個(gè)固定的標(biāo)題,估計(jì)QQ做了安全防范
第四步、我加載了一個(gè)鍵盤(pán)鉤子,能夠獲得QQ帳號(hào)窗口輸入,但獲取不到QQ密碼窗口輸入內(nèi)容
第五步、我寫(xiě)了一個(gè)鍵盤(pán)狀態(tài)鉤子,能夠獲取鍵盤(pán)信息,但發(fā)現(xiàn)有亂碼,估計(jì)QQ做了一些工作
第六步、我寫(xiě)了一個(gè)鍵盤(pán)驅(qū)動(dòng),發(fā)現(xiàn)鍵盤(pán)輸入內(nèi)容經(jīng)過(guò)加密
第七步、我寫(xiě)了一個(gè)I/O讀寫(xiě)驅(qū)動(dòng),發(fā)現(xiàn)能夠攔截QQ密碼窗口輸入
第八步、我寫(xiě)了一個(gè)鍵盤(pán)光標(biāo)程序,發(fā)現(xiàn)QQ密碼窗口總是返回錯(cuò)誤,估計(jì)QQ做了相關(guān)安全
第九步、我改變一下思路,不從獲取QQ密碼窗口獲取光標(biāo)消息,結(jié)果測(cè)試成功
第十步、開(kāi)始考慮破解QQ2009虛擬鍵盤(pán),因?yàn)殒I盤(pán)輸入已經(jīng)全部搞定
第十一步、我用窗口鉤子,能夠截獲QQ虛擬鍵盤(pán)窗口,但無(wú)法獲得虛擬鍵盤(pán)按鈕
第十二步、我試著使用金山詞霸進(jìn)行屏幕取詞,結(jié)果能夠獲得QQ虛擬鍵盤(pán)內(nèi)容
第十三步、我寫(xiě)了一個(gè)屏幕取詞程序,成功實(shí)現(xiàn)虛擬鍵盤(pán)內(nèi)容截獲
第十四步、為了截獲虛擬鍵盤(pán)點(diǎn)擊時(shí)間,我在API HOOK的基礎(chǔ)上,加載了一個(gè)鼠標(biāo)鉤子,專(zhuān)門(mén)攔截點(diǎn)擊鼠標(biāo)點(diǎn)擊事件
第十五步、程序測(cè)試,發(fā)現(xiàn)些小BUG,如刪除(delete/backspace)、隨意插入、組合鍵等,但基本大功告成,整個(gè)QQ2009的nProtect技術(shù)保護(hù)就讓我這樣被成功破解。
六、QQ2009破解程序能夠?qū)崿F(xiàn)
1、能夠?qū)崿F(xiàn)鍵盤(pán)鉤子
2、能夠?qū)崿F(xiàn)鼠標(biāo)鉤子
3、能夠?qū)崿F(xiàn)窗口鉤子
4、能夠?qū)崿F(xiàn)QQ窗口監(jiān)控
5、能夠?qū)崿F(xiàn)鍵盤(pán)記錄功能
6、能夠突破nProtect加密保護(hù)
7、能夠?qū)崿F(xiàn)鍵盤(pán)光標(biāo)監(jiān)控
8、能夠?qū)崿F(xiàn)字符大小寫(xiě)
9、能夠?qū)崿F(xiàn)特殊字符
10、能夠?qū)崿F(xiàn)組合鍵輸入
11、能夠?qū)崿F(xiàn)字符剪切
12、能夠?qū)崿F(xiàn)字符粘貼
13、能夠?qū)崿F(xiàn)字符刪除
14、能夠?qū)崿F(xiàn)字符隨意插入
15、能夠記錄虛擬鍵盤(pán)輸入內(nèi)容
七、QQ2009存在的主要問(wèn)題
現(xiàn)在來(lái)回過(guò)頭來(lái)總結(jié)下QQ2009中存在的問(wèn)題,大致如下:
1、帳號(hào)窗口沒(méi)有任何保護(hù),使窗口鉤子能夠輕易獲得其句柄和內(nèi)容
2、密碼窗口聚焦時(shí)啟動(dòng)Nprotect保護(hù),失去焦點(diǎn)時(shí)就存在保護(hù)真空,容易被人利用
3、鍵盤(pán)光標(biāo)位置沒(méi)有進(jìn)行保護(hù),只對(duì)獲取密碼窗口的鍵盤(pán)位置消息進(jìn)行了過(guò)濾,還有其他的方法可以獲取
4、QQ界面沒(méi)有偽裝,包括界面的類(lèi)型和界面標(biāo)題,都可以輕易獲取
5、沒(méi)有防止窗口鉤子,包括窗口創(chuàng)建、出現(xiàn)、消失和銷(xiāo)毀,致使其他程序就可以輕易進(jìn)行監(jiān)控
6、鍵盤(pán)加密驅(qū)動(dòng)無(wú)法攔截I/O讀寫(xiě)驅(qū)動(dòng),致使鍵盤(pán)輸入內(nèi)容輕易被他人截取
7、可以使用屏幕取詞技術(shù)獲得虛擬鍵盤(pán)上的按鈕單詞,從而可以突破虛擬鍵盤(pán)的保護(hù)
8、沒(méi)有屏蔽鼠標(biāo)鉤子,使其他程序能夠截獲鼠標(biāo)點(diǎn)擊事件,從而攔截虛擬鍵盤(pán)留下致命漏洞
9、沒(méi)有屏蔽屏幕截屏,使截屏軟件能夠獲得虛擬鍵盤(pán)的輸入
八、總結(jié)
雖然QQ在吹牛它現(xiàn)在的nProtect技術(shù)多么牛B,但事實(shí)不是如此,經(jīng)過(guò)我半天的時(shí)間就輕易破解,當(dāng)然還有很多其他的方法可以破解,我沒(méi)有去試,應(yīng)該問(wèn)題不大,包括注入、假窗口、假界面和假控件等,當(dāng)然還可以利用窗口鉤子來(lái)控制其加密驅(qū)動(dòng)的啟動(dòng)和停止,這些都不是我想要的,我不是來(lái)盜號(hào),而是研究密碼輸入框的安全問(wèn)題,在此也非常逼視那些盜號(hào)者。
其實(shí),在此也非常感謝QQ2009,能夠提供給我這么多思路,讓我的密碼框安全控件能夠更加成熟。雖然QQ2009存在問(wèn)題,但相比與MSN和網(wǎng)銀來(lái)說(shuō),應(yīng)該是安全得多,也請(qǐng)騰訊趕快把漏洞盡快打上,避免給客戶(hù)造成帳號(hào)和密碼丟失,帶來(lái)不必要的麻煩。
當(dāng)然,目前QQ用戶(hù)也不用擔(dān)心QQ號(hào)碼被盜,畢竟現(xiàn)在能夠突破Nprotect鍵盤(pán)加密技術(shù)的木馬還不多,只要今后小心和組合使用里面的功能,被盜的機(jī)會(huì)很少。
本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/elephantzhang/archive/2009/07/30/4393759.aspx