目录
1. windows登录的明文密码,存储过程是怎么样的,密文存在哪个文件下,该文件是否可以打开,并且查看到密文
2. 我们通过hashdump 抓取出 所有用户的密文,分为两个模块,为什么? 这两个模块分别都代表什么
3. 为什么第一个模块 永远是一样的aad3
4. 这两个模块的加密算法有什么不同,如何加密的
1.
在Windows中密码通常不会以明文形式存储。系统会通过保存密码的哈希值来确保安全性。
这个过程涉及到NTLM或Kerberos身份认证协议,它们负责加密存储密码。
以下是存储过程的简要说明:
- 用户尝试登录时,客户端会对密码进行哈希处理并缓存密码的哈希值,同时丢弃实际的明文密码。
- 客户端将用户名发送到服务器,发起认证请求。
- 服务器生成一个随机数(挑战码),并传回客户端。
- 客户端使用缓存中的密码哈希对挑战码进行加密,生成响应(Net-NTLM Hash),然后将挑战码、响应及用户名一并传给服务器。
- 服务器将这些信息转发给域控制器(DC)。
- DC根据用户名找到对应的NTLM Hash,并用它和挑战码进行加密。
- DC将加密后的哈希值与客户端传来的响应比较,如果相同,则认证成功。
windows的密码存储在sam中
完整目录是:c:/Windows/System32/config/SAM
一般无法直接查看 常使用注册表进行查看 win+r
\HKEY_LOCAL_MACHINE\SAM\
reg save HKLM\SAM sam.hiv
reg save HKLM\SYSTEM system.hiv
reg save HKLM\SECURITY security.hiv
命令下载注册表中的项目 并用cain查看该条目
2. 我们通过hashdump 抓取出 所有用户的密文,分为两个模块,为什么? 这两个模块分别都代表什么
可以看到 windows hash由二部分组成,分别是LM HASH和NTLM HASH
这是对同一个密码的两种不同的加密方式。
组成为:username:RID:LM-HASH值:NTLM-HASH值
3. 为什么第一个模块 永远是一样的aad3
aad3是由于Windows禁用了LM-hash 或者为空时
LM Hash值为AAD3B435B51404EEAAD3B435B51404EE
4. 这两个模块的加密算法有什么不同,如何加密的
LM Hash的生成过程:
将明文密码转换为大写。
将大写密码转换为16进制字符串。
如果密码不足14字节,使用0补全至14字节。
将14字节的密码分成两组7字节数据。
将每组数据转换为64位二进制,每7位后面加0,再转换回16进制。
使用DES算法对每组数据进行加密,密钥为特定的字符串。
将两组加密后的数据拼接,得到LM Hash值。NTLM Hash的生成过程:
将明文密码转换为Unicode编码。
使用MD4算法对Unicode编码后的密码进行加密。
得到的128位哈希值即为NTLM Hash值。LM hash由于des算法的不再安全 也变得不安全