ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Windows Lsass PPL保护机制与绕过技术详解

Windows Lsass PPL保护机制与绕过技术详解

1. 绕过Lsass PPL保护的核心原理

在Windows安全机制中,Lsass进程(Local Security Authority Subsystem Service)负责处理系统认证和凭据管理。自Windows 10 1809和Server 2019起,微软引入了PPL(Protected Process Light)保护机制,将Lsass标记为受保护进程,防止非授权访问。这种保护使得传统的内存转储工具(如Mimikatz)无法直接读取Lsass进程内存。

PPL的实现基于内核级的进程保护标志(PS_PROTECTED_SIGNER类型),通过以下关键组件协同工作:

  • 内核对象管理器(Object Manager)验证进程句柄请求
  • 代码完整性检查(CI.dll)验证加载的驱动签名
  • 受保护进程限制策略(通过EPROCESS结构中的Protection字段实现)

2. 已知的绕过技术路线分析

2.1 利用已签名驱动漏洞

某些微软签名的驱动程序(如DBUtil)存在漏洞允许任意内存读写。通过加载这些合法驱动,可以绕过PPL对内存访问的限制。典型步骤包括:

  1. 检查目标系统已安装的驱动列表(driverquery /v)
  2. 识别具有高权限且存在漏洞的驱动
  3. 通过DeviceIoControl发送特定IOCTL实现内存操作

注意:微软会定期发布驱动黑名单更新,此方法在较新系统可能失效

2.2 进程注入技术

通过将代码注入到具有PPL保护权限的进程中(如wininit.exe),可以继承其保护级别:

// 伪代码示例 HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, wininitPID); LPVOID pMem = VirtualAllocEx(hProcess, NULL, payloadSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE); WriteProcessMemory(hProcess, pMem, payload, payloadSize, NULL); CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)pMem, NULL, 0, NULL);

2.3 利用LSASS转储API

微软官方提供的诊断工具(如procdump)在特定条件下仍可转储Lsass:

procdump.exe -accepteula -ma lsass.exe lsass.dmp

关键在于:

  • 需要管理员权限
  • 必须使用微软签名的二进制文件
  • 某些AV/EDR会监控此类操作

3. 实战操作与检测规避

3.1 基于RPC的凭据提取

通过LSASS暴露的RPC接口(lsarpc)直接请求凭据数据,避免触碰受保护内存:

  1. 使用RpcView工具分析LSASS的RPC接口
  2. 构造合法的RPC绑定句柄
  3. 调用MSV1_0子系统的导出函数

3.2 内存补丁技术

通过修改LSASS进程内存中的关键验证逻辑:

  1. 定位NtReadVirtualMemory/NtWriteVirtualMemory的调用点
  2. 修补PPL验证相关的内核函数(如PsIsProtectedProcess)
  3. 需要提前禁用PatchGuard(仅适用于特定系统版本)

3.3 检测规避要点

  • 使用合法的微软工具链(如PowerShell DSC)
  • 通过ETW(Event Tracing for Windows)绕过监控
  • 采用进程镂空(Process Hollowing)技术注入合法进程
  • 设置适当的进程参数欺骗检测:
$processInfo = New-Object System.Diagnostics.ProcessStartInfo $processInfo.FileName = "valid_utility.exe" $processInfo.Arguments = "/legit_param" $processInfo.CreateNoWindow = $true

4. 防御对抗建议

4.1 企业防护措施

  • 启用Credential Guard(需UEFI支持)
  • 配置LSA保护策略:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] "RunAsPPL"=dword:00000001
  • 部署具备内核态检测能力的EDR方案

4.2 攻击痕迹检测

监控以下异常事件:

  • 非微软签名的驱动加载
  • 对LSASS进程的异常句柄请求
  • 已知漏洞利用工具的特征哈希
  • 异常的RPC绑定尝试

5. 最新对抗趋势

随着Windows 11 22H2的发布,微软进一步强化了:

  • 内核模式代码完整性(KMCI)验证
  • 受保护进程的签名链验证
  • 动态证书撤销检查

当前有效的技术路线转向:

  • 硬件虚拟化辅助的攻防(如HVCI绕过)
  • 基于VBS(Virtualization-Based Security)的漏洞利用
  • 供应链攻击获取合法签名

在实际测试中,我们发现Windows Defender对以下行为特别敏感:

  • 短时间内多次尝试打开Lsass句柄
  • 非常规的内存区域读写操作
  • 使用非微软签名的内存转储工具

建议在测试环境中先验证技术可行性,再考虑实际应用场景。不同Windows版本和补丁级别可能存在显著的行为差异。

返回列表