组策略与ACL
组策略的部署及下发原理
- 本地组策略和域内组策略
- 域服务器如何存储组策略
- 组策略的下发和获取
- 客户端如何存储组策略
Server Manager 的组策略管理工具
更专业的组策略管理工具GPMC,可以管理多个域 创建并编辑组策略的内容 组策略分作主机策略和用户策略,machine和users目录; 脚本类型和非脚本类型, script目录 管理组策略的应用范围(演示)
组策略的存储
存储在服务器中,\domain\sysvol\policies,以明文方式存储为xml、ini、inf等文件 对域内所有用户开放读权限
组策略的更新
- 客户端每90分钟主动获取一次组策略,检查组策略是否发生变更
- 客户端使用
gpupdate /force
强制立即检查组策略 - 参数可以分为主机和用户,
gpupdate /force /target:computer
组策略的下发和获取
组策略的查询原理: LDAP检索所有的组策略,那些属于自己的 查询组策略,服务器决定需要返回哪些策略(版本号是决定的重要因素)
ACL 访问控制链
Access Control Link
- Windows安全对象的ACL
- 所有的Windows对象都称为安全对象,文件、进程、注册表、内存等
- 为每个安全对象赋予一个安全描述符(Security descriptor)
- Security identifiers (SIDs)for the owner and primary group of an object
- A DACL that specifies the access rights allowed or denied to particular users or groups
- a SACL that specifies the types of access attempts that generate audit records for the object
DACL
DACL由多个ACE(Access Control Entry)组成
Windows 的访问控制
- Windows的访问控制包括三部分:访问令牌、对象安全描述符和访问检查
- 访问令牌作为一个容器,通过Token体现
- 对象安全描述符表示目标对象的安全属性,通过安全矩阵详细描述该对象赋予不同用户组的权限
- 访问检查表示通过比较访问令牌和ACL,以决定该进程是否具有访问时申请的相应权限
Windows中高权限服务、进程所拥有的文件、目录如果存在着ACL设置不当,对低权限用户开放了“写”甚至“执行”权限,低权限用户可以通过修改、替换文件内容来达到执行指定代码的目的。例如Windows的System332目录如果开放了写权限,则可以向目录写入一个DLL,等待系统重新启动是,由 Svchost等程序加载即可实现权限提升(演示)
ACL 安全审计
Sysinternalsuit提供的accesschk.exe可以对指定的目录、文件进行ACL检查,命令为accesschk.exe -w -s directory 其中directory为需要检测的目录
accesschk.exe,可以审计进程对所有用户组开放的权限。采用规则accesschk.exe -ppid可以获取某个进程开放的权限,其中pid可以用‘*’代,表示检测所有进程对不同用户组开放的权限。为了保证正常运行,运行Taccesschk.exe时需要较高的权限
利用
进程ACL漏洞的利用方法
第一种
通过OpenProcess获取进程句柄,并将目标代码写入该进程空间中,以该进程的权限运行这些代码,运行代码权限为该进程权限;
第二种
通过OpenProcess获取进程句柄,再通过OpenProcessToken获取该进程的Token,并利用该Tokeni通过CreateProcessAsUser新的进程,新的进程权限和目标进程权限一致。
注册表的 ACL
注册表中的启动项、服务加载项如果对低权限用户开发了写权限,低权限用户可以向这些表项写入指定的文件,等待系统重新启动后实现权限提升 使用命令accesschk.exe -w -s -k HKLM,表示递归的扫描HKLM中开放了写权限的表项