渗透思考题

目录

1. windows登录的明文密码,存储过程是怎么样的,密文存在哪个文件下,该文件是否可以打开,并且查看到密文

2. 我们通过hashdump 抓取出 所有用户的密文,分为两个模块,为什么? 这两个模块分别都代表什么

3. 为什么第一个模块 永远是一样的aad3

4. 这两个模块的加密算法有什么不同,如何加密的

LM Hash原理

第一组

第二组

NTLM Hash原理


1. windows登录的明文密码,存储过程是怎么样的,密文存在哪个文件下,该文件是否可以打开,并且查看到密文

Windows的登陆密码是存储在系统本地的SAM文件中的,在登陆Windows的时候,系统会将用户输入的密码和SAM文件中的密码进行对比,如果相同则认证成功

SAM文件在C:\Windows\system32\config\目录下的,用于存储本地所有用户的凭证信息,但是不可以随意查看系统密码

Windows操作系统通常使用两种方法对用户的明文密码进行加密处理。在域环境中,用户信息存储在ntds.dit中,加密后为散列值。 Windows操作系统中的密码一般由两部分组成,一部分为 LM Hash,另一部分为NTLMHash。

2. 我们通过hashdump 抓取出 所有用户的密文,分为两个模块,为什么? 这两个模块分别都代表什么

第一部分是LM哈希,第二部分是NT哈希

LM Hash 的全名为"LAN Manager Hash",是微软为了提高 Windows操作系统的安全性而采用的散列加密算法,其本质是DES加密。尽管 LM Hash较容易被破解,但为了保证系统的兼容性,Windows只是将LM Hash禁用了(从Windows vista和 Windows Server2008版本开始, Windows操作系统默认禁用 LM Hash)。 LM Hash明文密码被限定在14位以内,也就是说,如果要停止使用 LM Hash,将用户的密码设置为14位以上即可。如果 LM Hash被禁用了,攻击者通过工具抓取的 LM Hash通常为“ad3b435b51404eead3b435b51404ee”(表示 LM Hash为空值或被禁用)NTLM Hash是微软为了在提高安全性的同时保证兼容性而设计的散列加密算法。

NTLM Hash 是基于MD4加密算法进行加密的。个人版从 Windows vista以后,服务器版从 Windows Server 2003以后,Windows操作系统的认证方式均为 NTLM Hash

为了解决LM加密和身份验证方案中固有的安全弱点,Microsoft 于1993年在Windows NT 3.1中引入了NTLM协议。下面是各个版本对LM和NTLM的支持。

3. 为什么第一个模块 永远是一样的aad3

因为LM哈希不安全,都是aad3这样的内容说明LM Hash为空值或被禁用了。

4. 这两个模块的加密算法有什么不同,如何加密的

 第一部分是基于DES算法加密的,第二部分是基于MD4算法加密的;

第一部分加密过程是用户密码首先被转换为Unicode格式,然后使用Unicode Little-Endian编码进行哈希,第二部分是将用户密码和一些随机数来结合计算出的哈希值,更复杂更安全。

LM Hash原理

将明文口令转换为其大写形式假设这里以明文Admin@123为例,转换为大写格式为:ADMIN@123

将字符串大写后转换为16进制字符串转换后为

41 44 4D 49 4E 40 31 32 33

密码不足14字节要求用0补全,1Byte=8bit,上面的16进制字符串共9个字节,还差5个字节我们使用 00 00 00 00 00 补全

41 44 4D 49 4E 40 31 32 33 00 00 00 00 00

将上述编码分成2组7字节

41 44 4D 49 4E 40 31 第一组

32 33 00 00 00 00 00 第二组

将每一组7字节的十六进制转换为二进制,每7bit一组末尾加0,再转换成十六进制组成得到2组8字节的编码

第一组

16进制:

41 44 4D 49 4E 40 31

转换为二进制:

01000001010001000100110101001001010011100100000000110001

七个为一组末尾补0

01000000

10100010

00010010

10101000

10010100

01110010

00000000

01100010

合并后为

0100000010100010000100101010100010010100011100100000000001100010

再转换为16进制:40A212A894720062

第二组

16进制:

32 33 00 00 00 00 00

转换为二进制:

00110010001100110000000000000000000000000000000000000000

七个为一组末尾补0

00110010

00011000

11000000

00000000

00000000

00000000

00000000

00000000

合并后为

0011001000011000110000000000000000000000000000000000000000000000

再转换为16进制:3218C00000000000

将以上步骤得到的两组8字节编码,分别作为DES加密key为魔术字符串 KGS!@#$% 进行加密

 KGS!@#$%的16进制为4B47532140232425 (明文)

(密钥)

第一组:6F08D7B306B1DAD4

第二组:B75E0C8D76954A50

最终结果拼接即可

6F08D7B306B1DAD4B75E0C8D76954A50(密文:加密后)

NTLM Hash原理

将明文口令转换成十六进制的格式 如:Admin@123 转换成Unicode格式,即在每个字节之后添加0x00

Admin@123转16进制 41 64 6D 69 6E 40 31 32 33

添加00:4100 6400 6D00 6900 6E00 4000 3100 3200 3300

对Unicode字符串作MD4加密,生成32位的十六进制数字串 570a9a65db8fba761c1008a51d4c95ab

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值