在 Windows 操作系统中,攻击者可以通过修改注册表UserInitMprLogonScript 键值来执行自定义的恶意程序,从而实现持久化控制。这种方法被一些红队工具用于权限维持。下面将详细介绍如何使用 .NET 代码修改 UserInitMprLogonScript 键值来实现权限维持。
0x01 什么是UserInitMprLogonScript键?
注册表UserInitMprLogonScript键的作用是在用户登录时运行指定的程序。此键位于注册表HKEY_CURRENT_USER配置单元的Environment子项下,其功能类似于UserInit键,但只会影响当前登录的用户,而不会影响系统中的其他用户。具体所在注册表路径如下
HKCU:Environemnt\\UserInitMprLogonScript
0x02 通过.NET修改UserInitMprLogonScript键值
以下是 .NET 修改 UserInitMprLogonScript 键值,实现在用户登录时执行calc.exe程序,具体代码如下所示。
string binpath= @"C:\Windows\System32\calc.exe";
RegistryKey registryKey2 = Registry.CurrentUser.Create