本文为 (http://blog.cn-ic.org)原创,如需转载,请注明出处,并保留原文链接。
从前面的两篇文章( , ) 可以看出我对Windows系统权限突破的兴趣。由于目前的压迫尚未xx,所以反抗还在继续。这次讨论的是采用Rainbow Table与Ophcrack结合的另外一种暴力xx机制。这里假设的前提是你已经得到加密hash。如果你还没有办法得到hash,请参考上面提到的两 篇文章。
说实话,google上关于rainbow tables的相关说明并不多。相信最全的解释可以通过 了解。但是wiki的,英文的,除非有特别必要的需求之前我还没有打算细细研究。但是据我目前的了解,作如下解释,不确切之处还请指出:
Rainbow tables是一些表,它可以是指定字符的各种组合以及这些组合经过MD5或LM或NTLM等加密手段加密后的对照表。所以可想而知,这些表是相当庞大 的。当你得到这些表后,xxhash密码实际上相当于字典xx了,速度相对普通的暴力xx会大大增加。下面让我告诉你xx的基于Rainbow tables的开源xx软件 的帮助文档里面描述的表有多大吧:
针对LM密码的Rainbow Tables:
1.包含所有字母和数字1-7位组合的Table分成有两个 Alphanumeric SSTIC04-10k(388MB)和Alphanumeric SSTIC04-5k(720MB),从我查得的资料表明这两个Table在密码组合个数上是一致的。但是Alphanumeric SSTIC04-5k文件更大一倍,如果有1G以上的内存的话,xx速度快4四倍(为什么会有这种诡异的差异,没有查到)。他们包含800亿个hash, 由于LM加密对大小写不敏感,所以能xx2^83个1-14位的LM密码。
下载地址:
2.LM延伸表,包含所有字母+数字+33个特殊字符(!”#$%&’()*+,-./:;<=>?@[\]^_`{|} ~)的96%的1-7位组合包含7万亿个hash,能xx2^92个LM密码。大小7.5G
获取方式:目前没有官方下载,可以通过ophcrack的网站购买DVD,价格$240,地址:
另外我找到 的bt下载,号称更大,33.8G( ),或者下载软件自己生成(生成方式见本文后面)。
针对NTLM密码的Rainbow Tables:
1.NT hash table: 包含1-6位的字母+数字+33个特殊字符组合,7位字母+数字组合,8位小写字母+字符组合;包含7万亿个hash,能xx7万亿个密码。大小8.5G
获取方式: 目前没有官方下载,可以通过ophcrack的网站购买DVD,大小就是上面描述的8.5G,价格$240,地址:
同样可以上 看看(地址: ),有很多选择,{zd0}的1-9位小写字母+数字组合有123G,小心你的磁盘。
从上面的内容我们可以看到Rainbow tables都相当庞大。而实际上这些东西从某种意义上来说都只是字典文件而已。当然它跟传统的字典是有区别的,它是一个庞大的字符加密hash与字符加 密前的对照表,使用相应xx工具在xx过程中进行的只是对比的工作,省却了将字符加密计算的过程,从而大大节省了时间。
如果上面提到的Rainbow Tables的获取有困难,或者不满意他们的组合方式,也可以自己生成,这里有一个开源工具:
RainbowCracK: 作者可能是个叫Lei Shuang 的国人。
目前{zx1}版本:rainbowcrack-1.2
提供Windows二进制码( )和可用于所有平台(Windows/Linux/Unix等)的源码( )
提供自定义组合字符,
提供lm,md5,sha1以及自定义组合加密方式。如果加一个补丁( )还提供NTLM,MD2, MD4 and RIPEMD160加密算法
如果你打算使用工具自己生成的大Table的话,你需要做好心理准备,需要强劲的CPU,大的磁盘可用空间,以及大量的时间(使用单台PC以年为单位的时间)。所以该工具的主页上也有一些Table提供下载。
讲了半天,上面提到的还只是Rainbow tables的各种表,至于如何使用这些表,还需要一个工具。这里推荐大名鼎鼎的Ophcrack:
Ophcrack主页:
{zx1}版本: ,提供Windows二进制文件包( )和可用于所有平台(Windows/Linux/Unix等)的源码( )
使用该软件xx需要两个条件
1.需要另外提供Rainbow tables,就是上面提到的
2.要求已经得到密码的hash,方法可参考 ,所以主页还提供了 和 。
另外Ophcrack还提供一个Live CD,{zx1}版本1.2.2,下载地址:
ophcrack-livecd 基于一个叫SLAX6的小Linux 系统,整个系统包括SLAX6,ophcrack for linux 以及一些小的字母+数字的Rainbow tables。大小477M
所以只要可以通过光盘启动,无需安装就可以开始xx了。
关于Windows密码的LM加密和NTLM加密:
LM又叫LanManage,它是Windows古老而脆弱的密码加密方式。任何大于7位的密码都被分成以7为单位的几个部分,{zh1}不足7位的密码 以0补足7位,然后通过加密运算最终组合成一个hash。所以实际上通过xx软件分解后,LM密码xx的上限就是7位,这使得以今天的PC运算速度在短时 间内暴力xxLM加密的密码成为可能(上限是两周),如果使用Rainbow tables, 那么这个时间数量级可能被下降到小时。而这种脆弱的加密方式在Windows2003还在使用。当然我们也可以通过设定注册表参数禁用LM加密,代之以 NTLM方式加密(默认生成LM以及NTLM两种方式的加密hash).方法如下:
1. 打开注册表编辑器;
2. 定位到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa;
3. 选择菜单“编辑”,“添加数值”;
4. 数值名称中输入:LMCompatibilityLevel ,数值类型为:DWORD,单击 确定;
5. 双击新建的数据,并根据具体情况设置以下值:
0 – 发送 LM 和 NTLM响应;
1 – 发送 LM 和 NTLM响应;
2 – 仅发送 NTLM响应;
3 – 仅发送 NTLMv2响应;(Windows 2000有效)
4 – 仅发送 NTLMv2响应,拒绝 LM;(Windows 2000有效)
5 – 仅发送 NTLMv2响应,拒绝 LM 和 NTLM;(Windows 2000有效)
6. 关闭注册表编辑器;
7. 重新启动机器
在Windows NT SP3引入了NTLM加密以及Windows2000以后逐步引入的NTLM 2.0加密解决了这个问题,让我们在短期内xx长度超过8位的密码成为一种运气。但是LM加密方式默认还是开启的,除非通过上面的方法刻意关闭它。
发表于 @ 2009年07月04日 09:38:00 | |
|