【实验目的】
1)理解LC4破解本地SAM散列的原理
2)学习LC4破解本地SAM散列的过程
【实验原理】
Windows hash由二部分组成,分别是LM HASH&NT HASH。Windows系统关于hash的组成如下:
用户名称:`RID:LM-HASH值:NT-HASH值`
LM HASH生成规则:
1.用户的密码被限制为最多14个字符。
2.用户的密码转换为大写。
3.系统中用户的密码编码使用了OEM内码页
4.密码不足14字节将会用0来补全。
5.固定长度的密码被分成两个7byte部分。每部分转换成比特流,在分7bit为一组末尾加0,组成新的编码
6.上步骤得到的8byte二组,分别作为DES key为“[email protected]#$%”进行加密。
7.将二组DES加密后的编码拼接,得到最终LM HASH值。
NT hash生成原理:
IBM设计的LM Hash算法存在几个弱点,微软在保持向后兼容性的同时提出了自己的挑战响应机制,NTLM Hash便应运而生。假设明文口令是"123456",首先转换成Unicode字符串,与LM Hash算法不同,这次不需要添加0补足14字节
"123456"->310032003300340035003600。
从ASCII串转换成Unicode串时,使用little-endian序,微软在设计整个SMB协议时就没考虑过big-endian 序,ntoh*()、hton*()函数不宜用在SMB报文解码中。0×80之前的标准ASCII码转换成Unicode码,就是简单地从0x变成 0×00。此类标准ASCII串按little-endian序转换成Unicode串,就是简单地在原有每个字节之后添加0×00。对所获取的 Unicode串进行标准MD4单向哈希,无论数据源有多少字节,MD4固定产生128-bit的哈希值,16字节 `310032003300340035003600`-进行标准MD4单向哈希->32ED87BDB5FDC5E9 CBA88547376818D4,就得到了最后的NTLM Hash
NTLM `Hash:32ED87BDB5FDC5E9CBA88547376818D4`.
【实验环境】
本次环境是模拟黑客在已经获得目标机HASH的情况下,通过LC4的密码字典对目标HASH进行破解
【实验步骤】
一、获得系统SAM值
如 pwdump导出本地SAM散列 http://klmyoil.blog.51cto.com/10978910/1721965
二、获得系统密码
2.1 打开lc4文件夹后,打开lc4汉化版
2.2 打开左上角‘文件’中的‘新建任务’选项
2.3 打开‘导入’中的‘从pwdump文件导入’选项
2.4 选择我们存放hash值的文档
2.5 点击‘开始破解’按钮,开始破解
2.6 密码被成功破解出来
2.7 至此,LC4破解本地SAM实验完成。