吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 12280|回复: 54
收起左侧

[调试逆向] 利用procexp驱动突破PPL限制

  [复制链接]
xjun 发表于 2021-11-17 18:05
本帖最后由 xjun 于 2021-11-18 18:16 编辑

一、什么是PPL?

PPL全称,Protected Process Light ,是从windows8.1开始引入的一种安全机制,他能保护关键进程不被恶意代码入侵、篡改、和利用。换句话说就是系统给进程分了个级别,受PPL保护的进程权限更高,低级别的不能打开高级别的进程。当进程签名具有(受保护进程轻型验证 (1.3.6.1.4.1.311.10.3.22)),系统则会加载此保护。

1.jpg

二、PPL对我们有什么影响?

PPL几乎把windows系统的关键进程都给保护起来了,你不能像以前那样拿到个DEBUG权限令牌就能任意的读取进程虚拟内存、远程注入代码、结束进程、调试、拷贝描述符、复制句柄、等操作。像我们常用的mimikatz它从lsass.exe读不到windows的凭据了,无法从csrss.exe复制句柄去干其他事情了,那么我们在渗透测试、红蓝对抗等业务场景中常常受阻。

注:默认lsass是没有开启PPL保护的,需要手动开启,也不知道微软为啥要这么做。

2.png

三、procexp驱动分析

因为从事安全相关工作,经常使用到procexp这个软件,它能够读取所有服务进程包括带PPL进程的信息,故对此好奇,便分析了一波。

通过分析得出,它调用了驱动的一个打开进程API功能,如下图

3.png

为啥驱动调用ZwOpenProcess就能绕过这么多限制,拿到权限,这跟ring3层直接调用ZwOpenProcess调用过来的有何区别?

因为ZwOpenProcess在驱动层它会把 PreviousMode 设置成了KernelMode,而ring3调ZwOpenProcess 通过syscall来到内核的PreviousMode 还是UserMode。

4.jpg

5.jpg

四、突破PPL限制代码利用

OK,原理一切清楚之后我们来写利用,从procexp创建的设备权限来看,我们进程还必须是管理员权限才能打开此设备,这个时候加个bypass UAC 就能一套带走了,嘻...嘻嘻嘻!!!

6.jpg

首先定义 设备名和控制码

7.jpg

实现代码

8.jpg

测试代码和结果:

9.jpg

参考:

https://www.crowdstrike.com/blog/evolution-protected-processes-part-1-pass-hash-mitigations-windows-81/

https://support.kaspersky.com/13905

https://docs.microsoft.com/en-us/windows-server/security/credentials-protection-and-management/configuring-additional-lsa-protection




poc.zip (130.76 KB, 下载次数: 310)

测试方法:
1.手动加载procexp驱动 (带微软签名)
2.编译poc程序,默认打开csrss.exe, 注意64位驱动编译64位程序
3.使用bypass uac程序启动它。

免费评分

参与人数 23吾爱币 +27 热心值 +21 收起 理由
yh13100157396 + 1 谢谢@Thanks!
junjia215 + 1 + 1 用心讨论,共获提升!
levelhan + 1 + 1 热心回复!
小朋友呢 + 2 + 1 热心回复!
wangxinwei121 + 1 谢谢@Thanks!
fengbolee + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
chenjingyes + 1 + 1 谢谢@Thanks!
Stoneone + 1 + 1 谢谢@Thanks!
qiwenchun + 1 + 1 热心回复!
Lixinist + 2 + 1 jun哥6啊
FJie + 1 我很赞同!
soyiC + 1 + 1 用心讨论,共获提升!
gaosld + 1 + 1 热心回复!
pojieit + 1 + 1 用心讨论,共获提升!
sam喵喵 + 1 谢谢@Thanks!
arryboom + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
zhczf + 1 + 1 我很赞同!
ytfrdfiw + 1 + 1 谢谢@Thanks!
q99 + 1 + 1 谢谢@Thanks!
舒默哦 + 2 + 1 谢谢@Thanks!
HOWMP + 1 + 1 谢谢@Thanks!
yixi + 1 + 1 谢谢@Thanks!
weakptr + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

chuang2015 发表于 2021-12-1 09:41
yunruifuzhu 发表于 2021-11-24 17:42
试了下,用这个获取的句柄 然后再杀死进程,比普通权限要高,能干掉火绒,但360丝毫不动。是360安全做的很 ...

不是  360有个进程回调  你用PChunter 把回调摘了  就能结束360了  这种最基本的技术火绒不可能不会,侧重点不一样
oxygen1a1 发表于 2022-8-14 08:52
xjun师傅,我想问您那个XANTIDEBUG那个,您的源码我都看完了,我不理解那个内核二次内存覆盖的bug是什么意思,为什么要计算一遍crc32?
Dyingchen 发表于 2021-11-18 17:37
看不懂 根本看不懂 不过还是得说一句xjun师傅nb
jjr12138 发表于 2021-11-19 11:18
xjun 师傅new bee

点评

new bee 是菜鸡的意思  发表于 2021-11-24 20:05
mofa005 发表于 2021-11-19 11:52
写的挺好的,就是我看不懂。
yushui69 发表于 2021-11-19 12:51
受益匪浅,感谢分享
pizazzboy 发表于 2021-11-19 15:39
还是老大NB,给你点赞!
hongshen233 发表于 2021-11-19 18:35
看不懂 根本看不懂 不过还是得说一句xjun师傅nb。加油。我会一直支持你
ytfrdfiw 发表于 2021-11-19 20:00
感谢分享。
bul3 发表于 2021-11-19 22:20
感谢大佬分享
头像被屏蔽
sdkyzgh 发表于 2021-11-20 02:22
procexp、ProcessExplorer偶尔用用,谢谢分享了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-22 10:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表