应急响应-挖矿病毒处理
使用top
命令实时监控占用CPU资源的是哪个进程,结果可以看到是2725这个进程。
再使用netstat -anltp命令查看网络连接状态,定位到对应的PID号后,就拿到了远程地址
拿到远程IP,结果是VPN入口不是矿池。但也可以知道这个远程地址吧就不是好玩意。
再去到/proc目录里面,找到对应PID号的文件夹;这个文件夹包含系统中运行进程的信息
执行 ls -l exe
这个命令可以查看这个进程的执行路径,这将显示指向进程可执行文件的符号链接。就可以知道这个恶意的程序在系统中的位置。
再通过ps -ajxf
命令看一下这个恶意程序有没有创建其它子线程;结果是并没有其它关联的进程或线程了
没有发现其它进程了那就可以直接 kill -9 2725
杀掉进程即可。
如果发现了其它进程就需要 kill -9 -2725
;在这个进程号前面加上**-号**,会直接杀掉整个进程组(这种方式会发送信号给进程组中的所有进程,不需要特别指定父进程号或者特定的子进程号)
杀掉之后,需要监控一下,程序是否会再自动运行起来,这里并没有。
如果这个文件有a和i属性会导致文件不可修改也不可删除
chattr -a filename
chattr -i filename
把文件的这两个属性去除掉即可
如果文件乱码无法通过文件名来删除文件,则可以通过文件i节点号删除即可
ls -il
:获取文件的i节点号
find ./ -inum
**i节点号值
** -exec rm -f {} \;
不需确定直接删除指定i节点号对应的文件
挖矿病毒一般会加入启动项 或者定时任务里面,都需要排查。
而且定时任务和启动项也可能会因为某个程序而自动创建,导致你删了定时任务后又会出现定时任务这种删不干净的情况。
所以如果条件允许的话在清除掉相关定时任务和启动项后重启一下服务器或许可以解决这种情况,不允许重启系统就需要搞清楚到底是哪个脚本在自动创建定时任务,删除它。
定时任务的查看:
-
使用crontab -l 命令查看当前用户的定时任务列表。
-
对于root用户,你可以使用
crontab -l -u username
来查看其他用户的定时任务。 -
查看cron.daily、cron.weekly等目录:定时任务可能还被配置在
/etc/cron.daily/
、/etc/cron.weekly/
等目录中。这些目录包含了系统每日、每周定时执行的任务。bashls /etc/cron.daily/ ls /etc/cron.weekly/ ls /etc/crontab ls /etc/cron.d/ cat /etc/passwd | cut -f 1 -d : |xargs -I {} crontab -l -u {} # 查看所有用户的定时任务 #定时任务的配置文件也会存储在/var/spool/cron/目录中。每个用户的定时任务可以在对应的用户目录下找到。 ls /var/spool/cron/ cat /var/spool/cron/Your_username
发现跟挖矿程序相关的定时任务都清理掉,下面的自启动项也是同理
查看启动项:
systemctl list-unit-files
如果 systemctl list-unit-files 命令的输出中,某个单元文件的 STATE 列显示为 "enabled",那么说明该单元文件是启用的,意味着它会在系统启动时自动加载和运行。
启动脚本通常位于/etc/init.d/
或/etc/rc.d/
目录(或其子目录如/etc/rc.d/init.d/
)来存储启动脚本中。
在一些Linux系统中,特别是使用systemd的系统,启动项脚本可能被保存在/etc/systemd/system/
或/lib/systemd/system/
要确切确定系统的启动项脚本存储路径,最好查看系统的文档或查看特定发行版的惯例。不同的Linux发行版可能会有一些差异。
分析对方是从什么点拿到的服务器权限
把内部的恶意脚本都清理干净后,再去分析对方是如何拿到系统权限并上传的这些恶意文件。
那得先看看这台服务器上运行的都有什么服务
有web服务吗?有的话用漏扫工具扫一下看看会不会有什么点
如果是windows系统是不是开启了远程桌面导致被爆破口令拿到的权限
还是说有Redis未授权等一些其它情况导致的。都需要排查清除
如果是web服务,那很有可能对方留下了后门文件,后门查杀出来的话就在服务器的logs日志里查谁访问了这个后门文件也可以定位出来这个攻击者的远程地址
grep "恶意IP" "web服务器日志路径" > ./ret.txt
- 查看访问的URL和参数: 如果攻击者使用了特定的URL路径或参数来进行攻击,注意查看这些信息。
- 审查服务器配置文件: 检查你的Web服务器配置文件,确保没有配置错误或者不安全的设置。特别关注是否有不必要的模块启用、权限设置是否正确,以及是否有不安全的目录或文件权限。
- 更新和修复漏洞: 确保你的Web服务器和相关的应用程序都是最新版本,并修复已知的漏洞。攻击者可能利用已知的漏洞来入侵系统。
- 应用安全补丁: 如果你发现了特定漏洞,确保应用了相关的安全补丁。这包括操作系统、Web服务器、数据库以及你的应用程序本身。