关于突破 SESSION 0 隔离场景发现的一些问题
0x00 Tricks
0x01 用ZwCreateThreadEx
在 Windows 10 下直接通过管理员权限+SeDebugPrivilege启用。
0x02 用CreateRemoteThread
实际上发现 CreateRemoteThread 也是可以直接突破 SESSION 0 隔离向服务进程注入DLL的。
测试在Windows 10 场景下还是管理员权限+SeDebugPrivilege启用。
看书里的解释与实际测试暂时不一致。具体原因待分析,目前需要测试Windows 内核版本为6.0的,诸如Windows 7。
0x03 记录
目前测试的过程中,报错均为 OpenProcess 报错,关于向 session 0 服务进程注入dll,可能就跟OpenProcess的权限有关系,那么记录下想法,不一定都对:
获取进程句柄需要用 OpenProcess ,而服务进程和系统进程有 session 0 隔离,我们正常运行程序的权限是用户权限, explorer 和 cmd 打开的进程权限默认没有 SeDebugPrivilege 权限,而想要获取系统进程和服务进程的句柄,进行指定写相关的访问权的 OpenProcess 操作,需要 SeDebugPrivilege 权限。Administrator 默认拥有,但是未开启,所以可以通过代码开启,或者通过管理员启动 powershell 执行,这样自带 SeDebugPrivilege 权限。