您的位置:首页 > 菜鸟学院 > 深度解析Windows最新进程隔离机制AppContainer

深度解析Windows最新进程隔离机制AppContainer

来源:互联网 | 时间:2015-03-04 10:21:20 | 阅读:124 |    | 分享到:

3.已经检查完了所有的ACE,但是仍然至少有一个请求访问权限没有被明确给予,这种情况下,访问被拒绝。

从Windows Server 2003开始,DACL里ACE的顺序为:


Explicit     ACE:AccessDenied‍‍ ‍‍Explicit     ACE:AccessAllowed‍‍ ‍‍Inherited ACE:Access Denied‍‍ ‍‍Inherited ACE:Access Allowed


这个遍历规则和顺序保证了明确拒绝优先于明确允许;明确指定的访问控制优先于继承的访问控制。

以下的内容基于Win10PreX86(9926)。

ACCESS_ALLOWED_ACE_TYPE

在遍历类型为ACCESS_ALLOWED_ACE_TYPE的ACE时,如果ACE的SID前缀为SePackagePrefixSid(S-1-15-2)或者SeCapabilityPrefixSid(S-1-15-3),则跳转到处理AppContainer访问权限控制的逻辑:

深度解析Windows最新进程隔离机制AppContainer

图12

如果ACE的SID前缀为SePackagePrefixSid(S-1-15-2),会先看这个SID是否为ALLAPPLICATION PACKAGES,这是一个Well known SID

深度解析Windows最新进程隔离机制AppContainer

图13

如果是这个SID,认为匹配成功,不需要再精确比较SID了;否则和Token的PackageSID做精确匹配:

深度解析Windows最新进程隔离机制AppContainer

图14

如果ACE的SID前缀为SeCapabilityPrefixSid(S-1-15-3),会尝试匹配Token的Capabilities:

深度解析Windows最新进程隔离机制AppContainer

图15

PackageSID或者Capabilities匹配成功后,会通过a13记录获取到的权限以及还剩下未获取到的权限。a13是上层调用传进来的结构指针,上一层函数会根据这个结构的值,判断AppContainer进程是否获取到了请求的访问权限。

看看上一层函数SepAccessCheck的逻辑片段,var_AccessLowbox就是图14/15里的a13。如果PackageSID或者CapabilitieSID给予的权限不能完全覆盖用户请求的权限(var_Remaining != 0),则访问失败:

好特网发布此文仅为传递信息,不代表好特网认同期限观点或证实其描述。

相关视频攻略

更多

扫二维码进入好特网手机版本!

扫二维码进入好特网微信公众号!

本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件[email protected]

湘ICP备2022002427号-10 湘公网安备:43070202000427号© 2013~2024 haote.com 好特网