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