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