网络安全应急响应基础技能(二)

以此来记录和巩固学习的内容

进程排查

        进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在面向线程设计的计算机结构中,进程是线程的容器。无论是在Windows系统还是Linux系统中,主机在感染恶意程序后,恶意程序都会启动相应的进程,来完成相关的恶意操作,有的恶意进程为了能够不被查杀,还会启动相应的守护进程对恶意进程进行守护。

        1.Windows系统

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

        1)通过【任务管理器】查看
        比较直观的方法是通过【任务管理器】查看可疑程序.但是需要在打开【任务管理器】窗口后,添加【命令行】和【映射路径名称】等进程页列,以方便获取更多进程信息. 

         在排查进程时,可重点关注名称和命令行是否可疑,从而进一步排查。

        2)使用【tasklist】命令进行排查

        在命令行输入【tasklist】,可显示运行在计算机中的所有进程,可查看进程的映像名称、PID、会话名等信息。

         使用【tasklist】命令并添加特定参数,还可以查看每个进程提供的服务,如添加svc参数,即输入【tasklist /svc】命令,可以显示每个进程和服务的对应情况

         对于某些加载DLL的恶意进程,可以通过输入【tasklist /m】命令进行查询

 

         DLL:DLL 文件,即动态链接库,也有人称作应用程序拓展。一种可执行文件,允许程序共享执行特殊任务所需的代码和其他资源。应用程序中实行了模块化设计,也就是说并不是每个应用程序都编写完所有的功能代码,而在运行过程中调用相应功能的 DLL,不需运行的功能就不调用,所以加快程序加载速度和效率,其他应用程序可调用相关的 DLL,利于促进代码重用以及内存使用效率,减少资源占用,且程序更新时也只要更新相关的 DLL 就可。

        要想查询特定DLL的调用情况,可以使用命令【tasklist /m 名称】。

         同时,【tasklist】命令还有过滤器的功能,可以使用【fi】命令进行条件筛选, 结合关系运算符【eq】(等于)、【ne】(不等于)、【gt】(大于)、【lt】(小于)、【ge】 (大于等于)、【le】(小于等于)等命令进行有效过滤

         例如,查看PID为 某个值 的进程,可使用命令【tasklist /svc /fi "PID eq PID值"】查看,如图

        3)使用【netstat】命令进行排查

        在命令行中输入【netstat】命令,可显示网络连接的信息,包括活动的 TCP连接、路由器和网络接口信息,是一个监控 TCP/IP 网络的工具。相关参数如下。
-a:显示所有连接和侦听端口。
-b:显示在创建每个连接或侦听端口时涉及的可执行程序。
-e:显示以太网统计信息。可以与-s结合使用。
-f:显示外部地址的完全限定域名(FQDN)。
-n:以数字形式显示地址和端口号。
-0:显示拥有的与每个连接关联的进程 ID。
-p:proto:显示 proto 指定的协议的连接。
-q:显示所有连接、侦听端口和绑定的非侦听TCP端口。绑定的非侦听端口不一定与活动连接相关联。
-r:显示路由表。
-s:显示每个协议的统计信息。默认情况下,显示IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、         UDP 和 UDPv6 的统计信息。
-t:显示当前连接卸载状态。
-x:显示 NetworkDirect 连接、侦听器和共享终结点。
-y:显示所有连接的 TCP 连接模板。无法与其他选项结合使用。
interval:重新显示选定统计信息,每次显示之间暂停时间间隔(以秒计)。
常见的网络状态说明如下。
LISTENING:侦听状态。
ESTABLISHED:建立连接。
CLOSE_WAIT:对方主动关闭连接或网络异常导致连接中断。

        在排查过程中,一般会使用【netstat -ano | findstr "ESTABLISGED"】命令查询目前的网络连接,定位可疑的ESTABLISHED。比如某个PID有大量的网络连接。

        假设你发现了某个PID大量重复出现,这个时候可以结合【tasklist】命令定位程序,使用【tasklist | find "PID值"】。

        也可以通过【netstat -anb】(需要管理员权限)命令快速定位到端口对应的程序。分别是协议、本地地址、外部地址、状态。

        4)使用powershell进行排查

        有时对于有守护进程的进程,还要确认子父进程之间的关系,可以使用
PowerShell进行查看, 一般PowerShell在查询时会调用Wmi对象.[Get-WmiObject Win32_Process| select Name, ProcessId, ParentProcessId, Path ]命令中 Get-WmiObject Win32_Process 表示获取进程的所有信息, select Name, ProcessId, ParentProcessId, Path表示选择Name, ProcessId, ParentProcessId, Path 4个字段, 整个命令表示显示 所有进程信息中的Name, ProcessId, ParentProcessId, Path 4个字段的内容.执行后
的结果如图

        5)使用【wmic】命令进行查询
        (1)在命令行中使用[wmic process]命令,可以对进程情况进行查询.但 使用[wmic process list full /format:csv]命令, 即以csv格式列出进程的所有信息, 此时命令列出的信息过多,不便于阅读.因此,可以使用【wmic process get name,parentprocessid,processid /format:csv】命令,以csv格式来显示进程的名称、父进程ID、进程ID

         其他类似命令如下。
【wmic process get ExecutablePath, processid /format:csv】命令表示以 csv 格式来显示进程路径、进程 ID 信息。
【wmic process get name, ExecutablePath, processid, parentprocessid /format:csv
findstr /"appdata"】命令表示以 csv 格式来显示进程的名称、进程路径、进程 ID、父进程ID 信息。

        2)同时【wmic】命令还可以结合条件对进程进行筛选。
【wmic process where processid=PID get parentprocessid】命令表示以PID的值作为条件来获取其父进程的PID情况。如图所示,是获取PID的值为864的进程的父进程 PID 的值,获取到的父进程 PID 的值为 792。

        其他类似命令如下。
【wmic process where processid=PID值 get commandline】命令表示以PID的值作为条件来获取其命令行。

        (3)在使用[wmic process]命令查出恶意进程后,会结束恶意进程,一般使 用如下命令结束恶意进程.
【wmic process where name="xxxxx. exe" call terminate】命令是指删除 "xxxxx.exe"恶意程序的进程.
【wmic process where processid=PID delete】命令是指删除PID为某值的进程.

        2.Linux系统

        在命令行中输入【netstat】网络连接命令,可分析可疑端口、可疑IP地址、 可疑PID及程序进程.
根据PID的值, 利用[1s-alt /proc/PID]命令, 可查看其对应的可执行程序

也可以利用【lsof -p PID】命令, 查看进程所打开的文件

        如果我们发现了恶意进程,可以使用【kill -9 PID】命令结束进程,如【kill -9 2535】命令表示结束PID为2535的进程。然后使用【rm -r ffilename】命令可删除木马,如要删除 mbrn 文件,则可使用命令【rm -rf mbrn】。如果 root 用户都无法删除相关文件,那么很可能是因为该文件被加上了i属性。使用【Isattr filename】命令,可查看文件属性,然后使用【chattr -i filename】命令,可移除i属性,进而删除文件。也有的进程因为存在守护进程而无法删除,我们可以先把进程挂起,查杀守护进程后,再返回将进程删除。

        有些攻击者会将进程隐藏,以躲避排查,因此查看隐藏进程同样重要。按照
顺序执行【ps -ef | awk '{print}' | sort -n | uniq >1】、 【ls /proc | sort -n |uniq >2】和【diff
1 2】命令,可以查看隐藏进程,如图所示。

        对于挖矿进程的排查,可使用【top】命令查看相关资源占用较高的进程,之后进行定位。重点排查CUP占用,我这里都是正常,如果数值达到一百多就进行重点排查。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值