【微软漏洞分析】Windows-Research-Kernel-WRK 代码分析 安全例程(2) 令牌和安全描述符

本文深入探讨Windows访问控制模型,重点分析令牌(包括管理员、主、模仿令牌)及其API,以及安全描述符的数据结构和内核函数,揭示系统权限管理的关键细节。
摘要由CSDN通过智能技术生成

访问控制模型ACM(Access Control Model)

令牌

访问令牌

访问令牌一般包括两个部分:
一部分是令牌所表示的用户(包括会话ID、用户及其所属的组),这些信息告诉Token属于哪个用户的;
另一部分是“特权列表”(Privilege),这用来告诉进程能够进行特定的系统操作,如关闭系统、修改系统时间、加载设备驱动等。

管理员令牌

管理员令牌有二种:
当使用高特权的管理员帐号登录时,系统会同时创建两个访问令牌,其中一个是完全的管理员访问令牌
另一个是经过“过滤”的标准用户访问令牌(filtered token)-虽然以管理员登录,但应用程序默认是以标准用户权限的运行

主令牌

每个进程都有一个Token(被称为主令牌)。可以从父进程处继承(也可以修改,但其最高权限不会超过登录账户的最高权限。即只能在进程的边界上提升权限!

模仿令牌

线程默认下会使用进程的令牌来访问对象。但它也可以拥有自己的访问令牌(被称为模仿令牌(ImperonaitonToken)。但该令牌不是必须的,线程可以不拥有模仿令牌。模仿令牌的用处,如当一个线程要找开一个文件,但该文件只有User2才能打开,而主令牌属于User1,这时线程就可以模仿一个User2令牌来打开这个文件。

操作Token的UserMode API

①OpenProcessToken、OpenThreadToken
②AdjustTokenPrivileges、AdjustTokenGroups
③GetTokenInformation、SetTokenInformation
④LookupPrivilegeValue、PrivilegeCheck
⑤LookupPrivilegeDisplayName、LookupPrivilegeName

数据结构

在Windows-Research-Kernel-WRK中没有定义TOKEN的数据结构,属于undocumented的结构,主要原因是不同的操作系统版本这个数据结构的定义都有区别,以下通过kd导出的数据结构可以作为参考:
在这里插入图片描述

实际数据

参考下面的组图可以对照查看数据结构中的值。

主属性:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值