regedit如何删除具有“拒绝所有人”权限的密钥?

时间:2019-01-15 00:48:54

标签: permissions registry regedit altitude procmon

首先,我必须提供一些背景信息。

我可以通过在键“ HKLM \ SYSTEM \ CurrentControlSet \ Services \ PROCMON24 \ Instances \ Process Monitor 24 Instance”中进行两次更改来将procmon设置为在非默认高度运行:

  1. 将“海拔”值从其默认的“ 385200”更改为所需值;例如。 '136500'
  2. 并向密钥添加特殊权限:user:每个人类型:拒绝权限:('set value'|'delete')

更改高度的原因很明显。添加特殊权限的原因并不那么明显:没有此命令,只会将Altitude重置为其默认值。

好的,这是我的问题:

我无法以编程方式删除添加的权限或更改该键或其值。这并不奇怪,因为该许可会拒绝“所有人”进行访问。

但是我可以使用regedit轻松删除该权限。我只是选择权限并将其删除。

那么regedit使用什么技巧来覆盖该权限?

我可以看到它以当前用户的身份运行,而不是“ SYSTEM”。我可以使用psexec以“ SYSTEM”的身份运行删除脚本,但这也被拒绝访问。

1 个答案:

答案 0 :(得分:0)

回想起来,很明显,regedit没有使用任何特殊技巧或特权来删除“拒绝所有人” ACE。有问题的ACE不会拒绝对注册表项进行 all 操作。它只是否认“删除”和“设定值”。有了ACE,甚至regedit都无法删除或设置值。也就是说,它无法通过“删除”或“设置值”访问来打开密钥。

regedit 可以可以做的是打开具有write-dacl访问权限的密钥。有问题的ACE不会否认这一点。

一旦regedit(或任何其他程序)以具有写dacl访问权限打开密钥,它便可以删除有问题的ACE,然后对密钥进行任何其他所需的更改。

Do!