Windows下LM-Hash与NTLM-Hash生成原理 - CSDN博客
Windows下LM-Hash与NTLM-Hash生成原理
LM-Hash与NTLM-Hash
在windows下通过SAMInside提取到的密码Hash时,可以看到有两条,分别是LM-Hash和NT-Hash,这是对同一个密码的两种不同的加密方式,下面对其生成原理做个实验。
Windows下LM-Hash生成原理
这里用实例展示LM-Hash的具体产生过程。
我使用的明文口令是“123993”,可以看到在使用SAMInside提取出来的LM-Password是 & Disabled &的形式,这里是因为win7系统禁用了LM方式。
使用如下方法启动:
依次打开:控制面板&&所有控制面板项&&管理工具&&本地安全策略,再依次打开&&本地策略&&安全选项
打开以下截图中的“策略”,并将“已启用”修改为“已禁用”。单击“应用”后再点击“确定”。
因为该策略要求修改密码后生效,所以我需要修改密码。
我将密码修改为123994,此时Administrator用户的LM-Password不再显示& Disabled &,并且获得其LM-Hash值FAE8BB9ECB799902AAD3B435B51404EE。
这种加密过程的第一步是将明文口令转换为其大写形式,接下来123994大写转换后仍为它本身,第二步是将字符串大写后转换为16进制字符串,
这里使用UltraEdit编辑器将123994转换为16进制字符串。
在UltraEdit编辑器输入123994后右键选择“十六进制编辑”选项,如下图所示。
【误区:使用win7自带的计算器并选择程序员模式,将十进制的123994转换为16进制,结果为1E45A,这里是把123994当作数值转换,没有按要求转换为16进制字符串。】
这种密码生成规则要求用户的密码最多仅能为14个字符,第三步是密码不足14字节要求用0补全。转换后的十六进制字符串按照二进制计算只有48bit(12*4),为了满足14字节(112bits)的要求,所以需要补全64bit(16*4)的二进制0,得最终补全后十六进制为:0000。
第四步是将上述编码分成2组7字节(56bits=14*4)的数据,分别为00和00。
第五步是将每一组7字节的十六进制转换为二进制,每7bit一组末尾加0,再转换成十六进制组成得到2组8字节的编码。
下图将00转换为二进制。
然后从左到右按照每7bit一组罗列如下:这里务必注意将最前面的11补全为0011
接下来在每7bits一组的末尾添0,再将其转换成16进制。
从上往下得到00对应的8字节编码:C8D000
同理知00对应的8字节编码:
第六步将以上步骤得到的两组8字节编码,分别作为DES加密key为魔术字符串“KGS!@#$% ”进行加密。
该魔术字符串换算成16进制:4B25。
从网上下载到DES计算器,依次计算使用C8D000和0000加密4B25后的密文。
第七步将两组DES加密后的编码拼接,
得到最终LM-Hash值为:
FAE8BB9ECB799902AAD3B435B51404EE
这与SAMInside中的LM-Hash值相同。
注意:这种加密方法对于输入明文密码是数字、字母或者数字与字母的组合,或者其他如&、%等常用符号均适用;使用UltraEdit获取明文的十六进制字符串
Windows下NTLM-Hash生成原理
IBM设计的LM Hash算法存在几个弱点,微软在保持向后兼容性的同时提出了自己的挑战响应机制,NTLM Hash便应运而生。
这里同样以上节的明文密码“123994”作为研究对象。首先在UltraEdit中输入123994,然后点击&&编辑&&十六进制函数&&十六进制编辑,
再点击&&文件&&转换&&ASCII转Unicode,如下图所示获得Unicode字符串为,
开头的FF FE用于标识此文本文件为Unicode编码,参考链接:
对所获取的Unicode字符串进行标准MD4单向哈希加密,无论数据源有多少字节,MD4固定产生128-bit的哈希值,产生的哈希值就是最后的NTLM Hash。
从网上下载HashCalc工具,打开后将输入数值框中,选择左侧数据格式为十六进制串,去掉HMAC前的对号。选中MD4加密,再点击计算,如下图所示。
获得MD4加密的哈希值为b648042caad9f1c0cbf5bb5cb66ee88f,
与SAMInside中的NT-Hash:B648042CAAD9F1C0CBF5BB5CB66EE88F相同。
本文已收录于以下专栏:
相关文章推荐
Hash,一般翻译为“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是散...
PS:这是国外的hash密码在线破解网站列表,支持多种类型的hash密码,目前可查询破解的hash包括:MD5、NTLM、LM、SHA1、SHA 256-512、MySQL、WPA-PSK 。
http://hashchecker.de/find.html
http://paste2.org/p/441222
http://r0ot.podzemlje.net/?x=md5
快速排序的基本思想是:
通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此...
Windows系统密码破解全攻略(hash破解)
在允许的环境下,Kerberos是首选的认证方式。在这之前,Windows主要采用另一种认证协议----NTLM(NT Lan Manager)。NTLM使用在Windows NT和Windows 200...
要使用asp.net窗体身份验证,要做的第一件事就是修改web.config文件。 首先,必须要修改节点下的子节点,将该子节点中的mode属性值设为“Forms”。 然后,在节点下添加子节...
转自:http://blog.chinaunix.net/uid-9374481-id-2004431.html
身份验证是一个验证客户端身份的过程,通常采用指定的第三方授权方...
在上一篇博文《asp.net中的窗体身份验证(最简单篇)》中的身份验证虽然很简单,但是有一个缺点,就是访问整个网站都必须要经过身份验证,而事实上,很多网站都不会这么要求的。 比如一个新闻系统,通...
他的最新文章
讲师:吴岸城
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)Error 401 Bad credentials
HTTP ERROR 401
Problem accessing /detail/39497-%E5%9B%BD%E5%A4%96-hash-md5. Reason:
Bad credentialsPowered by Jetty://开源中国在线工具
在线加密解密(采用实现)
this is a example
散列/哈希算法:
HmacSHA224
HmacSHA256
HmacSHA384
HmacSHA512
迭代次数:
在此填写您的意见信息:
Email邮箱: (必填)
您的建议和意见: