# PPL

随着凭证导出被攻击者的滥用，微软也开发出了相应的防御措施，例如 PPL。对于 IT 管理员，PPL 非常容易部署，是一个 quick-win。虽然 PPL 是可以被绕过的，但还是给导出凭证的操作增添了额外的难度。我们之前说过，Windows 有 4 种完整度等级，而 PPL，则是更高级的，这意味着即便是 SYSTEM 权限也无法访问被 PPL 保护的进程，而 lsass 支持 PPL保护。我们可以在注册表的如下位置添加 RunAsPPL 从而启用 PPL。

[![image.png](http://raven-medicine.com/uploads/images/gallery/2022-10/scaled-1680-/zaxjDAkfkMnVD0nv-image.png)](http://raven-medicine.com/uploads/images/gallery/2022-10/zaxjDAkfkMnVD0nv-image.png)

对于启用了 PPL 的主机 **SRV01**，无论是用 nanodump 还是 mimikatz 或其他类似工具，我们都无法正常导出 lsass 进程。nanodump 的报错告诉我们，无法获得对 lsass.exe 进程的句柄，即便我们已经是 SYSTEM 特权了。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-05/scaled-1680-/6ezkr0wBGhVGQL6t-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-05/6ezkr0wBGhVGQL6t-image.png)

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-05/scaled-1680-/PWgt1m95WL3GxrgV-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-05/PWgt1m95WL3GxrgV-image.png)

PID 748 正是 **lsass.exe**

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-05/scaled-1680-/tZ40LlRfNcMpHLoQ-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-05/tZ40LlRfNcMpHLoQ-image.png)

那么，我们可以怎么绕过 PPL 的限制呢？具备管理员权限后，我们当然可以删除 RunAsPPL 的注册表然后重启，但这样对于提取 lsass.exe 中的凭证也无意义可言了。既然 PPL 是驱动级的，那么我们自然可以通过加载签名的驱动来反制。但是，编写这样的驱动并为其签名，并不是一个门槛很低的选项。因此，我们可以去加载存在任意代码执行的脆弱驱动，例如 **RTCore64.sys**。该驱动存在 **CVE-2019-16098** 的漏洞，因为允许用户读写任意内存、IO端口等，因此会导致高特权下的代码执行，进而可被用于绕过微软的驱动签名 (默认情况下只允许加载签名的驱动) 策略部署恶意代码。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-05/scaled-1680-/qMaGkBS2UIQTWG40-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-05/qMaGkBS2UIQTWG40-image.png)

类似的驱动还有 **PROCEXP152.SYS**

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-05/scaled-1680-/k56RwP9qjBnYG5i3-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-05/k56RwP9qjBnYG5i3-image.png)

因此，我们可以通过加载这些脆弱的且具有签名的驱动，实现内核级的代码执行而绕过 PPL。PPLControl ([https://github.com/itm4n/PPLcontrol](https://github.com/itm4n/PPLcontrol)) 正是利用了脆弱的驱动从而实现 PPL 的绕过。我们需要得到 RTCore64.sys 这个驱动文件，以及编译后的 PPLcontrol.exe。

一并上传到 Srv01 上，加载驱动并运行：

```powershell
sc.exe create RTCore64 type= kernel start= auto binPath= C:\windows\tasks\RTCore64.sys DisplayName= "control"
net start RTCore64
```

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-05/scaled-1680-/eHbHZkcG1eA3jlTr-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-05/eHbHZkcG1eA3jlTr-image.png)

列举受保护的进程，我们发现**本地安全机构**也在其中。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-05/scaled-1680-/HwhfvguvIelUwHIl-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-05/HwhfvguvIelUwHIl-image.png)

记录下其 PID，然后将 PPL 保护给脱离。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-05/scaled-1680-/qbQzDS1ZJXxaqOo4-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-05/qbQzDS1ZJXxaqOo4-image.png)

这样，我们就能导出 lsass.exe 中的凭证了。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-05/scaled-1680-/A82qEKwatb53rbQu-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-05/A82qEKwatb53rbQu-image.png)

恢复 LSA 的 PPL 保护，这样我们再次不能从 lsass.exe 中导出凭证了。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-05/scaled-1680-/QLBk4nOTBghAXHI7-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-05/QLBk4nOTBghAXHI7-image.png)

实际上，我们甚至可以从用户态绕过 PPL。PPLDump ([https://github.com/itm4n/PPLdump](https://github.com/itm4n/PPLdump)) 就是这么一个工具。它利用了一个技巧，使得系统创建一个新的任意的**已知 DLL**。PPL 并不检查**已知 DLL 的数字签名**，因此从而进行了 DLL 劫持攻击并在 PPL 中实现代码执行。该工具随着去年的一次更新补丁而失效，但遇到不那么新的系统是可以尝试的。PPLmedic ([https://github.com/itm4n/PPLmedic](https://github.com/itm4n/PPLmedic)) 也是一款在用户态就能绕过 PPL 的工具。nanodump 都集成了这 2 个工具的功能，因此我们并不需要单独去下载和编译 它们了。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-05/scaled-1680-/xVwNhcOJTSkWd2zi-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-05/xVwNhcOJTSkWd2zi-image.png)

在 Srv01 上，PPLdump 的方法成功了，而 PPLmedic 却失败了。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-05/scaled-1680-/kfbk0gCicfIZwTkv-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-05/kfbk0gCicfIZwTkv-image.png)