Windows中的访问控制模型(Access Control Model),它是Windows安全性的基础构件。访问控制模型有两个主要的组成部分,访问令牌(Access Token)和安全描述符(Security Descriptor),它们分别是访问者和被访问者拥有的东西。通过访问令牌和安全描述符的内容,Windows可以确定持有令牌的访问者能否访问持有安全描述符的对象。
0x1基本概念
0x1.1 访问令牌
访问令牌是与特定的Windows账户关联的。当一个Windows账户登录的时候,系统会从内部数据库里读取该账户的信息,然后使用这些信息生成一个访问令牌。在该账户环境下启动的进程,都会获得这个令牌的一个副本,进程中的线程默认持有这个令牌。线程要想去访问某个对象,或者执行某些系统管理相关的操作时,Windows就会使用这个线程持有的
令牌进行访问检查
访问令牌包含:
1 |
用户的SID |
SID(Security Identifiers),是用户的唯一身份标识。
0x1.2 安全描述符
安全描述符是与被访问对象关联的,它含有这个对象所有者的SID,以及一个访问控制列表(ACL,Access Control List),访问控制列表又包括了DACL(Discretionary Access Control List)和SACL(System Access Control List)
自主访问控制列表(DACL)是安全描述符中最重要的,它里面包含零个或多个访问控制项(ACE,Access Control Entry),每个访问控制项的内容描述了允许或拒绝特定账户对这个对象执行特定操作
系统访问控制列表(SACL) 主要是用于系统审计的,它的内容指定了当特定账户对这个对象执行特定操作时,记录到系统日志中。
ACE的内容
1 |
特定账户或者账户组的SID |
所有的可访问对象都有三种ACE
1 |
Access-denied ACE 用于拒绝账户访问 |
0x2权限
0x2.1对象所有权
创建对象时,将为该对象分配所有者。 默认情况下,所有者是对象的创建者。 无论对对象设置了哪些权限,对象的所有者始终可以更改权限。
0x2.2 权限的继承
继承允许管理员轻松分配和管理权限。 此功能自动使容器内的对象继承该容器的所有可继承权限。 例如,文件夹中的文件将继承文件夹的权限。 只有标记为要继承的权限才会被继承。
0x2.3 用户权限
用户权限授予你的计算环境中的用户和组的特定权限和登录权限。 管理员可以向组帐户或单个用户帐户分配特定的权限。 这些权限授权用户执行特定操作,例如以交互方式登录系统或备份文件和目录。
0x3 Token的窃取与使用
Token是一个用户的身份标识,拿到他的Token就能伪装成该用户了。
Token的类型
1 |
Anonymous |
后两种token只在系统重启后清除
具有Delegation token的用户在注销后,该Token将变成Impersonation token,依旧有效
详情可看如下文章:
渗透技巧——Token窃取与利用
渗透技巧——Windows Token九种权限的利用
window中的incognito.exe
1 |
列举token:incognito.exe list_tokens -u |
Metasploit中的incognito
1 |
加载incognito:load incognito |
参考文章:
访问控制概述
Windows的访问控制模型
渗透技巧——Token窃取与利用
FROM :blog.cfyqy.com | Author:cfyqy
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论