Windows原理深入学习系列-信任等级检查 (2)

图片

在一些函数调用中,ClientToken 也被描述为模拟的客户端的 Token,这里也就假设是这样的用处了,如果不是,请大佬们帮忙指出

图片

在进行对比的时候就有另外的一个函数来进行了,它会将两个 SID 都传入,然后进行对比,而对比的结果是通过 r8 来接收的

图片

在这个函数中,对比逻辑主要就是有 TrustLabel 的大于没有 TrustLabel,PP 保护的大于 PPL,Signer 也是高值大于低值

图片

然后再来看判断完以后的情况,先看返回值,确定函数执行成功了,然后再看返回值,因为是从 r8 回来的,所以这里看的就是 var38

图片

如果不为零,就说明当前的 Trust 的等级是高于目标的,然后将 arg30 置 -1

图片

否则的话,将目标 ACE 的 AccessMask 的第 24 位置 1,通过微软文档可以得知,不管成功与否,当前的访问都是会被审计的

图片

0x03 WinDBG

可以通过 WinDBG 来观察到已经被保护的 System Token,先得到安全描述符

图片

然后交给 WinDBG 来进行解析

图片

0x04 参考文章

1.https://jsecurity101.medium.com/exploring-token-members-part-2-2a09d13cbb3

2.https://www.microsoftpressstore.com/articles/article.aspx?p=2228450&seqNum=3

3.https://elastic.github.io/security-research/whitepapers/2022/02/02.sandboxing-antimalware-products-for-fun-and-profit/article/

4.https://www.elastic.co/cn/blog/protecting-windows-protected-processes

5.https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/nf-wdm-seaccesscheck

6.https://docs.microsoft.com/en-us/windows/win32/secauthz/access-tokens

7.https://docs.microsoft.com/en-us/windows/win32/api/securitybaseapi/nf-securitybaseapi-privilegecheck

8.https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/ns-wdm-_security_subject_context

9.https://docs.microsoft.com/en-us/windows/win32/api/winnt/ne-winnt-security_impersonation_level

10.https://docs.microsoft.com/en-us/windows/win32/secauthz/access-mask

11.https://docs.microsoft.com/zh-cn/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessa

12.https://docs.microsoft.com/en-us/windows/win32/procthread/process-creation-flags

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzdzff.html