解释安全描述符 string_aces
对系统驱动器根目录运行 cacls 命令的输出如下:
"D:PAI(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;0x1200a9;;;BU)(A;CI;LC;;;BU)(A;CIIO;DC;;;BU)
(A;OICIIO;GA;;;CO)"
为提高可读性对其进行解析后,结果如下:
"D:PAI
(A;OICI;FA;;;SY)
(A;OICI;FA;;;BA)
(A;OICI;0x1200a9;;;BU)(A;CI;LC;;;BU)(A;CIIO;DC;;;BU)
(A;OICIIO;GA;;;CO)"
这是一个受保护的 DACL,设置了流行文件系统的自动继承标志。受保护标志的含义是不会继承可继承的父权利;该 DACL 受到保护,不能继承父对象的权利。在本例中没有父项,因为它是根目录。
内置管理员和系统将得到文件(来自对象继承)和目录(来自容器继承,即 CI)可继承的 File All 权利。这意味着此 DACL 将递归授予根目录下所有文件和目录的 File All 权限—必须检查受保护 DACL 中的授权是唯一的例外,那会禁止继承。CO 将获得根目录下所有文件和目录的 Generic_All 权限(由于仅继承标记),该权限将映射为 File All。
对内置用户的授权更为有趣。第一个 string_ace 将应用到根目录及其子目录中所有的文件和目录,授予 List、Read、ReadEA、Traverse、Execute、ReadAttr、ReadControl 和 Sync 权限。第二个 string_ace 授予在根目录及其子目录中 AddSubDir 的权限(由于 IO—仅继承标志),而第三个 string_ace 授予子目录的 AddFile 权限。这与您使用 Windows 资源管理器的 ACL 图形化界面查看这些权限时看到的一样。
Windows 资源保护
从 Windows Server 2008 和 Windows Vista 开始,组件将在其清单中声明所需的安全设置,该清单将由 Microsoft 代码签名根项进行签名。该清单指定 ACL 及与文件关联的其他权限。因此,当安装某个组件时,它将自带适当的安全设置。此外,系统管理员还可以使用 Windows 资源保护 (WRP) 防止操作系统文件受到意外损坏。WRP 依赖新的系统级别实体 Trusted Installer 拥有并管理系统文件和文件夹。
在 Windows Vista 中还增加了允许普通用户安装授权组件的便利功能。“超级用户”角色将不再需要,因此将删除包含“超级用户”SID 的 ACE 实例。“超级用户”组仍然存在,但会对组件清单进行扫描并删除所有 PU 权限授予实例。
让我们看看系统目录中有哪些新权限。同时这也是阅读并理解 SDDL 的一个良机:
C:\>cacls c:\windows /s
C:\Windows "D:PAI(A;;FA;;;S-1-5-80-956008885-3418522649-18310
38044-1853292631-2271478464)(A;CIIO;GA;;;S-1-5-80-956008885-3
418522649-1831038044-1853292631-2271478464)(A;;0x1301bf;;;SY}
(A;OICIIO;GA;;;SY)(A;;0x1301bf;;;BA)(A;OICIIO;GA;;;BA)(A;;0x1200a9;;;BU)
(A;OICIIO;GXGR;;;BU)(A;OICIIO;GA;;;CO)"
“可信的安装程序”的 SID 是 S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464。使用 TI 作为简写,我们可以发现下面的内容:
C:\Windows "D:PAI
(A;;FA;;;TI)(A;CIIO;GA;;;TI)
(A;;0x1301bf;;;SY)(A;OICIIO;GA;;;SY)
(A;;0x1301bf;;;BA)(A;OICIIO;GA;;;BA)
(A;;0x1200a9;;;BU)(A;OICIIO;GXGR;;;BU)
(A;OICIIO;GA;;;CO)"
本文来源:不详 作者:佚名