在Windows系统下,实现持久化的木马程序通常会利用系统的各种机制,以保证即使系统重启后仍然能够加载并运行。以下是一些最常见且持久化的加载方式:
1.故障排除
- 运行/运行一次(
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
) - 运行服务(
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
) - 用户初始化(
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
) - 壳(
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
)
2.服务(Windows服务)
- 以
sc.exe
或New-Service
命令创建一个新的Windows服务,设置其启动类型为Auto
,这样即使系统重启也自动启动。
3.任务计划(预定任务)
- 使用
schtasks
命令创建计划任务,使木马在特定时间或系统启动时运行。
4. DLL劫持(DLL Hijacking)
- 替换或劫持合法软件加载的DLL,在系统或应用程序启动时自动执行。
5. WMI 持久化
- 通过
WMI Event Subscription
机制触发恶意代码执行。
6.影像劫持(图像文件执行选项,IFEO)
- 通过修改
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
,劫持合法进程,授予执行非法代码。
7. AppInit_DLLs
- 修改
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs
,强制特定DLL在所有进程中加载。
8. Bootkit 和 Rootkit
- 修改MBR(Master Boot Record)或VBR(Volume Boot Record),使木马在操作系统启动之前执行。
9.映像劫持
- 替换
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
的explorer.exe
默认加载恶意代码。
10.修改系统启动项
- 替换
winlogon.exe
、explorer.exe
或userinit.exe
等关键系统文件,生成在登录时运行恶意代码。
这些方法各有优缺点,取决于目标环境的安全策略和防护措施。