应急响应-进程排查
五、进程排查
进程是攻击者维持权限或执行恶意操作的核心载体,需结合命令行工具、路径分析及网络连接综合排查。
Windows系统进程排查
-
任务管理器(图形化界面)
- 打开任务管理器 → 查看“详细信息”标签页 → 右键标题栏,添加列:
- 命令行:显示进程启动的完整命令(识别可疑参数)。
- 映像路径名称:确认进程路径是否合法(如
C:\Windows\System32
为正常,AppData
、Temp
需警惕)。
- 注意:恶意进程可能伪装为系统进程(如
svchost.exe
),需结合服务与路径分析。
- 打开任务管理器 → 查看“详细信息”标签页 → 右键标题栏,添加列:
-
tasklist命令
- 基础信息:
tasklist /svc # 显示进程关联的服务 tasklist /m ntdll.dll # 检查加载特定DLL的进程
- 过滤器功能:
tasklist /fi "STATUS eq RUNNING" # 筛选运行中的进程 tasklist /fi "IMAGENAME eq powershell.exe" # 按进程名过滤
- DLL注入检测:
tasklist /m # 列出所有进程加载的DLL tasklist /m /fi "MODULES eq evil.dll" # 查找加载恶意DLL的进程(需替换名称)
- 基础信息:
-
网络连接分析(netstat)
- 定位可疑连接:
netstat -ano | findstr "ESTABLISHED" # 查看活跃连接 netstat -anb > netstat.txt # 导出带进程名的连接(需管理员权限)
- 关联进程与PID:
tasklist | findstr "1234" # 根据PID查找进程名 wmic process where ProcessId=1234 get ExecutablePath, CommandLine # 获取详细路径
- 定位可疑连接:
-
PowerShell高级查询
- 获取进程详细信息:
Get-Process | Select-Object Name, Id, Path, ParentProcessId # 基础信息 Get-WmiObject Win32_Process | Where-Object { $_.Path -match "AppData" } # 检查敏感路径
- 分析父子进程关系:
Get-CimInstance Win32_Process | Format-Table ProcessId, ParentProcessId, CommandLine # 识别异常进程链(如explorer.exe启动的未知进程)
- 获取进程详细信息:
-
WMIC命令
- 导出进程列表:
wmic process get Name, ExecutablePath, ProcessId, ParentProcessId /format:csv > processes.csv # 生成CSV文件分析
- 快速筛选:
wmic process where "Name='rundll32.exe'" get CommandLine # 检查rundll32执行的恶意代码
- 导出进程列表:
-
扩展工具(Sysinternals Suite)
- Process Explorer:
- 实时查看进程树、加载的DLL、句柄及网络连接。
- 高亮异常进程(如未签名的
svchost.exe
)。
- Process Monitor:
- 监控进程的文件、注册表、网络活动,捕获恶意行为。
- Process Explorer:
Linux系统进程排查
-
基础命令
- 进程列表:
ps aux --forest # 显示进程树(识别异常父子关系) top -H -p <PID> # 查看指定进程的线程
- 网络连接:
netstat -tulnp | grep ESTABLISHED # 传统方式 ss -tunlp # 更现代的替代命令 lsof -i :443 # 检查占用指定端口的进程
- 进程列表:
-
/proc目录分析
- 检查进程详细信息:
ls -l /proc/<PID>/exe # 查看进程真实路径(若返回 deleted,可能为无文件进程) cat /proc/<PID>/cmdline # 查看启动命令(含参数) cat /proc/<PID>/environ # 查看进程环境变量(寻找注入痕迹)
- 检查进程详细信息:
-
隐藏进程检测
- 对比进程列表:
ps -ef | awk '{print $2}' | sort -n > ps_pids.txt ls /proc | grep -E '^[0-9]+$' | sort -n > proc_pids.txt diff ps_pids.txt proc_pids.txt # 差异部分可能是隐藏进程
- Rootkit检测工具:
unhide proc # 检测隐藏进程 chkrootkit # 扫描常见后门
- 对比进程列表:
-
资源占用分析
- 动态监控:
htop # 交互式查看CPU/内存占用(支持进程过滤) glances # 综合监控工具(含网络和磁盘IO)
- 僵尸进程清理:
kill -9 <PID> # 强制终止进程(谨慎使用) pkill -f "malware" # 按进程名批量终止
- 动态监控:
六、进程排查扩展技巧
-
时间线与行为分析
- Linux:
stat /proc/<PID>/exe # 查看进程文件修改时间 auditctl -w /bin/ -p warx # 监控关键目录的进程创建
- Windows:
- 通过事件日志(事件ID 4688:进程创建)追踪进程启动记录。
- Linux:
-
内存取证
- 使用
Volatility
(Windows)或LiME
(Linux)提取内存镜像,分析隐藏进程或注入代码。
- 使用
-
可信度验证
- 文件签名检查:
Get-AuthenticodeSignature -FilePath "C:\path\to\file.exe" # Windows
rpm -Vf /usr/bin/sshd # Linux(验证RPM包文件完整性)
- 文件签名检查:
七、注意事项
-
谨慎终止进程:
- 确认进程恶意性后再终止,避免影响系统稳定性。
- 记录进程的PID、路径、网络连接等证据。
-
防御对抗:
- 恶意进程可能挂钩API、隐藏自身(如Rootkit),需结合内存分析和专业工具。
-
自动化脚本:
- 编写脚本批量提取进程信息(如定时运行
ps aux > ps_$(date +%s).log
对比历史记录)。
- 编写脚本批量提取进程信息(如定时运行
通过上述方法,可系统化识别异常进程,结合上下文(如网络连接、启动项)判断其危害性,为后续处置提供依据。