关于这四个问题,做出理解:
1、windows登录的明文密码,存储过程是怎么样的,密文存在哪个文件下,该文件是否可以打开,并且查看到密文?
在Windows系统中,密码哈希通常存储在SAM数据库中。这个数据库位于Windows系统目录下的(System32\config\SAM)文件中。但是SAM文件是受保护的系统文件,通常情况下无法直接访问或打开。
即使你能够访问SAM文件,哈希的形式也不是明文密码,而是经过哈希算法加密后的结果,不可能直接查看到原始密码。因此,除非你有足够的权限和专业知识来访问和解密这些哈希,否则无法从SAM文件中获取到明文密码。(有些工具是可以读取SAM文件内容的,例如:Mimikatz)
2、我们通过hashdump 抓取出 所有用户的密文,分为两个模块,为什么? 这两个模块分别都代表什么?
通过hashdump抓取出所有用户的密文,分为两个模块,分别是 LM Hash 和 NT Hash。 LM Hash全称是LAN Manager Hash,是Windows最早用的加密算法,由IBM设计,使用硬编码密钥的DES,且存在缺陷。
为了解决LM Hash的安全问题,从Vista开始的版本都使用NTLM Hash,NTLM Hash基于MD4加密算法进行加密的。
3、为什么第一个模块 永远是一样的aad3
LM Hash 加密算法存在一些漏洞,它使用的是分组的DES,密码长度最大只能为14个字符,如果密码强度是小于7位,那么第二个分组会用0来在后面补全,加密后的结果就会是固定的 aad3b435b51404ee
4、这两个模块的加密算法有什么不同,如何加密的?
LM Hash的加密:
- 用户的密码转换为大写,密码转换为16进制字符串,不足14字节将会用0来在后面补全。
- 密码的16进制字符串被分成两个7byte部分。每部分转换成比特流,并且长度位56bit,长度不足使用0在左边补齐长度
- 再分7bit为一组,每组末尾加0,再组成一组
- 上步骤得到的二组,分别作为key 为 "KGS!@#$%"进行DES加密。
- 将加密后的两组拼接在一起,得到最终LM HASH值。
NTLM Hash 的加密:
- 先将用户密码转换为十六进制格式。
- 将十六进制格式的密码进行Unicode编码。
- 使用MD4摘要算法对Unicode编码数据进行Hash计算