进程排查
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础
无论是在Windows系统还是Linux系统中,主机在感染恶意程序后,恶意程序都会启动相应的进程,来完成相关的恶意操作
Windows进程排查
对于Windows系统中的进程排查,主要是找到
- 恶意进程的PID
- 程序路径
- PPID(PID的父进程)
- 程序加载的DLL
对于进程的排查,一般有如下几种方法
任务管理器
比较直观的方法是通过【任务管理器】查看可疑程序,但是需要在打开【任务管理器】窗口后,添加【命令行】和【映射路径名称】等进程页列,以方便获取更多进程信息
tasklist
在命令行中输入【tasklist】命令,可显示运行在计算机中的所有进程,可查看进程的映像名称、PID、会话名等信息
【tasklist】命令添加特定参数,还可以查看每个进程提供的服务
- 添加svc参数,可以显示每个进程和服务的对应情况
- 输入【tasklist /m】命令查询进程加载的恶意进程
- 如果要想查询特定DLL的调用情况,可以使用命令【tasklist /m DLL名称】
netstat
在命令行中输入【netstat】命令,可显示网络连接的信息,包括活动的TCP连接、路由器和网络接口信息,相关参数如下
- -a:显示所有连接和侦听端口
- -b:显示在创建每个连接或侦听端口时涉及的可执行程序
- -n:以数字形式显示地址和端口号
- -o:显示拥有的与每个连接关联的进程ID
- -p proto:显示proto指定的协议的连接
常见的网络状态说明如下:
- LISTENING:侦听状态
- ESTABLISHED:建立连接
- CLOSE WAIT:对方主动关闭连接或网络异常导致连接中断
在排查过程中,一般会使用【netstat -ano | findstr "ESTABLISHED"
】命令查看目前的网络连接,定位可疑的ESTABLISHED
根据netstat里面的pid,可以再结合tasklist命令进行进程查询tasklist | findstr "PID"
注意如果攻击者做了进程迁移,这里可能搜不到对应进程
wmic
使用【wmic】命令进行查询
- 获取系统进程信息:
wmic process
- 根据应用程序查找PID:
wmic process where name="cmd.exe" get processid, executablepath, name
- 根据PID查找应用程序:
wmic process where processid="4296" get executablepath, name
- 以 CSV格式来显示进程的名称、父进程ID、进程ID:
wmic process get name,parentprocessid,processid/format :csv
其他类似命令如下:
wmic process get ExecutablePath,processid/format: csv
-
- 以csv格式来显示进程路径、进程ID信息
wmic process get name,ExecutablePath,processid,parentprocessid/format: csv | findstr /I "appdata"
-
- 以csv格式来显示进程的名称、进程路径、进程ID、父进程D信息
wmic process where processid=[PID] get parentprocessid
-
- 以PID的值作为条件来获取其父进程的PID情况
wmic process where processid=[PID] get commandline
-
- 以PID的值作为条件来获取其命令行
wmic process where name="malware.exe" call terminate
-
- 删除"malware.exe"恶意程序的进程
wmic process where processid=[PID] delete
-
- 删除PID为某值的进程
进程时间
WINDOWS可以借助第三方工具Process Explorer排查
进程资源管理器 - Sysinternals | Microsoft Learn

服务排查
服务可以理解为运行在后台的进程
这些服务可以在计算机启动时自动启动,也可以暂停和重新启动,而且不显示任何用户界面
服务非常适合在服务器上使用,通常在为了不影响在同一台计算机上工作的其他用户,且需要长时间运行功能时使用
在应急响应排查过程中,服务作为一种运行在后台的进程,是恶意软件常用的驻留方法
Windows服务排查
图形化方法
打开【运行】对话框,输入【services.msc】命令,可打开【服务】窗口,查看所有的服务项,包括服务的名称、描述、状态等
命令方法
- 查看当前运行的服务:
net start