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

问题描述 投票:0回答:1

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

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注册表项调用的批处理文件中也会失败。

wmic cacls
1个回答
0
投票

TL;DR -

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

Details -

这里的障碍可能并不明显。第一个是缺少授予“管理员”组的权限。在此文件中,“管理员”仅具有读取和执行权限。所以这需要改变。但是......当你没有改变的权利时如何改变?

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

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

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

现在作为所有者,我们可以在安全描述符(也称为授权权限)中向ACEL添加/修改ACE。我们可以使用cacls.exeicacls.exe,但我总是推荐后者,因为前者是折旧的。但是我会把它留给你。

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

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

icacls "c:\windows\system32\wbem\wmic.exe" /setowner "NT Service\TrustedInstaller"
icacls "c:\windows\system32\wbem\wmic.exe" /grant:r "administrators":(RX)
© www.soinside.com 2019 - 2024. All rights reserved.