
1. 绕过Lsass PPL保护的核心原理在Windows安全机制中Lsass进程Local Security Authority Subsystem Service负责处理系统认证和凭据管理。自Windows 10 1809和Server 2019起微软引入了PPLProtected Process Light保护机制将Lsass标记为受保护进程防止非授权访问。这种保护使得传统的内存转储工具如Mimikatz无法直接读取Lsass进程内存。PPL的实现基于内核级的进程保护标志PS_PROTECTED_SIGNER类型通过以下关键组件协同工作内核对象管理器Object Manager验证进程句柄请求代码完整性检查CI.dll验证加载的驱动签名受保护进程限制策略通过EPROCESS结构中的Protection字段实现2. 已知的绕过技术路线分析2.1 利用已签名驱动漏洞某些微软签名的驱动程序如DBUtil存在漏洞允许任意内存读写。通过加载这些合法驱动可以绕过PPL对内存访问的限制。典型步骤包括检查目标系统已安装的驱动列表driverquery /v识别具有高权限且存在漏洞的驱动通过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在特定条件下仍可转储Lsassprocdump.exe -accepteula -ma lsass.exe lsass.dmp关键在于需要管理员权限必须使用微软签名的二进制文件某些AV/EDR会监控此类操作3. 实战操作与检测规避3.1 基于RPC的凭据提取通过LSASS暴露的RPC接口lsarpc直接请求凭据数据避免触碰受保护内存使用RpcView工具分析LSASS的RPC接口构造合法的RPC绑定句柄调用MSV1_0子系统的导出函数3.2 内存补丁技术通过修改LSASS进程内存中的关键验证逻辑定位NtReadVirtualMemory/NtWriteVirtualMemory的调用点修补PPL验证相关的内核函数如PsIsProtectedProcess需要提前禁用PatchGuard仅适用于特定系统版本3.3 检测规避要点使用合法的微软工具链如PowerShell DSC通过ETWEvent Tracing for Windows绕过监控采用进程镂空Process Hollowing技术注入合法进程设置适当的进程参数欺骗检测$processInfo New-Object System.Diagnostics.ProcessStartInfo $processInfo.FileName valid_utility.exe $processInfo.Arguments /legit_param $processInfo.CreateNoWindow $true4. 防御对抗建议4.1 企业防护措施启用Credential Guard需UEFI支持配置LSA保护策略[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] RunAsPPLdword:00000001部署具备内核态检测能力的EDR方案4.2 攻击痕迹检测监控以下异常事件非微软签名的驱动加载对LSASS进程的异常句柄请求已知漏洞利用工具的特征哈希异常的RPC绑定尝试5. 最新对抗趋势随着Windows 11 22H2的发布微软进一步强化了内核模式代码完整性KMCI验证受保护进程的签名链验证动态证书撤销检查当前有效的技术路线转向硬件虚拟化辅助的攻防如HVCI绕过基于VBSVirtualization-Based Security的漏洞利用供应链攻击获取合法签名在实际测试中我们发现Windows Defender对以下行为特别敏感短时间内多次尝试打开Lsass句柄非常规的内存区域读写操作使用非微软签名的内存转储工具建议在测试环境中先验证技术可行性再考虑实际应用场景。不同Windows版本和补丁级别可能存在显著的行为差异。