程序笔记   发布时间:2022-06-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Windows原理深入学习系列-强制完整性检查大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

这是[信安成长计划]的第 24 篇文章

0x00 目录

0x01 介绍

0x02 逆向分析 Win10_x64_20H2

0x03 总结

0x04 参考文章

最近因为一些事情,拖更了三个周,大家见谅啊,后面还会开始一些其他的系列内容,还等着大家来捧场了。

现在我们接着之前的进度,继续完成 Windows 原理的学习。

在刚开始的时候,我们介绍了强制完整性控制的机制,这次就来看一下在实际的权限检查当中是如何进行的。

0x01 介绍

这次也还是接着上一次的 ObpGrantAccess 函数往后分析了,根据名字也很容易能够判断出这里的作用

Windows原理深入学习系列-强制完整性检查

不清楚为什么从 ObpGrantAccess 分析的,可以去看一下上一篇文章的介绍部分

0x02 逆向分析 Win10_x64_20H2

在进入函数以后,就是一堆保存堆栈、赋值等等操作

Windows原理深入学习系列-强制完整性检查

紧接着会有一些权限的判断,这些也暂时不是现在的关键

Windows原理深入学习系列-强制完整性检查

接着判断 SACL 中是否有有效内容,获取前的最后的判断

Windows原理深入学习系列-强制完整性检查

然后就是我们非常熟悉的内容了是否是相对地址,忘记这块内容的可以参考之前关于访问控制列表的文章

Windows原理深入学习系列-强制完整性检查

获取到完整性等级相关的 ACE

Windows原理深入学习系列-强制完整性检查

接着就从 ACE 当中获取到需要的内容

Windows原理深入学习系列-强制完整性检查

紧接着就是我们非常熟悉的函数 SepCopyTokenIntegrity,这个在刚开始分析强制完整性控制的时候有分析过

它的主要操作就是根据 Token 中的 IntegrityLevelIndex,从 UserAndGroups 当中得到当前的完整性等级

Windows原理深入学习系列-强制完整性检查

然后就是最关键的比较了,对两个 Sid 进行比较

Windows原理深入学习系列-强制完整性检查

根据分析可以知道 r12 就是通过 SepCopyTokenIntegrity 从当前的 Token 中取出的完整性等级信息

Windows原理深入学习系列-强制完整性检查

另一个 rbp,就是从 SACL 当中取出来的完整性等级

Windows原理深入学习系列-强制完整性检查

r12 的来源就是当前上下文的 Token 信息

Windows原理深入学习系列-强制完整性检查

而 SACL 的来源并不在当前,一直往前追,可以看到它是从 SeAccessCheck 的 rcx 当中来的,根据描述也能明白这个是被访问对象的信息

Windows原理深入学习系列-强制完整性检查

这样也就基本完成了对完整性信息的检测,对于 RtlEqualSid 函数,之前也进行过分析,这里也就不再提及了

0x03 总结

在之前我也一直有一个疑问,我刚开始是通过 SepCopyTokenIntegrity 来得到进程的完整性等级的,但是为什么网上有很多的资料都说完整性等级是存储在 SACL 当中的。

从这里也就可以得知,两个取出来的都是完整性等级信息,不过它们所代表的情况是不一样的。

在进行权限验证的时候,会通过 SepCopyTokenIntegrity 取出当前的完整性等级,然后从目标对象的 SACL 当中获得目标的完整性等级,然后进行相应的判断和验证。

0x04 参考文章

1.https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-token_mandatory_policy

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

3.https://docs.microsoft.com/zh-cn/windows-hardware/drivers/ddi/ntifs/ns-ntifs-_security_descriptor

4.https://docs.microsoft.com/en-us/windows-hardware/drivers/ifs/security-descriptor-control

5.https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-ace_header

大佬总结

以上是大佬教程为你收集整理的Windows原理深入学习系列-强制完整性检查全部内容,希望文章能够帮你解决Windows原理深入学习系列-强制完整性检查所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: