思考:
1. windows登录的明文密码,存储过程是怎么样的,密文存在哪个文件下,该文件是否可以打开,并且查看到密文
Windows登录的明文密码:是通过LSA(Local Security Authority)进行存储和加密的。
存储过程:用户输入密码后,密码会被传递给LSA,LSA会将密码进行加密然后保存在Windows注册表中的Security Accounts Manager数据库(SAM)中。
密文存储在:SAM数据库中的\SAM\SAM文件下,该文件通常位于C:\Windows\System32\config\SAM。SAM文件是系统级的文件,受到严格的权限限制,一般用户无法直接打开查看其中的内容。
虽然SAM文件存储的是密码的加密形式,但如果系统被攻破,黑客可能通过一些工具将密文解密成明文。因此,保护好系统的SAM文件是非常重要的。
2. 我们通过hashdump 抓取出 所有用户的密文,分为两个模块,为什么? 这两个模块分别都代表什么
通过hashdump 抓取出所有用户的密文可以分为两个模块是因为Windows系统在存储用户密码时会使用两种不同的加密算法:NTLM和LM(LAN Manager)。这两个不同的模块分别代表了使用这两种加密算法加密过的用户密码。
NTLM模块:NTLM(NT LAN Manager)是Windows系统中常用的一种加密算法,用于加密密码。NTLM模块中存储的是使用NTLM算法加密后的用户密码密文。
LM模块:LM(LAN Manager)是Windows早期版本中使用的一种加密算法,已经逐渐被NTLM所取代。LM模块中存储的是使用LM算法加密后的用户密码密文。
因此,通过hashdump 抓取出所有用户的密文时会分为这两个模块,分别代表了使用NTLM和LM算法加密过的用户密码。
3. 为什么第一个模块 永远是一样的aad3
第一个模块是一样的"aad3"是因为在Windows系统中,如果用户的密码为空或者密码长度不足14个字符,系统会自动生成一个固定的"aad3"值进行存储。这是由于LM算法要求密码长度必须是14个字符,如果密码不足14个字符,系统就会用"aad3"来填充。
因此,当通过hashdump 抓取用户密码时,如果用户的密码为空或者长度不足14个字符,那么对应的LM模块中的密文就会是固定的"aad3"。
4. 这两个模块的加密算法有什么不同,如何加密的
NTLM(NT LAN Manager)算法是现代化的加密方法,使用更安全的单向哈希函数(如MD4或MD5)来存储和验证用户密码。
LM(LAN Manager)算法是早期使用的较为简单的DES算法,对密码进行分割并分别进行加密。
具体来说,NTLM算法会对用户密码进行单向哈希后,再进行加盐等操作,得到密文存储在系统中。而LM算法会将用户密码分成7个字符一个块,补齐为14个字符,然后分别进行DES加密生成两个7字节的密钥块,最后将这两个密钥块合并得到最终的密文。
总的来说,NTLM算法更加安全,在现代系统中更为常用,而LM算法由于存在安全性弱点,逐渐被废弃。