题目:Windows系统密码破解全攻略
作者:hackest [H.S.T.]
来源:hackest’s blog

此文章已发表在《黑客X档案》2009年第6期杂志上
后经作者发布在博客上,如转载请务必保留此信息!

背景

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

--------------------------------------引文开始----------------------------------------------

一、如何从明文口令生成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本身,与传统所说的可逆有区别。

二、如何从明文口令生成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修正出原始明文口令的大小写敏感版本。

--------------------------------------引文结束----------------------------------------------

实战

理论准备得差不多了,进入实战阶段。当你已经得到Windows的系统权限后,如何才能获得管理员的密码hash呢?不同版本的Windows的hash获取方法不一样。用到的工具有pwdump7.exe、GetHashes.exe、SAMInside.exe、LC5、Cain、Proactive Password Auditor、Ophcrack。下面将会详细介绍如何抓取各Windows版本的系统密码hash。

都是工具的使用,想了解的看原文,略过。

vista、2008、win7下,pwdump7.exe,SAMInside.exe,Cain、PPA可以抓取Hash。

在线查询

如果你觉得上面提到的这么多东西都太麻烦,有没有在线查询hash的网站呢?答案是肯定的!国外有一个在线查询hash的网站:http://www.objectif-securite.ch/en/products.php,和Ophcrack的官方有点关系的哦,嘿嘿……不过在线查询只允许查tables XP free的表,有点可惜……同时特别要指出的是,在线查询的时候需要注意hash的格式。比如用户名和密码都是hackest的hash为:
hackest:1011:7831A0FFABEE5FB3AAD3B435B51404EE:D78DF6E868E606E442313C5DF93216F1:::
我们只需要把7831A0FFABEE5FB3AAD3B435B51404EE:D78DF6E868E606E442313C5DF93216F1复制填入hash后面的框,再点击submit hash即可进行查询,同时也支持输入密码返回hash值,如图33。

Vista以后系统如果开启BitLocker则以上方法均无效,根本无法抓取到hash,不过好在BitLocker默认是关闭的,不是特别需要的用户一般不会开启它。

WINDOWS系统密码破解全攻略相关推荐

  1. CMOS密码破解全攻略

    2006-06-06 10:03:21 CMOS密码破解全攻略 "CMOS密码"就是通常所说的"开机密码",主要是为了防止别人使用自已的计算机,设置的一个屏障. ...

  2. WIFI密码破解全攻略

    开篇介绍 目前无线网络加密技术日益成熟.以前的wep加密方式日渐淘汰,因为这种加密方式非常容易破解,当然现在还是有不少使用这种加密方式无线网络.现在大部分的无线网络都是使用wpa/wpa2方式来加密的 ...

  3. Windows2000、XP、2003系统万能Ghost全攻略

    Windows2000.XP.2003系统万能Ghost全攻略 ==================================================================== ...

  4. Windows操作系统万能Ghost全攻略

    http://www.knowsky.com/4520.html Windows操作系统万能Ghost全攻略 发表日期:2004-7-5 一直以来,安装操作系统和应用软件是一件吃力不讨好的事情,虽然现 ...

  5. 微软WIN7系统瘦身全攻略

    微软WIN7系统瘦身全攻略 首先 开启 Administrator 用户 删除其他用户!~~这个应该都会吧!~~ 1."以管理员身份运行,所有程序→附件→命令提示符",右击选择&q ...

  6. 组策略 控制台登录计算机用用户,更方便的管理计算机!Windows组策略应用全攻略一...

    更方便的管理计算机!Windows组策略应用全攻略一 (2007-03-22 01:28:09) 更方便的管理计算机!Windows组策略应用全攻略一 一)组策略有什么用? 说到组策略,就不得不提注册 ...

  7. 【网络安全学习实践】Windows系统密码破解防护及用户和组管理

    halo~我是bay_Tong桐小白 本文内容是桐小白个人对所学知识进行的总结和分享,知识点会不定期进行编辑更新和完善,了解最近更新内容可参看更新日志,欢迎各位大神留言.指点 [学习网络安全知识,维护 ...

  8. X61/T61/X200/T400/T500/W500/W700使用XP安装盘安装系统及驱动全攻略(

    1楼 大 中 小 发表于 2009-2-8 06:59 PM  只看该作者 X61/T61/X200/T400/T500/W500/W700使用XP安装盘安装系统及驱动全攻略(视频) X61/T61/ ...

  9. 微信小程序之-Windows服务器端PHP搭建全攻略

    微信小程序之-Windows服务器端phpstudy搭建详细攻略 今年八月初接到一个项目,开始着手做一个有关部门运动排行的微信小程序.由于是初次接触这个领域,所以查了很多资料,也走了很多弯路.在此记录 ...

最新文章

  1. Activity如何后台运行?不是缓存,是运行。
  2. C++ opengl 纹理过滤之GL_NEAREST
  3. java封装发送邮件的插件_基于Spring封装的Javamail实现邮件发送
  4. es6 super 关键字
  5. bzoj1941 [Sdoi2010]Hide and Seek 线段树
  6. Redis与Memcache的区别
  7. BZOJ5336 TJOI2018 party 【状压DP】*
  8. 智能手机的超性能语音识别技术简介
  9. 详解Unity中的摄像机及实例应用
  10. 成功实施ERP的规范流程
  11. html嵌入flv格式和swf格式视频
  12. android 控制手机,如何用Android手机控制另一部手机[详细说明]
  13. 点击百度网盘安装包无反应
  14. Python之Selenium模拟浏览器
  15. 真香!端午节到来,我用Python画了几个粽子送给女票,女票差点吃了我的电脑...
  16. 自然增长率,到底怎么算才合理!
  17. 直流无刷电机的调试与代码开源(配套资源)
  18. .bat文件实现一个简单的http请求工具(支持get和post请求)
  19. mac电脑怎样修改cad标注尺寸中的数字大小?
  20. 【费马小定理】判断素数

热门文章

  1. 开发APP的流程是怎样的
  2. 【Git】Git基础
  3. Maya2018 快速绑定人物骨骼制作动画并导出fbx
  4. 通用漏洞评估方法CVSS3.0介绍
  5. 如何将AI模型集成到android应用(app)中
  6. 石头剪刀布AI进化版
  7. Python数据分析——pandas数据结构(DataFrame)
  8. MiniVCap 用普通usb摄像头做视频录像软件!可长期持续录像
  9. KaggleM5 Forecasting:传统预测方法与机器学习预测方法对比
  10. 教师和计算机平面设计图谁更好一些,平面设计计算机论文,关于计算机平面设计课程教学策略对中职生就业的作用和意义相关参考文献资料-免费论文范文...