0

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

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

4

1 回答 1

0

TL;博士-

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

细节 -

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

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

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

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

现在,作为所有者,我们可以自由地在安全描述符中向 DACL 添加/修改 ACE(也就是授予权限)。我们可以使用cacls.exeor icacls.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)
于 2019-04-02T14:24:50.877 回答