按分类存档 译言
如何破解您的Windows密码(第一篇)
介绍
密码可以看作我们主要,甚至某些情况下唯一可用于防范入侵的防线。就算入侵者无法在物理上接触到计算机,对于对外的Web应用,他们依然可以通过远程桌面协议或身份验证功能访问到服务器上的服务。
本文的主要是为了告诉您Windows创建和存储密码哈希(Hash)的方式,以及这些哈希的破解方式。在介绍了如何破解Windows密码后,我还将介绍一些技巧,帮助您防范此类攻击。
Windows是如何存储密码的
运行Windows的计算机使用两种方法对用户密码创建哈希,这两种方法在本质上有着不同的安全意义。这两种方法分别是LAN Manager (LM)以及NT LAN Manager第二版(NTLMv2)。哈希是一种加密功能所获得的结果,这种加密需要获取任意大小的字符串数据,并用算法对其进行加密,然后返回一个固定大小的字符串。
LM密码哈希
LAN Manager哈希是Windows操作系统最早使用的密码哈希算法之一,并且在Windows 2000、XP、Vista和7中使用了更先进的NTLMv2之前,这也是唯一可用的版本。这些新的操作系统虽然可以支持使用LM哈希,但主要是为了提供向后兼容行,不过在Windows Vista和Windows 7中,该算法默认是被禁用的。
密码的LM哈希需要使用下列六个步骤计算获得:
-
将用户的密码全部转换为大写字母
-
给密码添加空(null)字符,直到密码长度等于14个字符
-
将新获得的密码拆分为两组7位的字符值组
-
使用这些值创建两个DES加密密钥,并为每一组添加一个奇偶校验位,这样即可创建出64位的密钥
-
使用每个DES密钥加密一个预定义的ASCII字符(KGS!@#$%),这样即可获得两个8字节Ciphertext值
-
这两个8字节的Ciphertext值结合组成一个16字节的值,也就是最终获得的LM哈希
举例来说,如果使用“PassWord123”作为密码,在上述操作中这个密码会被分别转换为:
-
PASSWORD123
-
PASSWORD123000
-
PASSWOR和D123000
-
PASSWOR1和D1230001
-
E52CAC67419A9A22和664345140A852F61
-
E52CAC67419A9A22664345140A852F61
图1: 将密码转换为LM哈希
LM 存储的密码有一些明显的不足。首先是,加密工作是基于数据加密标准(DES)的,DES最初来源于IBM在二十世纪七十年代的一个项目,该项目最终被 NIST进行了改进,并获得了NSA的支持,于1981年作为一项ANSI标准发布。多年以来,DES都被认为是足够安全的,但由于这种小型密钥只有56 位,因此从九十年代开始,已经变得不那么安全。到了1998年,Electronic Frontier Foundation只需要大概23小时即可破解DES。因此,DES开始变得不够安全,并逐渐被三重DES(Triple-DES)以及AES所取代。简单来说,这些都属于其他加密标准,但由于现代计算机的强大性能,很快也被破解。
LM哈希最大的弱点可能就是DES密钥的创建过程。在这个过程中,用户提供的密码会被自动转换为全部大写,并通过补充变为14个字符(这也是LM哈希密码的最大长度),随后会被分为两组7位字符的值。对于由 14个可印刷的ASCII字符组成的密码,有95的14次方种可能性,而一旦将其腰斩为两组7位的字符,可能性就降低为95的7次方种,而如果您只允许使用大写的ASCII字符,可能性将进一步降低为69的7次方种。因此从本质上将,就算您使用不同的大小写字符,并使用长密码,一旦密码被保存成LM哈希,所有的努力都将付诸东流,在暴力破解面前,LM哈希将不堪一击。
NTLMv2密码哈希
NT LAN Manager (NTLM)是由微软开发,用于取代LM的身份验证协议。最终通过改进,从Windows NT 4开始,NTLMv2被用作全新的身份验证方法。
NTLMv2 哈希(下文简称为NT哈希)的创建在操作系统实际参与的工作上更加简单,并需要使用MD4哈希算法,通过一系列数学计算创建哈希。MD4算法需要使用三次,这样才能产生NT哈希。举例来说,“PassWord123”这个密码的MD4哈希就可以表示为 “94354877D5B87105D7FEC0F3BF500B33”。
图2: 将密码转换为NTLMv2哈希
MD4通常比DES更加强装,因为可以接受更长的密码,可允许同时使用大写和小写的字母,并且并不需要将密码拆分为更小,更易于破解的片段。
对于使用NTLMv2创建的哈希,可能最大的不足在于Windows无法使用一种名为Salting的技术。Salting这种技术可以用于生成随机数,并将该随机数用于计算密码的哈希。这意味着完全相同的密码可能会具有完全不同的哈希值,这才是最理想的情况。
在这种情况下,用户就可以创建所谓的Rainbow Table。Rainbow table并不是指五颜六色的咖啡桌,实际上是一种表格,其中包含了由某一数量的字符所能组成的每一种可能密码的每一个哈希值。通过使用Rainbow table,我们就可以从目标计算机提取密码的哈希值,并在表中进行检索。一旦在表中找到相同的内容,就等于知道了密码。正如您所想的,就算由很少字符组成的Rainbow table,整个表也会非常庞大。这意味着此类表的创建、存储,以及检索都是很麻烦的工作。
结论
在本文的第一部分中,我们介绍了密码哈希的概念,以及Windows用于创建和存储这些数值的机制。另外我们还介绍了每种方法的局限性,以及可以用于破解这些密码的可能途径。在后续的内容中,我们将介绍获取和破解这些哈希的方法,并证明局限性的存在。在介绍完之后,我还将提供一些技巧,让您获得更进一步的保护,并创建满足所需强度的密码。
在Windows 7中使用Aero样式的经典开始菜单
在全新安装的Windows 7中,您是否依然怀念经典开始菜单?现在您可以将它找回来,并同样获得Aero样式的外观。
准备工作
下图所示的是我们的范例系统中一个常规的“开始菜单”。虽然这样的外观整洁有序,但如果能够在我们需要的时候,在常规和经典样式的开始菜单之间进行切换,那就更好了。
安装
您下载回来的程序是一个zip压缩文件,在解压缩后,将能看到下图所示的内容。随后您需要为该程序创建一个“Program Files”文件夹,将解压缩的内容保存在其中,然后在顺手的位置创建一个快捷方式。随后即可开始使用“经典菜单”了。
随后
当您启动该程序和偶,您的菜单就会自动变为经典样式。圆角的边框以及Aero玻璃效果使得这样的菜单也挺漂亮,而这种经典开始菜单的使用方法与常规的经典菜单也没什么两样(例如Windows徽标键、Ctrl + Esc,或鼠标左键单击)。
目前,“拖拽、添加、删除、更名,以及排序”等功能在经典Windows开始菜单上暂时无法使用,您可以在常规样式的菜单中执行此类更改,再次切换回经典菜单后,也将应用这些更改。
这里有一个很实用的窍门,“Original menu…”命令。单击该命令可以查看并使用常规菜单一次,然后只要再次单击“开始菜单圆形按钮”即可返回经典样式的菜单。
如果您想要(或需要)退出经典样式的菜单,只需要用鼠标右键单击“开始菜单圆形按钮”,并选择“Exit”即可。
注意:如果您希望每次启动Windows的时候都能自动切换为经典Windows开始菜单,那么您需要将相应的快捷方式保存到“启动”文件夹中。
结论
Classic Windows Start Menu软件提供了一种快速简便的方法,可供您在Windows 7中使用经典样式的菜单,同时还能为该菜单应用Aero玻璃特效。
链接
理念的缺失:Windows 7任务栏 VS OS X Dock
Windows 7带来了全新的任务栏,同时也带来了微软模仿Apple的言论。这一次,虽然微软被指责模仿OS X的Dock,但我们的深入调查发现这两个功能的差异要比相似性更大,虽然没有压倒性的胜利者,但这两种方式都在互相学习。
开启复印机?
Windows 7中全新的任务栏和Mac OS X的Dock有很多相似之处,而相似性中的很多都没什么建设性,并不会让Windows变得和Mac过于相像。就算在Mac用户中,这种新的任务栏也不是人人都能接受,很多人甚至觉得这种Dock非常难用。
表面上看,这两个功能的相似之处很明显:Dock和任务栏都由很大的图标组成,这些图标可用于启动或切换应用程序。然而更仔细查看会发现,在很长时间内,任何人都不需要担心微软盲目模仿Apple。Windows的UI并没有变成Mac OS X的UI,至少目前还没有。
我们进入后操作系统时代吗?
Windows 7能否被企业所接纳?Google Android是否能为上网本领域造成威胁?更重要的问题是,“操作系统还值得关注吗?”,如果不值得,那么这意味着什么?
微软知道这一天迟早会到来。因此微软曾拼命地“希望”–不,准确说是“需要”–在1996年干掉网景公司。网景公司实际上只是打算创建一个能用于通过网络,阅读保存在其他计算机上的文字和照片的程序。网景是在尝试创建一个新的平台–一个最终平台–以便能够在全球范围内随时运行软件和共享信息。但没有谁能有比尔盖茨那么深刻的领会。
在首次看到史蒂芬乔布斯的苹果Macintosh计算机,以及其包含的图形用户界面后,盖茨用了差不多十年时间才意识到这一应用的具体价值。盖茨知道,图形用户界面会使得他自己的,基于字符界面的DOS操作系统变得更加落伍。于是他发明了Windows系统,并抢走了乔布斯的风头。













最新评论