问:在WMIC.EXE等受保护的文件上使用CACLS

时间:2018-12-19 23:28:07

标签: wmic cacls

我想更改受保护文件的权限。

Using WMIC.EXE as an example, I want to change Administrators to F from R.

CACLS c:\windows\system32\wbem\wmic.exe

Returns:
NT SERVICE\TrustedInstaller:F 
BUILTIN\Administrators:R 
NT AUTHORITY\SYSTEM:R 
BUILTIN\Users:R 

CACLS c:\windows\system32\wbem\wmic.exe /P BUILTIN\Administrators:F 
Returns:  Access Denied 

在由RunOnce注册表项调用的批处理文件中,此操作也会失败。

1 个答案:

答案 0 :(得分:0)

TL; DR-

takeown /f "c:\Windows\System32\wbem\WMIC.exe" /a
icacls "c:\windows\system32\wbem\wmic.exe" /grant administrators:F

详细信息-

这里的障碍可能并不明显。首先是缺少授予“管理员”组的权限。在此文件上,“管理员”仅具有读取和执行权限。因此,这需要改变。但是......当您无权更改时如何更改?

在Windows中,管理员可以始终拥有安全对象的所有权-例如文件或目录。同样,对象所有者可以始终修改对象的安全描述符-即使安全描述符显示他们无权访问。这些原则是关键。

因此,我们是管理员,因此我们可以获取文件的所有权,然后更改权限以授予自己(或任何其他人)访问权限。 cacls.exe无法帮助我们完成第一部分,因此我们将转向takeown.exe/f arg的目标是文件,/a的目标是“管理员”组,而不是单个运行命令的人。

takeown /f "c:\Windows\System32\wbem\WMIC.exe" /a

现在作为所有者,我们可以自由地在安全描述符(也称为授予权限)中向DACL添加/修改ACE。我们可以使用cacls.exeicacls.exe,但我总是推荐后者,因为前者已贬值。但我会留给你。

icacls "c:\windows\system32\wbem\wmic.exe" /grant administrators:F

稍后,在您需要执行任何操作之后...如果要替换原始权限,我们必须将所有权返回到“ TrustedInstaller”,然后将管理员的“完全控制”权限更改回“ read + execute”组。 icacls.exe可以完成两项工作:

icacls "c:\windows\system32\wbem\wmic.exe" /setowner "NT Service\TrustedInstaller"
icacls "c:\windows\system32\wbem\wmic.exe" /grant:r "administrators":(RX)