绕过Windows 10 PPL保护(Protected Process Light)!

admin 2022年4月16日16:12:00评论758 views字数 1163阅读3分52秒阅读模式

简介

PPL全称,Protected Process Light ,是从windows8.1开始引入的一种安全机制,能保护关键进程不被恶意代码入侵、篡改、和利用。换句话说就是系统给进程分了个级别,受PPL保护的进程权限更高,低级别的不能打开高级别的进程。

开启PPL

在注册表HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa
添加RunAsPPL=dword:00000001
重启就可以开启了PPL保护。而原先DEBUG权限令牌(SeDebug)就能任意的读取进程虚拟内存、远程注入代码、结束进程、调试、拷贝描述符、复制句柄、等操作。当我们开启PPL后,Mimikatz就无法从lsass抓到密码,需要绕过,因为它只有SeDebug权限。

绕过方式

要绕过LSA保护,可以采取下列方法:

1.删除RunAsPPL注册表项并重新启动系统
2.通过修改EPROCESS内核结构,在LSASS进程上禁用PPL标志
3.直接读取LSASS过程存储器的内容,而不使用打开的过程函数

后两种方法需要具有读取和写入内核内存的能力。实现此目的最简单的方法是通过加载驱动程序,在这里我们使用MSI Afterburner的RTCore64.sys驱动程序。这个驱动是一个存在任意读写漏洞的驱动程序。

当我们加载一个漏洞驱动后,我们可以使用第二种方法修改EPROCESS内核结构来关闭PPL。为此,我们需要找到LSASS EPROCESS结构的地址,并将5个值(SignatureLevel,SectionSignatureLevel,Type,Audit和Signer)修改为零。当上述值修改为零后即可以绕过PPL保护。

在这里我们利用EnumDeviceDrivers函数找到内核基地址。这可以用来定位PsInitialSystemProcess,它指向系统进程的EPROCESS结构。由于内核将进程存储在链接列表中,因此EPROCESS结构的ActiveProcessLinks成员可用于迭代链接列表并查找LSASS。

绕过Windows 10 PPL保护(Protected Process Light)!

如果我们看一下EPROCESS结构(请参见下面的图片),我们可以看到我们需要修改的5个字段通常都按连续4个字节对齐。这使我们可以在单个4字节写入中修改EPROCESS结构,如下所示:
“WriteMemoryPrimitive(设备,4,CurrentProcessAddress + SignatureLevelOffset,0x00);

绕过Windows 10 PPL保护(Protected Process Light)!

到此为止,我们已经成功删除PPL保护,所有转储LSASS的方法都可以使用,例如MimiKatz,MiniDumpWriteDump API调用等。


原文始发于微信公众号(RJ45实验室):绕过Windows 10 PPL保护(Protected Process Light)!

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月16日16:12:00
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   绕过Windows 10 PPL保护(Protected Process Light)!http://cn-sec.com/archives/918388.html

发表评论

匿名网友 填写信息