夜雨微寒吧 关注:553贴子:7,136
  • 11回复贴,共1

Windows系统密码破解全攻略。

只看楼主收藏回复

一楼给无敌的Rainbow Tables


IP属地:四川1楼2011-11-14 19:41回复
    转帖注明出处:
    题目:Windows系统密码破解全攻略
    作者:hackest [H.S.T.]
    来源:hackest's blog
    此文章已发表在《黑客X档案》2009年第6期杂志上


    IP属地:四川2楼2011-11-14 19:43
    回复
      背景
      要破解一个程序的密码,要先了解它的一些背景知识。
      先来简单说一下Windows系统密码的加密算法。早期SMB协议在网络上传输明文口令。后来出现"LAN Manager Challenge/Response"验证机制,简称LM,它是如此简单以至很容易被破解。微软提出了WindowsNT挑战/响应验证机制,称之为NTLM。现在已经有了更新的NTLMv2以及Kerberos验证体系。Windows加密过的密码口令,我们称之为hash(中文:哈希),Windows的系统密码hash默认情况下一般由两部分组成:第一部分是LM-hash,第二部分是NTLM-hash。以下内容摘选自安全焦点:
      


      IP属地:四川4楼2011-11-14 19:46
      回复

        --------------------------------------引文开始----------------------------------------------
        一、如何从明文口令生成LM-Hash?
        1、假设明文口令是"Welcome",首先全部转换成大写WELCOME,再做如下变换:
        "WELCOME" -> 57454C434F4D4500000000000000
        先把WELCOME转换成十六进制形式,在明文口令不足14字节的情况下,后面添加0x00补足14字节。有些书上介绍添加空格(0x20)补足14字节,这是错误的,我不清楚是原作者写错了,还是译者的问题。
        2、然后切割成两组7字节的数据,分别经str_to_key()函数(代码已附光盘)处理得到两组8字节数据:
        57454C434F4D45 -str_to_key()-> 56A25288347A348A
        00000000000000 -str_to_key()-> 0000000000000000
        3、这两组8字节数据将做为DESKEY对魔术字符串"KGS!@#$%"进行标准DES加密(代码已附光盘):
        "KGS!@#$%" -> 4B47532140232425
        56A25288347A348A -对4B47532140232425进行标准DES加密-> C23413A8A1E7665F
        0000000000000000 -对4B47532140232425进行标准DES加密-> AAD3B435B51404EE
        4、将加密后的这两组数据简单拼接,就得到了最后的LM-Hash
        Welcome的LM-Hash: C23413A8A1E7665FAAD3B435B51404EE。
        显然,由于明文口令一开始就全部转换成大写,导致多个明文口令对应一个LM-Hash。反过来,在穷举破解LM-Hash时,得到的有可能不是原始口令,因为不可能确定大小写。仔细观察前述SMB身份验证过程,即使这里得到的不是原始口令(大小写有差别),同样可以通过SMB身份验证。这种转换成大写的行为减小了穷举破解难度。
        另一个弱点,当明文口令小于8字节时,LM-Hash后8字节的计算过程总是这样的:
        00000000000000 -str_to_key()-> 0000000000000000
        对4B47532140232425进行标准DES加密-> AAD3B435B51404EE
        这也将减小穷举破解难度。
        IBM设计了这个LM-Hash算法,魔术字符串"KGS!@#$%"的意义无从考证。这个算法称之为"哈希"不怎么妥当,由于是标准DES加密,完全是可逆的。当然,由于要穷举的是DESKEY本身,与传统所说的可逆有区别。
        


        IP属地:四川5楼2011-11-14 19:47
        回复
          二、如何从明文口令生成NTLM-Hash?
          IBM设计的LM-Hash算法存在几个弱点,微软在保持向后兼容性的同时提出了自己的挑战响应机制,所以,NTLM-Hash应运而生。
          1、假设明文口令是"123456",首先转换成Unicode字符串,与LM-Hash算法不同,这次不需要添加0x00补足14字节:
          "123456" -> 310032003300340035003600
          从ASCII串转换成Unicode串时,使用little-endian序,微软在设计整个SMB协议时就没考虑过big-endian序,ntoh*()、hton*()函数不宜用在SMB报文解码中。0x80之前的标准ASCII码转换成Unicode码,就是简单地从0x??变成0x00??。此类标准ASCII串按little-endian序转换成Unicode串,就是简单地在原有每个字节之后添加0x00。
          2、对所获取的Unicode串进行标准MD4单向哈希(代码已附光盘),无论数据源有多少字节,MD4固定产生128-bit的哈希值,16字节:
          310032003300340035003600 -进行标准MD4单向哈希-> 32ED87BDB5FDC5E9CBA88547376818D4
          3、就得到了最后的NTLM-Hash
          123456的NTLM-Hash: 32ED87BDB5FDC5E9CBA88547376818D4。
          NTLM-Hash与LM-Hash算法相比,明文口令大小写敏感,但无法根据NTLM-Hash判断原始明文口令是否小于8字节,摆脱了魔术字符串"KGS!@#$%"。
          MD4是真正的单向哈希函数,穷举做为数据源出现的明文,难度较大。问题在于,微软一味强调NTLM-Hash的强度高,却避而不谈一个事实,为了保持向后兼容性,NTLM-Hash缺省总是与LM-Hash一起使用的。这意味着NTLM-Hash强调再高也是无助于安全的,相反潜在损害着安全性。增加NTLM-Hash后,首先利用LM-Hash的弱点穷举出原始明文口令的大小写不敏感版本,再利用NTLM-Hash修正出原始明文口令的大小写敏感版本。
          


          IP属地:四川6楼2011-11-14 19:48
          回复
            --------------------------------------引文结束----------------------------------------------————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
            


            IP属地:四川7楼2011-11-14 19:48
            回复
              Cain
              Cain我相信很多喜欢嗅探的朋友都会知道,但是你知不知道它除了嗅探之外还具备了强大的密码破解功能呢?如何用Cain来抓取hash呢,同样十分简单(试想像一下,你一边开着Cain嗅同网段其它机器的时候,一边破解已控制目标的管理员密码是一件多么酷的事情)。
              安装Cain所需驱动WinPcap,才能启动Cain,不过如果你只是用它来破解密码,而不需要嗅探类操作的话,打开Cain的时候它提示缺少什么文件就在安装目录建一个同名dll文件即可打开(欺骗Cain,让它为我们服务,不过这样做当然不具备嗅探类功能)。
              点选“Cracker”->“LM&NTLM Hashes”,然后点下右边空白处,蓝色+号按钮即可激活,然后点击它,弹出“Add NT Hashes from”->“Import Hashes from local system”->勾选“Include Password History Hashes”,然后Next,hash就抓出来了,如图


              右键单击你要破解的用户,“Brute-Force Attack”->“NTLM Hashes”->“Start”,就会开始暴力破解了,如果你的密码足够简单,很快就有得出结果,当然你同样可以像LC5一样选择你觉得可能的字符集,以改善破解速度,还可以自定义字符集。Administrator的密码为2009,轻松破解,如图


              


              IP属地:四川9楼2011-11-14 20:03
              回复
                Ophcrack
                (注:此处为忘情小刀客补充。)
                Ophcrack是一个使用Rainbow table(彩虹表)来破解视窗作业系统下的LAN Manager散列(比如hash文件)的程序,它是基于GPL下发布的开放原始码程式。
                它接受不同格式的散列,包括视窗作业系统的SAM档案。使用作者免费提供的Rainbow table,可以在短至几秒内破解最多14个英文字母的密码,有99.9%的成功率。包含更多文字(包括符号和空格)的Rainbow table可以在Objectif Securite购买。
                从2.3版开始可以破解 NT 散列,这功能对已经关闭 LAN Manager 散列的系统(Windows Vista /Win7的预订设定)或是长于14个字母的密码特别有用。 它另有一个自生系统的版本,可以自动破解视窗作业系统的密码。
                跨平台密码破解器Ophcrack的破解速度简直是不可思议。到底有多快呢?它能在160秒内破解“Fgpyyih804423”这个密码。很多人都认为这个密码已经相当安全了。微软的密码强度判定工具认为该密码的安全级别是“强”。而Geekwisdom密码强度估算器认为该密码的安全强度是“普通”
                具体用法不提供,感兴趣的可以自己搜索资料。
                个人使用心得:
                ophcrack,在破解xp密码上,简直是秒杀。
                我在xp上建了4个帐户,密码分别 为
                151458
                15145896559
                lan151458
                xvlan458151
                然后用ophcrack里自带的免费的xp fast彩虹表跑。
                不到1分种,4个密码全部破译出来,无语。
                在破解win7密码上,就没有这么好用了,可以秒杀8位下的纯数字密码,但字母加数字式的密码就不行了,因为我只下载了一个380m的彩虹 表,正在下载8.5g那个彩虹表,估计用这个可以秒杀之。
                


                IP属地:四川10楼2011-11-14 20:12
                回复
                  3、Windows Vista&Windows 7&Windows 2008
                  眼尖的朋友可以会发现还有两个工具没有露面,难道它们更加强大?没错,读完本文你就知道它们到底强大到了什么样的程度,或者前面所提到的东西不足以引起你的兴趣,那下面的东西将会让你对密码破解有一个更深刻的认识。为什么要把Vista及其后面的Windows系统版本分开说明呢,当然是有原因的。在Windows 2008中,微软对SAM和SYSKEY采取了与之前版本Windows不同的加密方法,尤其加密采用的NTLM-Hash算法远比之前的LM-Hash更复杂得多,这使得之前用于Windows NT/2000/XP上的破解管理员密码的方法统统失效了(其实只是Windows 2008默认状态下把LM-hash禁用了,所以就增加了破解难度)。
                  先来试下2000/XP/2003下的那些工具,测试系统版本:Windows Server Enterprise SP1(企业版),已更新所有补丁程序。pwdump7.exe可以运行,但是抓出来的hash明显与之前的不同,LM-hash那段都是星号,原因就是前面说过的Windows 2008禁用了LM-hash,如图:
                  GetHashes.exe没有成功抓到hash,生成的txt文件为空白,如图

                  SAMInside也可以运行,成功抓取到了hash,不过LM-hash段全为0,要注意使用最新版本,如图

                  再来看看LC5,安装运行,N久后提示“Couldn't impersonate system account.You do not have the privileges to perform this operation.”确定之后继续提示“Error importing passwords from the registry.You may have insufficient permissions to perform this action.”大致意思是说我没有权限执行这个操作,可是我是以管理员身份运行的LC5的,它自己不行所以就很委婉地推托说是我权限不够。不过LC5的公司已经被人收购了N久,版本也没有再更新,在新的Windows 2008下表现令人失望也情有可愿


                  而且拿pwdump7.exe和SAMInside抓取的hash导入LC5也同样无法破解,一点小三角形开始按钮便马上停止。这一轮,LC5被淘汰
                  


                  IP属地:四川11楼2011-11-14 20:19
                  回复
                    下面该轮到本文最有价值的软件——Ophcrack出场了!Ophcrack是一个免费的在配合彩虹表的基础上破解Windows系统密码的工具。效率相当可观,它配备了一个Windows下的图形用户界面并且支持多平台运行。而且还可以下载官方的Ophcrack LiveCD刻录成光盘,就可以走到哪破到哪了!其官方网站为http://Ophcrack.sourceforge.net/,可以到官方下载安装,如图26。

                    Ophcrack所用的彩虹表和常规的彩虹表不太一样,它识别不了*.rt格式的彩虹表,只认官方的彩虹表。常规的彩虹表无法破解Vista、Windows 7、Windows 2008的密码hash。免费的彩虹表官方只提供三个:XP free small (380MB)、XP free fast (703MB)、Vista free (461MB),其它更为强大的一些彩虹表则需要收取一定费用。安装的时候需要注意,可以选择是否下载官方彩虹表,如果你想安装好软件后另外自己下载则去掉勾选的选项即可,如图27。

                    安装完毕,界面如图:

                    因为官方收费的一些表被国外的一些网站公布了,所以我下了两个比较常用的表:一个是XP special (7.5GB);另一个是Vista special (8.0GB),官方标价为99美元/个。至于更大的表则没有下载,其实有这两个表基本上都够用的了。别看它表体积不大,但威力不容小觑。似乎是做过某种优化和压缩,打开Ophcrack,“Load”->“Local Encrypted SAM”,然后定位到之前从系统盘system32下config文件夹下复制的SAM,SECURITY,SYSTEM所在的某文件夹,确定后就可以看到系统所有用户名的hash值了,如图:

                    Tables标签下可以看到已安装的彩虹表,如果安装软件的时候没有下载官方彩虹表,后期下载完彩虹表后可以在Tables里进行安装,如图31。
                    然后就可以按Crack进行破解了。虽然说Ophcrack抓取hash的能力有所不足,相对在Vista下而言,但是我们可以用其他的hash抓取工具获得hash后再导入破解。来看看Ophcrack的破解成果图吧,密码14位,如图32

                    


                    IP属地:四川13楼2011-11-14 20:41
                    回复
                      后记
                      当然了,破解至关重要的主hash的正确性,限制是密码的长度是否超过14位,还有密码所组成的字符集,甚至是中文的密码就无法破解。为什么密码长度超过14位也无法破解呢,因为NTLM-hash只支持到14位,目前还没有突破的方法。只要你认真阅读过本文,我相信你已经能破解绝大部分的Windows系统密码hash了,当然如果管理员用了组策略限制某个用户的密码有限期限为24小时,而第二天又自动启用另一个随机的密码,那破解密码就完全没有意义了(曾在美国某服务器遇到过这种变态级的管理员)。Windows下的密码就差不多说完了,那Linux下的系统密码又如何破解呢?其实更加简单(曾经在Ubuntu8.10下用john秒杀了我自己的密码),不过不在本文讨论范围之内,希望有兴趣的朋友自己去尝试


                      IP属地:四川15楼2011-11-14 20:46
                      回复
                        留名


                        IP属地:河南16楼2012-12-13 19:26
                        回复