为了保障系统安全或分级限制,许多软件都可以设置密码。但往往由于软件设计者的疏忽或过于自信,因而也留下了很多漏洞,给别有用心者可乘之机……
一、找出藏在注册表中的密码
许多程序都把密码保存在注册表中,即使该软件被卸载后重装,密码依然有效。但密码藏在注册表中就真的安全吗?下面就以金山网镖6中的家长保护功能为例,看一下它是如何被攻破的。
安装金山网镖6后,打开注册表编辑器,利用导出功能备份一份注册表文件。然后在“金山网镖→综合设置→家长保护”中,启用该功能并设置密码。此时再备份一次注册表文件,然后利用具有文件比较功能的16位文本编辑器(如UltraEdit-32)进行对比,就可以很方便地查到注册表中键值的变化。原来金山网镖把密码保存在“HKEY_CURRENT_USER\Software\Classes\CLSID\?xxxx36699-3653-xxxx-9XX9-67Axxxxxx439?”项下,键名为“pw”,不过密码是颠倒次序进行保存的(如原密码为“turepass”,则保存的键值是“ssaperut”)。
提示:不同系统,那个很长的字符串可能不同,但保存位置不会改变。
二、加过密也不安全
在注册表中以明文方式保存密码非常危险,那么在注册表中加密保存就安全吗?我们知道OE不支持邮箱加密,但可以通过标志对账户进行限制。但以上方法,只能糊弄一些“菜鸟”,这里以Win98+IE6.0 SP1为例加以说明。
OE会把标志密码加密后存放在注册表中“HKEY_LOCAL_MACHINE\SoftwareMicrosoft\Protected Storage System Provid
er\用户名\Data\89c39569-6841-11d2-9f59-0000f8xxxxxx\e93df3e0-4391-11d8-8fb3-000aebxxxxxx\IdentitiesPass”键下(如果没有设置标志,则用户名为?Default?),有几个标志就有几个子键(对于不同的计算机,那一长串数字可能会有所不同)。事先把该键值导出备份,然后删掉右边窗口中的“Item Data”子键,再打开OE切换标志就不会出现询问密码对话框了,这时不但可以偷看邮件甚至可以以该用户的名义发送恶意邮件。最后再导回备份的键值,可以说是神不知鬼不觉。
三、不保存在注册表更危险
看到这里你也许会问,如果程序不把密码保存在注册表中是否会安全一些?答案依然令你失望,因为有些程序设计时对用户设定的密码,在调入内存后并没有进行加密处理,这就又留下了一个漏洞。下面以大家经常使用的Windows优化大师为例,让我们来验证一下它的安全性。
为了查找内存中的密码,我们需要有一个十六进制内存编辑软件(推荐使用WinHex,文件大小为393KB,下载地址是http?//www.hanzify.org/index.php?Go=Show??List&ID=4967&Down=1&L=cn)。首先我们打开Windows优化大师,并启用密码保护。然后我们在弹出的密码询问框中输入任意一串字符,比如“textpass”?它会提示“错误,输入的口令不正确,请重新输入”。接下来我们启动WinHex,在“工具”下选择“RAM编辑器”,在“编辑虚拟内存框”中找到Windows优化大师的主程序,打开它的“主要内存”,然后按“Ctrl+F”快捷键调出搜索文本框,查找刚才输入的假密码“textpass”,找到后分析它所在位置前后的字符串就能看到程序用来验证的真实密码。
看了上文你还会认为自己的密码安全吗?你可以采用以上方法对所使用程序密码的安全性进行一下测试,如果发现存在漏洞也可以采取其它措施加以防范。