关于抓取Windows登录密码&查看密文 思考题

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

        在Windows操作系统中,用户登录的密码并不会以明文形式存储。相反,系统会使用一种称为“散列”(Hashing)的加密技术来处理密码。当你设置或更改密码时,Windows会将你的密码通过加密算法(如NTLM或SHA)转换成一个散列值,并将这个散列值存储在系统的一个安全数据库中,通常是%SystemRoot%\system32\config\SAM文件中,这是Windows注册表的一部分。

         SAM文件是Windows系统中存储本地用户账户密码散列值的地方。这个文件在系统启动时被锁定,防止未经授权的访问。正常情况下,SAM文件是不能被打开或直接查看内容的,因为Windows的安全机制会阻止对它的直接访问。

        要查看SAM文件中的散列值,需要具备相应的权限,而且通常需要使用专门的工具,如mimikatz或密码破解工具,这些工具可以在系统启动时或者通过某些安全漏洞来访问SAM文件。然而,即使是这些工具,也无法直接获取明文密码,它们只能获取到密码的散列值。

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

        看上图可以发现 windows hash由二部分组成,分别是LM 散列、NTLM 散列

        这两个散列类型如下:

  1. NTLM散列:这是Windows早期版本中使用的散列类型,它是基于LAN Manager(LANMAN)散列算法的改进版本。NTLM散列通常用于网络认证,并且在Windows系统中仍然被广泛使用。

  2. LM散列:这是较早的密码散列算法,由于安全性较差,微软从Windows Vista和Windows Server 2008开始默认禁用了LM散列。因此,在现代系统上,你可能会看到一个固定的散列值,如aad3b435b51404eeaad3b435b51404ee,这表示LM散列被禁用或者用户没有设置密码。

        注意,即使LM散列在现代Windows系统中已被弃用,但为了保持兼容性,它仍然可能会出现在密码散列的输出中。然而,实际用于认证的是NTLM散列或更新的认证协议,如Kerberos。

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

        因为在Windows系统的密码散列中,aad3是一个特殊的标记,通常与b4b4b429这个固定的散列值一起出现。这实际上代表了一个空的密码散列,或者说是没有设置密码的账户。在Windows的用户账户数据库中,每个账户都有一个与之关联的密码散列,即使是那些没有密码的账户。                 aad3通常出现在LM散列的部分,而b4b4b429是相应的散列值。LM散列是较旧的LAN Manager散列算法,它不支持空密码,因此在Windows中,为了保持兼容性,即使账户没有密码,也会有一个固定的LM散列值表示空密码。

        在提取密码散列时,第一个模块通常代表LM散列,而第二个模块代表NTLM散列。由于LM散列已经不再安全,并且从Windows Vista和Windows Server 2008开始默认禁用,你通常会看到aad3b4b4b429这一对值,表明账户可能没有设置密码,或者系统已经禁用了LM散列。

例如,下面散列输出:

user1:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

        这里aad3b435b51404eeaad3b435b51404ee是LM散列,而31d6cfe0d16ae931b73c59d7e0c089c0是NTLM散列。LM散列部分是固定的,表明该账户没有LM散列(可能是由于禁用或空密码),而NTLM散列部分是实际的密码散列。

        注意,即使LM散列被禁用,某些工具可能仍然会显示这个固定的aad3标记,以保持输出格式的一致性。

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

        在Windows操作系统中,用户密码的加密主要涉及两种散列算法:

                                   LAN Manager(LM)散列、NT LAN Manager(NTLM)散列。

        这两种算法在历史上被用于不同的目的,但随着时间的推移,LM散列因为安全性问题已经逐渐被淘汰,而NTLM散列则得到了改进和更新。

LAN Manager(LM)散列

        LM散列是早期Windows网络环境中使用的一种密码散列算法。它的设计基于较弱的加密标准,并且容易受到暴力破解攻击。

LM散列的生成过程如下:

  1. 密码转换:将用户密码转换为大写。

  2. 密码分割:如果密码长度超过14个字符,则截断为14个字符;如果少于14个字符,则用空格填充至14个字符。

  3. 散列生成:将14个字符的密码分为两个7字符的部分,并对每个部分进行DES加密。

  4. 散列合并:将两个DES加密的结果合并,形成最终的LM散列。 由于LM散列的这些弱点,从Windows Vista和Windows Server 2008开始,微软默认禁用了LM散列的支持。

NT LAN Manager(NTLM)散列

        NTLM散列是LM散列的后继者,提供了更强的安全性。

NTLM散列的生成过程如下:

  1. 密码转换:将用户密码转换为十六进制表示形式。

  2. 散列生成:使用MD4哈希算法对密码的十六进制表示进行散列处理。

  3. 结果存储:生成的散列值被存储在SAM数据库中。

        NTLM散列在Windows中得到了广泛的使用,并且在后续的Windows版本中,微软还引入了NTLMv2和Kerberos等更安全的认证协议。

安全性比较

        LM散列由于设计上的缺陷,如对密码长度和处理方式的限制,以及使用较弱的DES加密,使得它非常容易受到字典攻击和暴力破解。相比,NTLM散列提供了更好的安全性,尽管它也面临着彩虹表攻击和其他形式的暴力破解尝试。

现代加密实践

        随着安全威胁的发展,微软不断改进其认证协议。例如,Windows 10引入了Credential Guard,这是一项利用虚拟化技术来保护凭据的功能,可以防止密码散列被提取和破解。此外,Windows Hello支持使用生物识别技术(如指纹和面部识别)和PIN码,这些都有助于提高认证的安全性。

         总之,LM和NTLM散列代表了Windows密码加密技术的两个不同阶段,NTLM提供了比LM更好的安全性,但随着技术的发展,微软推荐使用更现代的认证方法来保护用户凭据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值