安全作业-1

发布于:2024-04-28 ⋅ 阅读:(26) ⋅ 点赞:(0)

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

用户在登录界面输入用户名和密码。Windows登录进程(winlogon.exe)接收用户的输入,并准备进行身份验证。Lsass处理认证:本地安全授权子系统服务(lsass.exe)接收由winlogon.exe传来的用户凭据。这个进程负责处理Windows的安全机制,包括用户的身份验证和密码管理。Lsass将用户输入的明文密码通过NT LAN Manager (NTLM) Hash算法转换为哈希值。系统将加密后的密码与存储在安全账户管理器(SAM)("C:\Windows\System32\config\SAM")数据库中的密码哈希进行比对。如果密码匹配,认证成功,用户得以登录系统。如果密码不匹配,则认证失败,用户无法登录。一旦用户通过身份验证,系统会根据用户的权限对其进行授权,确定用户可以访问的资源和执行的操作。根据认证和授权的结果,系统会给出相应的反馈,如允许登录或显示错误信息。


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

通过hashdump抓取的所有用户密文分为两个模块,分别是LMhashNThash。这两个模块代表的是不同类型的密码散列

hashdump工具在提取Windows系统中存储的用户密码散列时,会区分这两种不同的散列类型。原因在于这两种哈希代表了不同版本的Windows系统对用户密码的加密方式。

具体来说,LMhash全称为LAN Manager Hash,是早期Windows系统用来存储用户密码的散列类型。由于其安全性较差,新的Windows系统版本(从Vista和Server 2008开始)默认禁用了LMhash,转而使用更安全的加密算法。而NThash则代表Net NTLM认证协议中使用的密码散列,是目前Windows系统中用于本地认证的标准散列类型。


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

第一个模块永远是一样的aad3是因为这通常意味着LM Hash为空值或被禁用了

在Windows系统中,用户密码的加密方式经历了从LMhash到NThash的变迁。LMhash是早期Windows系统使用的加密方式,但由于其安全性较低,新的Windows系统版本中默认禁用了LMhash,转而使用更安全的NThash。当hashdump工具抓取到的密文显示第一个模块为aad3时,这通常表示该账户没有设置LMhash,或者LMhash已被系统禁用。这是因为:

  • LMhash的安全性问题:由于LMhash使用的是DES加密算法,而且密钥长度较短,这使得它容易被破解。因此,为了提高系统的安全性,微软在较新的Windows版本中默认禁用了LMhash,不再存储明文密码的LMhash值。
  • 系统的兼容性策略:即使在禁用了LMhash的情况下,为了确保与旧版Windows系统的兼容性,系统仍然会生成一个固定的LMhash值,即aad3。这样做的目的是为了避免在网络认证过程中出现兼容性问题。


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

这两个模块的加密算法指的是LMhash和NThash所采用的加密方式,它们在加密算法和加密过程上存在显著不同。

  1. LMhash(LAN Manager Hash)

    • 加密算法:LMhash使用的是DES(Data Encryption Standard)算法,这是一种较老的对称加密标准,使用56位的密钥进行加密。
    • 加密过程:在Windows操作系统的早期版本中,用户密码首先会被转换为Unicode编码,然后被拆分为两个7字符的部分。这两部分分别被加上一个固定的偏移量(例如,"KGS!@#$%"),然后每一部分都通过DES算法进行加密,最终拼接成一个16字节的LMhash值。
  2. NThash(NT LAN Manager Hash)

    • 加密算法:NThash使用的是基于MD4的加密算法,这是一种更快、更安全的哈希函数,它产生一个128位(16字节)的哈希值。
    • 加密过程:在Windows操作系统的新版本中,用户密码首先经过Unicode转换和大小写折叠(即将大写字母转换为小写字母)。然后,整个密码字符串被划分为每4个字符一组的子串,每个子串都通过MD4算法进行哈希计算。最后,所有子串的哈希值被拼接在一起,形成最终的NThash值。