应急响应-启动项排查
在应急响应排查中,启动项和任务计划是攻击者常用的持久化手段。以下是对Windows和Linux系统的详细排查指南,涵盖基础步骤及扩展注意事项:
一、启动项排查
Windows系统
-
系统配置(msconfig)
- 运行
msconfig
→ 查看"启动"标签(Win10以上需通过任务管理器查看启动项)。 - 注意:部分恶意启动项可能隐藏为禁用状态或通过服务加载。
- 运行
-
注册表检查
-
关键注册表路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run(64位系统)
-
扩展检查:
RunOnce
、RunServices
、Policies\Explorer\Run
等键值。
-
-
其他启动位置
- 启动文件夹 :
- 用户级:
C:\Users\<用户名>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
- 系统级:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
- 用户级:
- 服务 :运行
services.msc
,检查"启动类型"为"自动"的服务,尤其是未签名的服务。 - WMI订阅 :使用
Get-WMIObject -Namespace root\Subscription -Class __EventFilter
检查可疑事件订阅。
- 启动文件夹 :
Linux系统
-
传统Init脚本
- 检查
/etc/rc.local
、/etc/init.d/
和/etc/rc*.d/
目录,确认是否有异常脚本。 - 使用
ls -alt /etc/init.d/
查看最近修改的文件。
- 检查
-
Systemd服务
- 运行
systemctl list-unit-files --type=service --state=enabled
查看已启用的服务。 - 检查
/etc/systemd/system/
和/usr/lib/systemd/system/
下的服务文件。
- 运行
-
Cron定时任务
@reboot
类型的任务可能用于启动,需检查/etc/crontab
、/var/spool/cron/
和用户目录下的 cron 任务。
-
Shell配置文件
- 检查
~/.bashrc
、~/.bash_profile
、~/.profile
等文件是否被注入恶意命令。
- 检查
二、任务计划排查
Windows系统
-
图形化界面
- 打开"任务计划程序"(taskschd.msc),检查所有任务列表,重点关注以下属性:
- 触发起始条件(如系统启动、用户登录)。
- 执行的操作(如运行可疑脚本或可执行文件)。
- 打开"任务计划程序"(taskschd.msc),检查所有任务列表,重点关注以下属性:
-
命令行工具
- PowerShell :
Get-ScheduledTask | Where-Object { $_.State -eq "Ready" }
- CMD :
schtasks /query /fo LIST /v
- 文件检查 :查看
C:\Windows\System32\Tasks
目录下的XML任务文件。
- PowerShell :
-
隐藏任务
- 使用
Autoruns
(Sysinternals工具)全面扫描任务计划、服务、驱动等。
- 使用
Linux系统
-
Cron任务
- 用户级:
crontab -l
(当前用户)或crontab -u root -l
。 - 系统级:检查
/etc/crontab
、/etc/cron.d/*
、/etc/cron.hourly/daily/weekly/monthly/
。
- 用户级:
-
Systemd定时器
- 运行
systemctl list-timers --all
查看所有激活的定时器。
- 运行
-
其他位置
- 检查
/var/spool/anacron/
(anacron任务)及用户家目录下的隐藏文件(如.bashrc
中的定时任务)。
- 检查
三、其他关键检查项
Windows防火墙与网络规则
-
图形化界面
- 检查"高级安全Windows防火墙"中的入站/出站规则,重点关注允许外部连接的可疑规则。
-
命令行工具
- 查看当前规则:
netsh advfirewall firewall show rule name=all
- 导出规则分析:
netsh advfirewall export "firewall.txt"
- 查看当前规则:
Linux网络与进程
-
网络连接
- 使用
netstat -antp
或ss -tulwnp
查看异常连接。 - 检查
/etc/hosts.allow
和/etc/hosts.deny
是否有篡改。
- 使用
-
进程与服务
- 运行
top
、htop
或ps auxf
查看异常进程。 - 使用
lsof -p <PID>
分析进程打开的文件和网络连接。
- 运行
四、扩展建议
-
时间线分析
- 使用
stat
(Linux)或文件属性(Windows)检查启动项/任务文件的创建、修改时间。 - 对比系统日志时间范围(如Windows事件ID 4698、Linux cron日志
/var/log/cron
)。
- 使用
-
文件完整性检查
- 计算可疑文件的哈希值(如
Get-FileHash
in PowerShell,sha256sum
in Linux)。 - 使用杀毒软件或EDR工具进行全盘扫描。
- 计算可疑文件的哈希值(如
-
自动化工具
- Windows:Sysinternals Suite(Autoruns、Process Explorer)。
- Linux :Rkhunter、Chkrootkit 检测Rootkit,
auditd
分析文件变动。
通过以上步骤,可系统性地排查恶意启动项与任务计划,结合日志分析和工具辅助,提升应急响应效率。