笔记 随手记
又复习了一下域中ACL的点,以前对于sddl过滤又有了新的认识。
** 以下出自学习daiker师傅文章的笔记。 只记录下重点。**
windows 访问控制模型
● 访问令牌(Access Token)包含用户的标识(User SID,Group SIDS),以及特权列表。
● 安全描述符(security identifiers)。被访问的安全对象的相关安全信息。
域中表明身份是用sid表明而不是用户名。
查看用户属性objectsid来查看一个用户的sid。
域中对象访问之间验证ACL大体流程
A----------->B
- 对象A来访问B的时候,A会出示自己的Access Token,(A的sid、A所在组的sid、特权列表)
- 对象B首先判断是不是需要特权才能访问,如果需要特权,则查看A的Access Token看有没有那个特权。
- 对象B通过A的Access Token,来判断A的用户 sid以及组sids,跟自己的ACL做比对,来判断是否让A进行访问。
ACL相关
ACL包含DACL和SACL
DACL:Discretionary Access Control List,定义对象的访问控制策略(允许或拒绝访问),DACL的ACE定义了哪些用户或用户组对该对象具有怎样的访问权限,当请求访问该对象时,系统检查请求方的SID与对象DACL中的ACE配置策略,根据找到的ACE配置授予访问或拒绝访问。如果该对象没有设置DACL,系统默认允许所有访问操作,如果对象配置了DACL但找不到对应SID的ACE条目,系统将拒绝访问操作;
SACL:System Access Control List,定义对象的访问行为记录策略,SACL的ACE定义了对哪些用户或用户组的哪些访问行为进行日志记录,例如对指定用户的访问成功、失败行为进行审计记录日志等。
DACL起到的作用是权限访问控制,也就是判断一个用户能不能访问安全对象:****
SACL的作用是记录访问成功与否
ACE相关
这点主要清楚ACE的组成:
重点为有什么权限以及是否可以继承。
权限分类:
- 通用权限
- 特殊权限
- 拓展权限
通用权限
表明对这个条目的通用读写权限。
特殊权限
对某个属性的权限一个条目包含若干个属性,通用属性是对整个条目的权限。
特殊属性就是对某个属性的权限
拓展权限
扩展权限,比如强制更改密码
权限是否被继承
这个很好理解,不说了
SDDL
安全描述符定义语言(SDDL)
####### 利用adfind 查看某个属性的ACL
SSDL 拆分
简单来说 可以拆分为 :所有者+组+DACL+SACL
值对照:
https://clan8blog.wordpress.com/2016/08/08/sddl-explained/
通用权限拆分后结果:
(
A; ACE类型(允许/拒绝/审核)
CI; ACE标志(继承和审核设置)
GW; 权限(增量权限列表)
; 对象类型(GUID)
; 继承的对象类型(GUID)
S-1-5-21-1812960810-2335050734-3517558805-1103 受托人SID
)
拓展权限拆分结果:
(
OA; ACE类型(允许/拒绝/审核)
; ACE标志(继承和审核设置)
CR; 权限(增量权限列表)
00299570-246d-11d0-a768-00aa006e0529; 对象类型(GUID)
; 继承的对象类型(GUID)
S-1-5-21-1812960810-2335050734-3517558805-1178 受托人SID
)
会多一个GUID
PS: CN=Extended-Rights,CN=Configuration,DC=test,DC=local里面,具体在rightsGuid这个属性里面
特殊权限和扩展权限会在ace中多一个GUID,体现在对象类型里面
由GUID 查看权限的名字:
1)拓展属性是用CN=Extended-Rights,CN=Configuration,DC=test,DC=local里面的rightsGuid这个属性
2)特殊属性是用scheme分区中的schemaIDGUID
CN=ACS-Max-Peak-Bandwidth,CN=Schema,CN=Configuration,DC=god,DC=org
sddl+++增加阅读性:
-sddlfilter过滤ACL
这个参数后面就是接的ace格式,要过滤的部分写入参数后相应的位置即可:
AdFind.exe -s subtree -b "DC=test,DC=local" nTSecurityDescriptor -sddl+++ -sddlfilter ;;;;;"TEST\DC2016$" -recmute
