我最近发现了一个CACLS
命令,它允许某人编辑文件的 ACL。我在 CTF 写作(黑客挑战)中看到它,用于获取据称仅限于管理员的 root 标志:
CACLS filepath_to_root.txt /G User:R
此命令似乎有点过头了,可能存在安全机制来防止任何用户使用该命令编辑目录/文件权限。它们是什么?我如何检测是否存在漏洞?如果没有这篇文章,我永远不会想到这一点。
(例如在 Linux 中,加入 sudo 组将允许我拥有全部权力。我可以使用命令进行检查groups
。)
答案1
/G User:R
不是“根标志”(在 Windows 上没有任何意义),而是读取访问权限……
如果用户不被允许这样做(即,如果用户不是该文件的所有者,或者他没有任何权利这样做),他就不能更改文件的权限。
答案2
还有各种其他方法可以操作 ACL - 最好是icacls
Powershell 或 Windows Explorer。
不让用户操纵 ACL 的关键是不要授予他们全部权限,而只授予modify
。具体来说,change privileges
权限是你不想要的。此外,确保创建者/所有者也没有全部权限,除非你的用户实际上知道如何使用 ACL 并且应该更改它们。