admin管理员组

文章数量:1530518

2024年7月30日发(作者:)

windows口令破解GetHashes

(1)Windows系统下的Hash密码格式

Windows系统下的Hash密码格式为:用户名称:RID:LM-Hash值:NT-Hash值

例如:

Administrator:500:C8825DB10F2590EAAAD3B435B51404EE:683020925C5D8569

C23AA724774CE6CC:::表示

用户名称为:Administrator

RID为:500

LM-Hash值为:C8825DB10F2590EAAAD3B435B51404EE

NT-Hash值为:683020925C5D8569C23AA724774CE6CC

(2)Windows下LM-Hash值生成原理

"WELCOME" -> 57454C434F4D4500

如果明文口令经过大写变换后的二进制字符串不足14字节,则需要在其后添加

0x00补足14字节。然后切割成两组7字节的数据,分别经str_to_key()函数处

理得到两组8字节数据:

57454C434F4D45 -str_to_key(-> 56A25288347A348A

00 -str_to_key(-> 0000

56A25288347A348A -对4B47532140232425进行标准DES加密->

C23413A8A1E7665F

0000 -对4B47532140232425进行标准DES加密->

AAD3B435B51404EE

将加密后的这两组数据简单拼接,就得到了最后的LM Hash。

LM Hash: C23413A8A1E7665FAAD3B435B51404EE

Windows下NTLM Hash生成原理

IBM设计的LM Hash算法存在几个弱点,微软在保持向后兼容性的同时提出了自

己的挑战响应机制,NTLM Hash便应运而生。假设明文口令是"123456",首先转

换成Unicode字符串,与LM Hash算法不同,这次不需要添加0x00补足14字节

"123456" -> 31。

从ASCII串转换成Unicode串时,使用little-endian序,微软在设计整个SMB协

议时就没考虑过big-endian序,ntoh*(、hton*(函数不宜用在SMB报文解码中。

0x80之前的标准ASCII码转换成Unicode码,就是简单地从0x?变成0x00?。

此类标准ASCII串按little-endian序转换成Unicode串,就是简单地在原有每个字

节之后添加0x00。对所获取的Unicode串进行标准MD4单向哈希,无论数据源

有多少字节,MD4固定产生128-bit的哈希值,16字节

31-进行标准MD4单向哈希->32ED87BDB5FDC5E9

CBA88547376818D4,就得到了最后的NTLM Hash

NTLM Hash: 32ED87BDB5FDC5E9CBA88547376818D4

使用GetHashes获取Windows系统的Hash密码值

(1)GetHashes命令使用格式

GetHashes [System key file] Or GetHashes $Local

一般使用"GetHashes $Local"来获取系统的Hash密码值,该命令仅在system权限

下才能执行成功。通常根据个人爱好,可以将""工具软件命名为其他

名称。

(2)使用GetHashes获取系统Hash值实例

本文标签: 字节口令系统密码进行