-
windows登录的明文密码,存储过程是怎么样的,密文存在哪个文件下,该文件是否可以打开,并且查看到密文
在windows中,一般是通过保存密码的hash值来确保安全性,Windows 默认使用NTLM或Kerberos 身份认证协议进行加密存储密码。
本地登录授权用户访问本地计算机上Windows资源的权限。本地登录要求用户在本地计算机的安全账户管理器(SAM)中具有用户账号。安全账户管理器(SAM)是存储本地用户账户和组的数据库。
C:\Windows\System32\config\SAM 一般打不开
-
我们通过hashdump 抓取出 所有用户的密文,分为两个模块,为什么? 这两个模块分别都代表什么
-
为什么第一个模块 永远是一样的aad3
hashdump抓取的密文分为LMhash和NThash:
LM Hash(LAN Manager Hash):微软为了提高windows操作系统的安全性而采用的散列加密算法,其本质是DES加密。尽管LM Hash较容易破解,但是为了保证系统的兼容性,windows只是将LM Hash禁用了,LM Hash明文密码被限制再14位以内,也就是说如果停止使用LM Hash,将用户的密码设置位14位以上就可以了。
NTLMHash:微软为了在提高安全性的同时保证兼容性而设计的散列加密算法,NTLMHash是基于MD4加密算法进行加密的。
两个模块都分别代表用户的密码密文,但NThash比LMhash更安全,难以破解
为了保证系统的兼容性,windows只是将LM hash禁用了,但仍然会生成LM hash并且是固定值aad3b435b51404eeaad3b435b51404ee,所以在hashdump抓取结果可以看见两个密文模块。
-
这两个模块的加密算法有什么不同,如何加密的
LM和NTLM都是使用hash算法加密的,但是LM是将明文转为16字节固定长度的hash值,而NTLM Hash使用更复杂的算法和更长的哈希值来存储密码,通常是32个字符的长度。
LM:
1. 将明文口令转换为其大写形式
2. 将字符串大写后转换为16进制字符串
3.密码不足14字节要求用0补全
4.将编码分成2组7字节的数据
5.将每一组7字节的十六进制转换为二进制,每7bit一组末尾加0,再转换成十六进制组成得到2组8字节的编码
6.将得到的两组8字节编码,分别作为DES加密key为魔术字符串“KGS!@#$% ”进行加密
使用两组8字节编码分别作为密钥key去加密明文(KGS!@#$%转为16进制),得到密文
7.将两组DES加密后的编码拼接得到结果
NTLM Hash:
将UltraEdit得到十六进制ASCII转Unicode,获得Unicode字符串
开头的FF FE用于标识此文本文件为Unicode编码
获取的十六进制Unicode字符串进行标准MD4单向哈希加密,无论数据源有多少字节,MD4固定产生128-bit的哈希值,产生的哈希值就是最后的NTLM Hash。
Windows登录课后思考
于 2024-04-26 22:29:43 首次发布