当然,你用这种彩虹表无法破解那种带有非数字字母的字符的密码(比如%&^$#这样的),因为表里根本没有包含这些字符。你可能也注意到了那些passphrase,我也很喜欢它们,由于它们本身的长度问题,passphrase对此项技术是免疫的。但是,话又说回来了,该攻击可以在11分钟内破解所有可能14位数字字母密码组合中的99.9%,这还是用了最小的彩虹表。表越大、越全,攻击破解能力越强。Ophcrack文档描述了它所能使用的彩虹表之间的差异:
字母数字表 10k 388MB 包含所有字母数字混合密码中99.9%的LanManager表。这些都是用大小写字母和数字组成的密码(大约800亿组合)。
由于LanManager哈希表将密码截成每份7个字符的两份,我们就可以用该表破解长度在1到14之间的密码。由于LanManager哈希表也是不区分大小写的,该表中的800亿的组合就相当于12*10的11次方(或者2的83次方)个密码。
字母数字表 5k 720MB 包含所有字母数字组合的密码中99.9%的LanManager表。但是,由于表变成2倍大,如果你的计算机有1GB以上的RAM空间的话,它的破解速度是前一个的4倍。
扩展表 7.5GB 包含最长14个大小写字母、数字以及下列33个特殊字符(!"#$%&'()*+,-./:;<=>?@[\]^_`{|} ~)组成的密码中96%的LanManager表。该表中大约有7兆的组合,5*10的12次方(或者2的92次方)密码。
NT 8.5 GB 我们可以使用该表来破解计算机上的NT哈希表,这是LanManager 哈希表所做不到的。该表包含了用如下字符组成的可能密码组合的90%:
·最高6位字符由大小写字母、数字以及33个特殊字符(同上面列举的一样)
·7 大小写字母及数字
·8 小写字母及数字
该表包含7兆种组合,对应7兆的密码(NT哈希表不存在LanManager哈希表的弱点)。
需要注意的是,所有这些彩虹表都有其特定适用的密码长度和字母组合。太长的密码,或者包含表中没有的字符,那么用彩虹表就无法破解。
不幸的是,由于旧式LanManager哈希表不可饶恕的缺点,Windows服务器特别容易被彩虹表攻击。令我吃惊的是,Windows Server 2003在默认状态下竟然还支持该旧式Lan Manager。我强烈建议大家禁用Lan Manager哈希表,尤其是在那些存储所有用户的域证书的服务器上一定要禁用该哈希表。这将对你的所有Windows98用户造成很大的不便,但是我觉得为了提高安全性,这么做是值得的。
我听说明年发布的Windows Server2008最终会将LanManager哈希表去掉。Windows Vista已经不支持这些过时的哈希表了。在Vista系统中运行OphCrack的话结果请看下列对话框:
所有LM哈希表都是空的。请使用NT哈希表来破解剩余哈希表。我希望我能用NT表,但是我找不到要用8.5GBNT哈希的彩虹表的可靠来源。
Ophcrack工具不是很灵活。它不允许你自己生成彩虹表。因此,你得用Project彩虹破解工具,该工具能用来破解几乎所有字母组合以及任何哈希算法。但是,你得当心,彩虹表攻击最近才盛行的原因是由于电脑的2-4GB的内存最近才达到了让人能接受的水平。我的意思是说它很庞大。
下面是攻击安全性能更高的NT哈希表所需要生成的彩虹表的大小:
Character Set Length Table Size
ABCDEFGHIJKLMNOPQRSTUVWXYZ 14 0.6 GB
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 14 3 GB
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+= 14 24 GB
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ 14 64 GB