注册表运行键/启动文件夹
对手可能通过将程序添加到启动文件夹或使用注册表运行键引用它来实现持久性。在注册表或启动文件夹中添加条目将导致引用的程序在用户登录时执行。(引用: Microsoft Run Key) 这些程序将在用户的上下文中执行,并具有该账户的相关权限级别。 在Windows系统上默认创建以下运行键: * HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
* HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
* HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
* HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
运行键可能存在于多个配置单元下。(引用: Microsoft Wow6432Node 2018)(引用: Malwarebytes Wow6432Node 2016) HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
也可用,但在Windows Vista及更高版本上默认未创建。注册表运行键条目可以直接引用程序或将其列为依赖项。(引用: Microsoft Run Key) 例如,可以使用RunOnceEx的“Depend”键在登录时加载DLL:reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\0001\Depend /v 1 /d "C:\temp\evil[.]dll"
(引用: Oddvar Moe RunOnceEx Mar 2018) 将程序放置在启动文件夹中也会导致该程序在用户登录时执行。每个用户账户都有一个启动文件夹位置,以及一个系统范围的启动文件夹,无论哪个用户账户登录都会检查。当前用户的启动文件夹路径是C:\Users\[Username]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
。所有用户的启动文件夹路径是C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
。 以下注册表键可用于设置启动文件夹项以实现持久性: * HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
* HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
* HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
* HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
以下注册表键可以控制启动期间服务的自动启动: * HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
* HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
* HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
* HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
使用策略设置指定启动程序会在以下两个注册表键中创建相应的值: * HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
* HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
列在注册表键HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows
的加载值中的程序会自动为当前登录的用户运行。 默认情况下,注册表键HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
的多字符串BootExecute
值设置为autocheck autochk *
。此值会导致Windows在启动时检查硬盘的文件系统完整性,如果系统异常关闭。对手可以将其他程序或进程添加到此注册表值中,这些程序或进程将在启动时自动启动。 对手可以使用这些配置位置来执行恶意软件,例如远程访问工具,以在系统重启时保持持久性。对手还可以使用伪装使注册表条目看起来与合法程序相关。