我希望通过设置相关的SACL并使用audit event来监控给定密钥及其子密钥和值的注册表修改。
我已在注册表项上设置了SACL并将其配置为监视来自Everyone的所有修改尝试:
但是,我注意到当通过命令行reg命令创建新值时,将生成审计事件:
reg add hklm\SYSTEM\CurrentControlSet\Services\TestService /v DeleteFlag /t REG_NONE /d 1
虽然使用C#代码创建新密钥时不会生成任何事件。例如:
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(@"SYSTEM\CurrentControlSet\Services\TestService\");
key.SetValue("DeleteFlag", "1", RegistryValueKind.DWord);
key.Close();
当事件不是由我直接创建时,也没有事件。例如,运行写入注册表的“sc create”:
sc create haithamtest2 binpath="c:\temp\123.exe"
为什么会这样?有什么方法可以获得这些活动吗?