Windows协议 LDAP篇 - 域权限

windows 访问控制模型

也就是大名鼎鼎的ACM,access control mode
由两部分组成的。

  1. 访问令牌(access tokens)
    其中包含有关登录用户的信息(User SID,Group SIDS,特权列表),访问令牌是与Windows的账户相互对相应的,当某一账户登录时,系统会生成此用户的访问令牌并分发给启动的进程

  2. 安全描述符(security identifiers)
    其中包含保护安全对象的安全信息,还可以包含*访问控制列表 (DACL) 和系统访问控制列表 (SACL)

大致流程:

当一个线程尝试去访问一个对象时,系统会检查线程持有的令牌以及被访问对象的安全描述符中的DACL。
如果安全描述符中不存在DACL,则授予访问权限。如果存在DACL,系统会顺序遍历DACL中的每个ACE,检查ACE中的SID在线程的令牌中是否存在。以访问者中的User SID或Group SID作为关键字查询被访问对象中的DACL。顺序:先查询类型为DENY的ACE,若命中且权限符合则访问拒绝;未命中再在ALLOWED类型的ACE中查询,若命中且类型符合则可以访问;以上两步后还没命中那么访问拒绝。

ACL

ACL主要有两个功能

  1. 权限访问控制

    • 一个用户能不能访问安全对象
  2. 日志记录功能

    • 访问成功与否

根据这俩功能ACL又分为,DACL和SACL。

DACL

DACL起到的作用是权限访问控制,DACL是安全描述符中最重要的,它里面包含零个或多个访问控制项(ACE)
Windows协议 LDAP篇 - 域权限

DACL如何判断是否有权限访问
SRM安全参考监视器将按规范顺序读取ACE

  1. 将所有显式ACE(即手动设置的ACE)放在一个组中,然后放在任何继承的ACE之前。
  2. 在显式ACE组中,拒绝访问的ACE放置在允许访问的ACE之前。
  3. 继承的ACE按照继承的顺序放置。从子对象的父对象继承的ACE首先出现,然后是从祖父母那里继承的ACE,依此类推。
  4. 对于继承的ACE的每个级别,将拒绝访问的ACE放置在允许访问的ACE之前。
user 1
	sid:20
	group sid:10
	group sid:11
	group sid:12

user 2
	sid:30
	group sid:13
	group sid:14
	group sid:15

user 3
	sid:40
	group sid:16
	group sid:17
	group sid:18

Object A的DACL
	ACE:允许sid为20的对象访问
	ACE:拒绝sid为13的对象访问
  1. 当user1访问对象A的时候
    A查看user1的用户sid,以及组sids。首先到第二条ACE进行匹配,不成功,然后到第一条ACE进行判断,允许sid为50的对象进行访问,user1的用户sid为50,因此允许user1访问。

  2. 当user2访问对象A的时候
    A查看user2的用户sid,以及组sids。首先到第二条ACE进行匹配,拒绝sid为13的对象访问,发现user2的其中一个组sid 为13,拒绝user2访问。

  3. 当user3访问对象A的时候
    A查看user3的用户sid,以及组sids。首先到第二条ACE进行判断。没匹配上,然后匹配第一条,又没匹配上,所以拒绝C访问。

上面有两种情况:1. ACE 条目的数量为0的情况:这种情况底下,有DACL,但是ACE条目的数量为0,是不允许任何用户访问的;2. 没有DACL的情况,这种情况,是允许任何用户访问的。

SACL

SACL的作用是记录访问成功与否,SACL也是由ACE构成,每条ACE的内容是某个用户访问成功/失败某个权限,当访问跟满足这条ACE的时候就会被记录下来。
Windows协议 LDAP篇 - 域权限

ACE

一条ACE主要是四个方面

  1. 谁对你有权限
  2. 是允许还是拒绝
  3. 有什么权限
  4. 这个权限能不能被继承

我们上面的小demo只体现出了前两条

  • 有什么权限

    1. 通用权限
    2. 对某个属性的权限
    3. 拓展权限(如更改密码等)
  • 权限能不能被继承
    Windows协议 LDAP篇 - 域权限
    如上图所示,将权限作用于OU=IT,如果设置这个权限能够继承的话,那这个权限能够作用于CN=u1

SDDL

AdFind.exe -b "CN=WIN7,CN=Computers,DC=muxue,DC=com" nTSecurityDescriptor -rawsddl

这些恶心的东西就是SDDL(安全描述符定义语言)了,大致可以分为四类

O:DA	——> ower

G:DA	-->Primary Group 

D:AI
(OA;;WP;5f202010-79a5-11d0-9020-00c04fc2d4cf;bf967a86-0de6-11d0-a285-00aa003049e2;DA)
(OA;;WP;bf967950-0de6-11d0-a285-00aa003049e2;bf967a86-0de6-11d0-a285-00aa003049e2;DA)
(OA;;WP;bf967953-0de6-11d0-a285-00aa003049e2;bf967a86-0de6-11d0-a285-00aa003049e2;DA)
(OA;;WP;3e0abfd0-126a-11d0-a060-00aa006c33ed;bf967a86-0de6-11d0-a285-00aa003049e2;DA)
(OA;;SW;72e39547-7b18-11d1-adef-00c04fd8d5cd;;DA)
(OA;;SW;f3a64788-5306-11d1-a9c5-0000f80367c1;;DA)
(OA;;WP;4c164200-20c0-11d0-a768-00aa006e0529;;DA)
(OA;;RPWP;bf967a7f-0de6-11d0-a285-00aa003049e2;;CA)
(OA;;CCDC;bf967aa8-0de6-11d0-a285-00aa003049e2;;PO)
(OA;;RP;46a9b11d-60ae-405a-b7e8-ff8a58d456d2;;S-1-5-32-560)
(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;WD)
(OA;;SW;72e39547-7b18-11d1-adef-00c04fd8d5cd;;PS)
(OA;;SW;f3a64788-5306-11d1-a9c5-0000f80367c1;;PS)
(OA;;RPWP;77b5b886-944a-11d1-aebd-0000f80367c1;;PS)
(A;;LCRPDTLOCRSDRC;;;DA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;DA)
(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;AO)
(A;;CCDC;;;PS)
(A;;LCRPLORC;;;AU)
(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)
(OA;CIIOID;RP;4c164200-20c0-11d0-a768-00aa006e0529;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)
(OA;CIIOID;RP;4c164200-20c0-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a285-00aa003049e2;RU)
(OA;CIIOID;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)
(OA;CIIOID;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)
(OA;CIIOID;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)
(OA;CIIOID;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)
(OA;CIIOID;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)
(OA;CIIOID;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)
(OA;CIIOID;RP;037088f8-0ae1-11d2-b422-00a0c968f939;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)
(OA;CIIOID;RP;037088f8-0ae1-11d2-b422-00a0c968f939;bf967aba-0de6-11d0-a285-00aa003049e2;RU)
(OA;CIID;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a86-0de6-11d0-a285-00aa003049e2;ED)
(OA;CIIOID;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a9c-0de6-11d0-a285-00aa003049e2;ED)
(OA;CIIOID;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967aba-0de6-11d0-a285-00aa003049e2;ED)
(OA;CIID;WP;ea1b7b93-5e48-46d5-bc6c-4df4fda78a35;bf967a86-0de6-11d0-a285-00aa003049e2;PS)
(OA;CIIOID;LCRPLORC;;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)
(OA;CIIOID;LCRPLORC;;bf967a9c-0de6-11d0-a285-00aa003049e2;RU)
(OA;CIIOID;LCRPLORC;;bf967aba-0de6-11d0-a285-00aa003049e2;RU)
(OA;OICIID;RPWP;3f78c3e5-f79a-46bd-a0b8-9d18116ddc79;;PS)
(OA;CIID;RPWPCR;91e647de-d96f-4b70-9557-d63ff4f3ccd8;;PS)
(A;CIID;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-511003792-1237030605-620821399-519)
(A;CIID;LC;;;RU)
(A;CIID;CCLCSWRPWPLOCRSDRCWDWO;;;BA)

S:AI
(OU;CIIOIDSA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)
(OU;CIIOIDSA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)
  1. O代表这条ACL的所有者
  2. G代表primary group
  3. D代表就是DACL,一个()里面是一条ACE
  4. S代表就是SACL,一个()里面是一条ACE

详细讲解
通用权限
(A;CIID;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-511003792-1237030605-620821399-519)
拆分

A;		允许 ACE类型(允许/拒绝/审核)
CIID;	CI ID ACE标志(继承和审核设置)
CCDCLCSWRPWPDTLOCRSDRCWDWO; 	CC DC LC 权限(我这个不确定 msdn上的flags我没找到 懂得大佬call下)
;		对象类型(GUID)
;		继承的对象类型(GUID)
S-1-5-21-511003792-1237030605-620821399-519

拓展权限

OA; ACE类型(允许/拒绝/审核)
; ACE标志(继承和审核设置)
CR; 权限(增量权限列表)
00299570-246d-11d0-a768-00aa006e0529; 对象类型(GUID)
; 继承的对象类型(GUID)
S-1-5-21-1812960810-2335050734-3517558805-1178 受托人SID

可以看见多了个GUID00299570-246d-11d0-a768-00aa006e0529,用户强制更改密码
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-adts/1522b774-6464-41a3-87a5-1e5633c3fbbb
Windows协议 LDAP篇 - 域权限

拓展权限都存储在CN=Extended-Rights,CN=Configuration,DC=muxue,DC=com里。CN=User-Force-Change-Password就是这个类的实例
Windows协议 LDAP篇 - 域权限

也可以通过查找这个GUID来获取是啥功能
Windows协议 LDAP篇 - 域权限

过滤ACL

过滤出有S-AllowedToActOnBehalfOfOtherIdentity权限的
Windows协议 LDAP篇 - 域权限

Windows协议 LDAP篇 - 域权限

上一篇:浅析Nginx常用配置:如何根据user-agent适配PC/移动设备、如何配置https、如何开启静态服务、如何设置图片防盗链、如何配置请求过滤、如何配置静态文件的缓存时间、如何配置http转发到https、如何配置泛域名路径分离及泛域名转发


下一篇:window10安装VMware虚拟机及Ubuntu教程