思考题的解释

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

1. Windows登录的明文密码存储过程及密文存储文件

Windows操作系统并不以明文形式存储用户密码。取而代之,Windows使用加密散列函数(例如MD4、SHA-1)将密码转换为哈希值,并将其存储在安全位置。

- **明文密码处理过程**:
  1. 用户在登录界面输入密码。
  2. Windows将明文密码通过加密散列函数处理生成哈希值。
  3. 哈希值与存储在系统中的哈希值进行比较,以验证用户身份。

密文存储位置:
  Windows将密码的哈希值存储在名为`Security Account Manager (SAM)`的数据文件中,该文件通常位于以下路径:
  ```
  C:\Windows\System32\config\SAM
  ```
  为了增强安全性,SAM文件还会与系统的`SYSTEM`文件中的密钥数据结合使用。`SYSTEM`文件位于以下路径:
  ```
  C:\Windows\System32\config\SYSTEM
  ```

访问和查看密文:
 这些文件默认情况下是被系统锁定的,无法直接打开查看。但有些工具(如`pwdump`、`hashdump`等)可以提取和显示其中存储的哈希值。然而,提取出的数据是哈希值而不是明文密码

. 通过`hashdump`抓取出的用户密文的两个模块

使用`hashdump`工具时,可以看到每个用户的哈希值通常分为两个部分,如下所示:
```
用户名:RID:LM哈希:NT哈希
```
这两个模块分别代表:

LM哈希(LAN Manager Hash):这是Windows早期版本使用的一种密码哈希算法,具有较弱的安全性。LM哈希分为两部分存储,每部分是16字节的哈希值。
- **NT哈希(NT LAN Manager Hash)**:这是Windows NT及以后版本使用的密码哈希算法,基于MD4,安全性较高。NT哈希是一个32字节的哈希值。

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

在现代Windows系统中,如果用户密码长度超过14个字符或者不包含可通过LM哈希计算的部分,则LM哈希为空。为了表示空LM哈希,Windows会使用固定值`aad3b435b51404eeaad3b435b51404ee`。因此,第一个模块总是以`aad3`开头。
 

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

LM哈希加密算法:
LM哈希基于DES(Data Encryption Standard)。
  加密过程:
    1. 用户密码转换为大写字母,并截断或填充到14个字符。
    2. 将14字符的密码分成两个7字符的块。
    3. 每个块用作DES加密的密钥,作用于常量字符串`KGS!@#$%`,生成两个8字节的哈希值。

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

 NT哈希加密算法
  - NT哈希基于MD4。
  - 加密过程:
    1. 用户密码以UTF-16LE编码。
    2. 对编码后的密码进行MD4哈希计算,生成16字节的哈希值。
    3. 将16字节的哈希值作为NT哈希。

这两种哈希算法的不同之处在于LM哈希使用较旧的DES算法,且密码处理方式较弱,容易被破解。而NT哈希使用更安全的MD4算法,且直接作用于原始密码的UTF-16LE编码。现代系统中,LM哈希逐渐被弃用,仅保留NT哈希。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值