windows访问控制模型

1.Access Token

1.1.Access Token简介

访问令牌(Access Token)是Windows操作系统用描述进程或者线程安全上下文的一个对象。Windows下有两种类型的Token令牌:授权令牌和模拟令牌。

  • 授权令牌(Delegation Token),也叫主令牌,是由windows内核创建并分配给进程的默认访问令牌,每一个进程有一个主令牌,它描述了与当前进程相关的用户帐户的安全上下文。用于交互式登录(如rdp登录访问)。
  • 模拟令牌(Impersonation Token),所在进程的主令牌会自动附加到当前的线程上,作为线程的安全上下文。而线程可以运行在另一个非主令牌的访问令牌下执行,而这个令牌被称为模拟令牌。用于非交互式的会话(利用WMI进行远程访问)。

主令牌与进程相关,模拟令牌与模拟令牌的线程相关。

注:两种令牌会在系统重启或者关机后才会全部清除,不然将会一直在内存中存留。也就是说,如果机器不关机或者重启的话,就会存在散落的令牌。在系统注销后,具有授权令牌的用户会变为模拟令牌Impersonation Token,但依然有效。默认情况下,当前用户只能看到当前用户自己和比自己权限低的所有访问令牌。

1.2.组成

Windows Access Token 组成如下:

  • 用户帐户的安全标识符(SID)
  • 用户所属的组的SID
  • 用于标识当前登录会话的登录SID
  • 用户或用户组所拥有的权限列表
  • 所有者SID
  • 主要组的SID
  • 访问控制列表
  • 访问令牌的来源
  • 令牌是主要令牌还是模拟令牌
  • 限制SID的可选列表
  • 目前的模拟等级
  • 其他统计数据
image-20220215133958808.png

1.3.Local administrator

当本地管理员登录时,系统会创建两个 AccessToken: 一个具有管理员权限,另一个具有普通权限,当此用户执行进程时,将使用具有普通权限(非管理员)的 AccessToken 来进行操作。当用户尝试以管理员身份执行任何操作的时候,需要通过 UAC 后,才可使用具有管理员权限的 AccessToken。

1.4.令牌中的Privilege

特权是一个用户或组在本地计算机执行各种系统相关操作(关闭系统、装载设备驱动程序、改变系统时间)的权限,特权与访问权限的区别如下:

特权控制账户对系统资源和系统相关任务的访问,而访问权限控制对安全对象(可以具有安全描述符的对象)的访问

系统管理员为用户或组指派特权,而系统根据对象的DACL中的ACE授予或拒绝对安全对象的访问,有时拥有特权可以忽略ACL的检查

上文中我们介绍Access Token 组成,其中有一部分表示了该用户及该用户所属组所拥有的特权,如下图所示:

image-20220215134853993.png

默认情况下大部分特权是禁用状态,在使用时需要启用,但是bypassUAC之后,就会获取完整特权。

image-20220215135039269.png

其中不乏危险特权,这里举例几个最常用的,不一一赘述,这里直接贴一下大佬的研究,有兴趣的自行查看。

1.4.1.危险的特权--SeDebugPrivilege

Ps:仅列出危险特权以及危害,不做具体演示

通常情况下,用户只对属于自己的进程有调试的权限,但如果该用户Token中被赋予SeDebugPrivilege并启用时,该用户就拥有了调试其他用户进程的权限,此时就可以对一些高权限进程执行操作以获取对应的权限。在我们使用mimikatz时,第一条命令privilege::debug其实开启的就是SeDebugPrivilege特权。

1.4.2.危险的特权--SeAssignPrimaryTokenPrivilege

该特权表示可以为进程分配主令牌,经常与 SeImpersonatePrivilege 特权配合使用在potato的提权中。拥有该特权时,我们可以使用非受限的令牌调用CreateProcessAsUser();或者先创建挂起的进程,再通过NtSetInformationProcess()来替换进程的 token

1.4.3.危险的特权--SeImpersonatePrivilege

SeImpersonatePrivilege特权分配给用户时,表示允许该用户运行的程序模拟客户端,默认Service账户(如MSSQL、IIS的服务账户)和管理员账户会拥有该权限。

该权限也是一些potato提权的重要条件,可以通过printbug+ImpersonateNamedPipeClient()等等许多方式获取到高权限令牌,进而执行模拟

2.Login Session

2.1.简介

根据 Microsoft 文档,登录会话是一个计算会话,它在用户身份验证成功时开始,并在用户注销系统时结束。

当用户成功通过身份验证时,身份验证包会创建登录会话并将信息返回到用于为新用户创建令牌的本地安全机构 (LSA)。该令牌包括登录会话的本地唯一标识符 (LUID),称为登录 ID。

从安全事件的角度来看,当成功的身份验证事件发生时,首先会看到 logon_id。根据 Microsoft 和 OSSEM 提供的文档,审核登录子类别中的事件与登录会话的创建相关,并发生在被访问的计算机上。对于交互式登录,在登录的计算机上生成事件。对于网络登录(例如访问共享),将在承载所访问资源的计算机上生成事件。

2.2.Logon Sessions and Access Tokens

当用户以物理方式登录到 Windows 工作站时(即以交互方式),他们提供用户名和密码,然后由本地安全机构(LSA) 检查。如果该帐户是本地帐户(即,仅在该特定计算机上有效),LSA 将根据其自己的安全数据库检查凭据。在 Windows Active Directory 域环境的情况下,身份验证尝试被称为最近的域控制器 (DC),它将处理请求并对用户进行身份验证。

image-20220215143102935.png

一旦用户成功通过身份验证,LSA 将创建一个新的登录会话并生成一个访问令牌,如上所示。一个登录会话可以有多个与之关联的访问令牌,但一个访问令牌只能链接到一个登录会话。

每个新的登录会话都可以通过 64 位本地唯一标识符 (LUID)(称为登录 ID)来识别,并且每个访问令牌都必须包含一个身份验证 ID(或 AuthId)参数,该参数通过此 LUID 识别源/链接登录会话。


image-20220215142758969.png

3.安全描述符

3.1.简介

SID(Security Identifiers)即安全描述符。
安全描述符标识对象的所有者,并包含以下访问控制列表:
1、Discretionary Access Control List (DACL) 自由访问控制列表
2、System Access Control List (SACL) 系统访问控制列表
每一种控制列表中都存在若干条ACE(Access Control Entries)


image-20220215144023731.png

用这个链接下的一个图可以很清晰的说明什么是安全描述符:

image-20220215144108687.png

3.2.DACL

高级安全设置中的权限就是DACL的列表


image-20220215144315095.png

3.3.SACL

高级安全设置中的审核就是SACL的列表


image-20220215144346261.png

3.4.ACE

ACE是针对特定用户或特定组的单个权限授予(或拒绝权利)的配置结构。ACE有许多不同类型,但是在Active Directory的权限中,只有四种不同的含义,两种分别用于授予和拒绝权限。

3.5.直观理解

Windows访问控制模型中会用到ACL,比如文件、注册表的权限都包含ACL,用来表示哪些用户(组)具有哪些操作权限

例如用户对某个文件进行访问,系统将做以下判断:

  • 如果没有DACL,系统将允许访问
  • 如果存在DACL,但没有ACE,系统将拒绝所有访问
  • 如果存在DACL,也存在ACE,那么会按照每个ACE指定允许或拒绝

4.总结

完整的登录过程和访问检查示例


image-20220215144831768.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容