S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

突破[某著名IM软件]的nprotect键盘加密技术 
近段时间,[国内某著名IT公司]公司一直在吹牛他们如何保护[某著名IM软件]用户的帐号和密码安全,Nprotect键盘加密技术多么强大,由于鄙人近期要做一个密码安全保护控件,就仔细分析了[某著名IM软件]的密码保护功能框,结果发现[某著名IM软件]漏洞较多,安全措施都能获得突破,下面一一道来:

鄙人声名:分析[某著名IM软件]的目的,不是盗取[某著名IM软件]帐号,而是提高[某著名IM软件]的安全,促进[某著名IM软件]的发展。信息安全需要很多事情要做,本人只是贡献点微薄之力。信息安全需要多一份实在,少一份浮躁,多研究点安全问题,少想点如何盗窃,这样我们的信息安全就会更好。

一、Nprotect键盘加密技术

[某著名IM软件的东家]使用的Nprotect键盘加密技术来自一家韩国的公司,该技术已经在很多地方都使用,包括银行、证券、保险、游戏、信用卡、电子政务和电子商务等,用户比较多,使用面比较广。

nProtect键盘加密保护系统是一种针对个人用户信息安全的产品,它用来保护用户的信息不被黑客的键盘记录程序所获取。通过键盘加密技术即使用户的PC中有木马程序,黑客也无法正确读取输入的键盘信息,从而根本上防止了互联网用户在进行网上交易、网络游戏以及使用电子银行时可能出现的帐号被盗的情况。
nProtect键盘加密保护系统功能如下:
阻止黑客工具读取键盘信息
自动检测键盘信息记录黑客程序
对于每一次键盘敲击,绿色卫士键盘保护产品可以实时的进行加密和解密(采用国际标准的RSA 128位算法)
支持不同类型的键盘(ps/2,usb键盘 101 / 103 / 106 / 109,等等)
二、[某著名IM软件]采用的安全措施

当前[某著名IM软件](包括[某著名IM软件] BETA1、BETA2、正式版、正式版(SP1)、正式版(SP2))所采取的措施大致包括:

1、采取Nprotect技术保护帐号密码

A、屏蔽密码窗口获取内容消息

B、屏蔽密码窗口设置内容消息

C、屏蔽密码窗口光标位置消息

D、屏蔽ACTIVEX键盘钩子

E、屏蔽键盘状态消息

F、屏蔽全局键盘钩子

G、屏蔽键盘驱动

H、发送键盘扰乱信息

I、键盘输入内容加密

2、采取虚拟键盘

A、屏蔽虚拟键盘按钮窗口

B、虚拟键盘按钮窗口随意变动

3、[某著名IM软件]采取的相关措施

A、屏蔽登录按钮窗口

B、系统漏洞扫描

C、盗号木马扫描

D、发出安全警告

E、其他安全功能

三、[某著名IM软件]目前能够阻止绝大多少键盘记录器

1、nProtect技术本身就能够防止一般的键盘记录器,如ACTIVEX键盘钩子、全局键盘钩子和键盘驱动

2、通过键盘光标的过滤,能够防止目前绝大多数键盘钩子,使键盘输入的内容不知道插入到什么位置

3、通过与虚拟键盘的组合,几乎是当前绝大多少键盘记录器的终结者

四、当前[某著名IM软件]用户一般的做法

1、在桌面机器上安装防火墙、防病毒软件

2、无法杜绝和检测新出现的病毒、盗号木马

3、故意输入错误密码,防止键盘记录器

4、故意打乱密码输入次序,防止键盘记录器

5、申请[某著名IM软件]密码保护

6、使用复杂密码

7、密码长度保证

8、经常更换密码

9、不上乱七八糟的网站,以免被植木马

10、密码修改手机短信提示

11、等等

以上所有的做法,都滞后,没有就[某著名IM软件]帐号安全这个根本上考虑和解决问题,只能是依靠民众的智慧,将[某著名IM软件]盗号损失降低到最低,下面就来分析当前[某著名IM软件]存在的安全问题。

五、[某著名IM软件]破解全过程

表面上[某著名IM软件]使用了很多安全措施,足以保障[某著名IM软件]登录密码安全。但仔细分析下,你会发现,还存在很多问题,还不足以防止密码被盗。

第一步、我写了一个API全局钩子

第二步、我加载了一个窗口钩子,能够获取[某著名IM软件]窗口句柄和内容

第三步、我加载了一个列举子窗口函数,能够获取[某著名IM软件]帐号窗口句柄和内容,能够获取[某著名IM软件]密码窗口句柄和类型

,但无法[某著名IM软件]密码窗口内容,总是返回一个固定的标题,估计[某著名IM软件]做了安全防范

第四步、我加载了一个键盘钩子,能够获得[某著名IM软件]帐号窗口输入,但获取不到[某著名IM软件]密码窗口输入内容

第五步、我写了一个键盘状态钩子,能够获取键盘信息,但发现有乱码,估计[某著名IM软件]做了一些工作

第六步、我写了一个键盘驱动,发现键盘输入内容经过加密

第七步、我写了一个I/O读写驱动,发现能够拦截[某著名IM软件]密码窗口输入

第八步、我写了一个键盘光标程序,发现[某著名IM软件]密码窗口总是返回错误,估计[某著名IM软件]做了相关安全

第九步、我改变一下思路,不从获取[某著名IM软件]密码窗口获取光标消息,结果测试成功

第十步、开始考虑破解[某著名IM软件]虚拟键盘,因为键盘输入已经全部搞定

第十一步、我用窗口钩子,能够截获[某著名IM软件]虚拟键盘窗口,但无法获得虚拟键盘按钮

第十二步、我试着使用金山词霸进行屏幕取词,结果能够获得[某著名IM软件]虚拟键盘内容

第十三步、我写了一个屏幕取词程序,成功实现虚拟键盘内容截获

第十四步、为了截获虚拟键盘点击时间,我在API HOOK的基础上,加载了一个鼠标钩子,专门拦截点击鼠标点击事件

第十五步、程序测试,发现些小BUG,如删除(delete/backspace)、随意插入、组合键等,但基本大功告成,整个[某著名IM软件]的nProtect技术保护就让我这样被成功破解。

六、[某著名IM软件]破解程序能够实现

1、能够实现键盘钩子

2、能够实现鼠标钩子

3、能够实现窗口钩子

4、能够实现[某著名IM软件]窗口监控

5、能够实现键盘记录功能

6、能够突破nProtect加密保护

7、能够实现键盘光标监控

8、能够实现字符大小写

9、能够实现特殊字符

10、能够实现组合键输入

11、能够实现字符剪切

12、能够实现字符粘贴

13、能够实现字符删除

14、能够实现字符随意插入

15、能够记录虚拟键盘输入内容

七、[某著名IM软件]存在的主要问题

现在来回过头来总结下[某著名IM软件]中存在的问题,大致如下:

1、帐号窗口没有任何保护,使窗口钩子能够轻易获得其句柄和内容

2、密码窗口聚焦时启动Nprotect保护,失去焦点时就存在保护真空,容易被人利用

3、键盘光标位置没有进行保护,只对获取密码窗口的键盘位置消息进行了过滤,还有其他的方法可以获取

4、[某著名IM软件]界面没有伪装,包括界面的类型和界面标题,都可以轻易获取

5、没有防止窗口钩子,包括窗口创建、出现、消失和销毁,致使其他程序就可以轻易进行监控

6、键盘加密驱动无法拦截I/O读写驱动,致使键盘输入内容轻易被他人截取

7、可以使用屏幕取词技术获得虚拟键盘上的按钮单词,从而可以突破虚拟键盘的保护

8、没有屏蔽鼠标钩子,使其他程序能够截获鼠标点击事件,从而拦截虚拟键盘留下致命漏洞

9、没有屏蔽屏幕截屏,使截屏软件能够获得虚拟键盘的输入

八、总结

虽然[某著名IM软件]在吹牛它现在的nProtect技术多么牛B,但事实不是如此,经过我半天的时间就轻易破解,当然还有很多其他的方法可以破解,我没有去试,应该问题不大,包括注入、假窗口、假界面和假控件等,当然还可以利用窗口钩子来控制其加密驱动的启动和停止,这些都不是我想要的,我不是来盗号,而是研究密码输入框的安全问题,在此也非常逼视那些盗号者。

其实,在此也非常感谢[某著名IM软件],能够提供给我这么多思路,让我的密码框安全控件能够更加成熟。虽然[某著名IM软件]存在问题,但相比与MSN和网银来说,应该是安全得多,也请[某著名IM软件的东家]赶快把漏洞尽快打上,避免给客户造成帐号和密码丢失,带来不必要的麻烦。

当然,目前[某著名IM软件]用户也不用担心[某著名IM软件]号码被盗,毕竟现在能够突破Nprotect键盘加密技术的木马还不多,只要今后小心和组合使用里面的功能,被盗的机会很少。


 

 

Feedback

# re: 突破[某著名IM软件]的nprotect键盘加密技术   回复  更多评论   

2010-01-04 16:00 by 代李
文中2次出现 某著名IM软件的东家的名字

# re: 突破[某著名IM软件]的nprotect键盘加密技术   回复  更多评论   

2010-01-04 19:59 by XX
忒牛B了,收徒弟不?

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理