T1547.001: 注册表 Run 键 / 启动文件夹
摘要
攻击者可能通过将程序添加到启动文件夹或用注册表 run 键引用它来实现持久化。在注册表的“run 键”或启动文件夹中添加条目将导致引用的程序在用户登录时执行。(Citation: Microsoft Run Key) 这些程序将在用户的上下文中执行,并具有该账户关联的权限级别。 以下 run 键在 Windows 系统上默认创建: * <code>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run</code> * <code>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce</code> * <code>HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run</code> * <code>HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce</code> Run 键可能存在于多个配置单元下。(Citation: Microsoft Wow6432Node 2018)(Citation: Malwarebytes Wow6432Node 2016) <code>HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx</code> 也可用,但在 Windows Vista 及更新版本上默认不创建。注册表 run 键条目可以直接引用程序或将它们列为依赖项。(Citation: Microsoft Run Key) 例如,可以使用 RunOnceEx 的 "Depend" 键在登录时加载 DLL:<code>reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\0001\Depend /v 1 /d "C:\temp\evil[.]dll"</code> (Citation: Oddvar Moe RunOnceEx Mar 2018) 将程序放置在启动文件夹内也会导致该程序在用户登录时执行。有一个用于单个用户账户的启动文件夹位置,以及一个无论哪个用户账户登录都会被检查的全系统启动文件夹。当前用户的启动文件夹路径为 <code>C:\Users\[Username]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup</code>。所有用户的启动文件夹路径为 <code>C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp</code>。 以下注册表键可用于设置启动文件夹项以实现持久化: * <code>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders</code> * <code>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders</code> * <code>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders</code> * <code>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders</code> 以下注册表键可以控制服务在引导期间的自动启动: * <code>HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce</code> * <code>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce</code> * <code>HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices</code> * <code>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices</code> 使用策略设置指定启动程序会在两个注册表键任一中创建相应的值: * <code>HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run</code> * <code>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run</code> 注册表键 <code>HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows</code> 的 load 值中列出的程序会为当前登录用户自动运行。 默认情况下,注册表键 <code>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager</code> 的多字符串 <code>BootExecute</code> 值设置为 <code>autocheck autochk *</code>。此值导致 Windows 在启动时,如果系统异常关机,则检查硬盘的文件系统完整性。攻击者可以向此注册表值添加其他程序或进程,在引导时自动启动。 攻击者可以使用这些配置位置执行恶意软件(如远程访问工具),以通过系统重启维持持久化。攻击者还可能使用[伪装](https://attack.mitre.org/techniques/T1036)使注册表条目看起来与合法程序相关联。
来源归属
来源:MITRE ATT&CK · 置信度:high
平台
- Windows
战术
持久化
参考来源
- https://attack.mitre.org/techniques/T1547/001
- https://blog.malwarebytes.com/cybercrime/2013/10/hiding-in-plain-sight/
- https://docs.microsoft.com/en-us/windows/win32/sysinfo/32-bit-and-64-bit-application-data-in-the-registry
- https://learn.microsoft.com/en-us/windows/win32/setupapi/run-and-runonce-registry-keys
- https://oddvar.moe/2018/03/21/persistence-using-runonceex-hidden-from-autoruns-exe/
- https://technet.microsoft.com/en-us/sysinternals/bb963902