应急响应-进程排查

进程排查

进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。无论在Windows还是Linux中,主机在感染恶意程序后,恶意程序都会启动相应进程来完成恶意操作。

Windows进程排查

对于Windows系统中的进程排查,主要是找到恶意进程的PID、程序路径,有时还需要找到PPID(PID的父进程)及程序加载的DLL。对于进程的查看,一般有如下几种方式:

  1. 通过【任务管理器】查看可疑进程。
    在打开【任务管理器】窗口后,点击【查看】>>【选择列】添加【命令行】和【映射路径名称】等进程页列,以方便获取更多进程信息。
    应急响应-进程排查_第1张图片

  2. 使用【tasklist】命令进行排查,显示运行在计算机的所有进程,可看到映像名称、PID、会话名等信息。
    应急响应-进程排查_第2张图片

【tasklist】添加特定参数,还可以查看每个进程提供的服务。
如:添加svc参数,可以显示每个进程和服务对应的情况;
应急响应-进程排查_第3张图片

添加m参数,查询进程加载的恶意程序,
应急响应-进程排查_第4张图片
如果想要查询特定DLL的调用情况,可以使用【tasklist/m DLL名称】
应急响应-进程排查_第5张图片

  1. 使用【netstat】命令进行排查;
    在命令行中输入【netstat】,可以显示网络连接的信息,包括活动的TCP连接、路由器和网络接口信息。
-a 显示所有连接和侦听端口
-b 显示在创建每个连接或侦听端口时涉及的可执行程序
-n 以数字形式显示地址和端口号
-o 显示拥有的与每个连接关联的进程ID
-p 显示proto指定的协议的连接

应急响应-进程排查_第6张图片

常见的网络状态说明:

LISTENING:侦听状态
ESTABLISHED:建立连接
CLOSE_WAIT:对方主动关闭连接或网络异常导致连接中断

在排查过程中,一般会使用【netstat -ano | findstr “ESTABLISHED”】命令查看目前的网络连接,定位可疑的ESTABLEISHED。
应急响应-进程排查_第7张图片

  1. 使用【wmic】命令进行查询;
    (1) 在命令行使用【wmic process】命令,可以对进程情况进行查询。
    如果感觉很乱的话,可以使用【wmic process > c:/1.txt】输出到文本进行查看。
    应急响应-进程排查_第8张图片
    (2)【wmic process get ExecutablePath, processid/format: csv】命令表示以csv格式来显示进程路径、进程ID。
    应急响应-进程排查_第9张图片

(3)【wmic process get name, ExecutablePath, processid, parentprocessid/format: csv|findstr/| “appdata”】命令表示以csv格式来显示进程的名称、进程路径、进程ID、父进程ID信息。
在这里插入图片描述

(4)【wmic process where processid=380 get parentprocessid】命令表示以PID的值作为条件来获取其父进程的PID情况;
应急响应-进程排查_第10张图片

(5)【wmic process where processid=4 get commandline】命令表示以PID的值作为条件来获取命令行;
应急响应-进程排查_第11张图片

  1. 【wmic process where name=“bind_4556.exe” call terminate】命令是指删除“bind_4556.exe”恶意程序的进程。
    运行一个名为bind_4556.exe的恶意木马;
    应急响应-进程排查_第12张图片
    删除“bind_4556.exe”恶意程序的进程。
wmic process where name="bind_4556.exe" call terminate

应急响应-进程排查_第13张图片
再次查看;
应急响应-进程排查_第14张图片

  1. 【wmic process where processid=[PID] delete】命令是指删除PID为某值的进程。
    再次打开木马;PID为2004;
    应急响应-进程排查_第15张图片
    删除PID为2004的恶意进程。
wmic process where processid=2004 delete

在这里插入图片描述

Linux进程排查

Linux系统的进程排查相对于Windows比较简单一点;
主要使用以下方式:

  1. 一般情况下使用【ps -aux】查看,但是对于进程排查的帮助不是特别大!
    应急响应-进程排查_第16张图片

  2. 最常用的排查命令【netstat -ntap】查看网络连接情况和调用进程的PID再通过【ls -alt /proc/PID】查看进程的可执行文件。
    应急响应-进程排查_第17张图片

  3. 【pwdx pid】 获取该pid的进程启动的时候的⽬录,并不⼀定是恶意⽂件所在的路径,只是启动恶意⽂件的路径;【systemctl status pid】 获取这个进程的status信息

  4. 获取异常进程pid;
    (1)CPU占⽤

top -c -o %CPU
-c 参数显示进程的命令⾏参数
-p 参数指定进程的pid

应急响应-进程排查_第18张图片按Q退出;

ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%cpu | head -n 5
cpu占⽤前5的进程信息

在这里插入图片描述

(2)内存占⽤

top -c -o %MEM
-c 参数显示进程的命令⾏参数
-p 参数指定进程的pid

应急响应-进程排查_第19张图片

ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%mem | head -n 5
内存占⽤前5的进程信息

应急响应-进程排查_第20张图片

  1. 有些进程会起⼦进程,可以使⽤如下命令查看:
ps ajfx

如果⽆⼦进程,直接使⽤【kill -9 pid】 这样会直接杀死指定进程,但是,由这个进程产⽣的⼦进程不会被杀死;
如果进程起⼦进程,需要使⽤如下命令:【kill -9 -pid】 注意,这⾥pid前有个减号,表示杀掉这个进程组;

使⽤ ps ajfx 可以看到具体的PPID、PID、PGID、SID 信息;
应急响应-进程排查_第21张图片
程序运⾏起来后,会产⽣⼀个主进程,并且分配⼀个进程ID(pid),如果在运⾏期间起其他进程,那么这个其他进程就是⼦进程,同时分配相应的进程ID,并设置其PPID的值为⽗进程的pid,此时,⽗进程和所有⽣成的⼦进程会组合成⼀个进程组,并且分配⼀个进程组ID。所以,如果挖矿程序有调⽤⼦进程,那么就需要以进程组为单位杀死!

你可能感兴趣的:(应急响应,应急响应,Windows应急响应,Linux应急响应,网络安全)