Linux中挖矿病毒清理通用思路

目录

前言

清理流程

检查修复DNS

停止计划任务

取消tmp目录的可执行权限

服务排查

进程排查

高CPU占用进程查杀

计划任务清理

预加载劫持清理

系统命令变动排查

中毒前后可执行文件排查

系统配置文件排查

小结

前言

在被植入挖矿病毒后,如果攻击者拥有足够的权限,比如root权限,往往会对系统命令进行劫持,达到隐藏自己的效果,故第一步最好是先确认是否存在rootkit劫持、库劫持,之后的命令执行操作也最好是通过busybox执行

清理流程

注:命令均在busybox工具下执行

检查修复DNS

挖矿病毒有时候为了防止访问不到矿池或者代理,往往会修改dns记录,故可以先查看“/etc/resolv.conf”文件内容情况

停止计划任务

为了做到持久化控制,在攻击者权限足够的情况下,往往会写计划任务项,达到持续执行挖矿脚本的目的,为了清理过程中不会再都执行挖矿脚本,先把定时任务服务停止。

    chattr -R -ai /etc/ &>/dev/null  #去除文件不可修改权限
    systemctl stop crond #centos为crond,ubuntu为cron
    systemctl stop atd
    pkill crond 
    pkill atd

取消tmp目录的可执行权限

攻击者为了方便,往往会把运行脚本隐藏在tmp目录下,但是我们清理过程中,如果怕误删或者不清楚哪些是恶意文件的话,可以直接取消tmp目录下所有文件的可执行权限

chattr -R -ai /tmp/ /var/tmp/ /dev/shm/
chmod -R -x /tmp/ /var/tmp/ /dev/shm/

服务排查

正常情况下,服务器所起的系统服务是不会变动的,可以排查中挖矿病毒前后系统服务的变动情况,排查确认异常后可将服务停止,并将文件打包移走

find /etc/systemd/system/ -mtime -近期变动时间 -type f
chattr -ia filename #filename为近期找到的变动过的服务文件
systemctl stop 服务名 #停止服务
systemctl disable 服务名

进程排查

查看所有进程的信息,排查”/proc/pid号/exe” “/proc/pid号/cmdline” ,检查进程的启动命令,已经引用的exe软连接的真实路径。其中如果/proc/pid号/exe”中调用了/bin/bash,(deleted),/tmp/ 都是可疑,有必要排查是否是异常项

高CPU占用进程查杀

中挖矿病毒的一个重要特征就是cpu占用率会非常高,当然一些挖矿病毒为了更好的隐藏自己当老6,会控制cpu的占用率,比如维持在50%以下,同时很多时候我们如果不用busybox的话,top命令等都是看不到有高占用cpu的进程的。

这里可以使用htop,busybox的top命令查看是否高占用cpu的进程,同时通过进程号可查看“/proc/pid号/cmdline”判断是否是异常进程,确认后使用kill命令终止挖矿进程即可

计划任务清理

最开始的时候我们只是停止了计划任务服务,但是并没有对计划任务文件进行清理,这里对计划任务进行清理,一个简便的方法就是查看中挖矿前后发生变动的计划任务文件,这些都是可疑的。

#计划任务目录
("/etc/crontab" "/var/spool/cron/" "/etc/cron.d/" "/etc/cron.daily/" "/etc/cron.hourly/" "/etc/cron.monthly/" "/etc/cron.weekly/" "/etc/init.d" "/etc/rc.d/" "/etc/rc.local")

#排查这些目录中近期发生过变动的文件
find 计划任务目录 -type f -mtime 中病毒前后时间

预加载劫持清理

挖矿有时候为了隐藏自己,会对系统的预加载配置进行修改,让执行的命令加载恶意的so文件,这里需要对这些文件进行清理(注:不确定的时候不要随便清除,如果是劫持的系统自身的so文件,最后找个干净系统的so文件替换)

检测预加载文件,用busybox命令查看
cat /etc/ld.so.preload   #这个文件默认是空的和不存在的,如果有内容并且确认不是管理员的操作话,那么这个so文件就有问题

系统命令变动排查

一直有说到,挖矿为了隐藏自己,有时候会修改系统命令,让我们排查的时候看不到它,这里通过时间排查挖矿后被变动过的系统命令(一般这个命令文件是不会有变动,故变动过的都是可疑的)

cat $PATH  #环境变量下目录
find 环境变量目录 -type -executable -mtime -中病毒前后时间
chattr -ai -R 环境变量目录 #解除环境变量目录不可修改权限,之后对异常命令打包清理

中毒前后可执行文件排查

正常情况下,系统的可执行文件基本是不会变动,基本不会有新增,那中挖矿时间前后变动的可执行文件都是可疑,需要进一步排查清理。

find /etc /tmp /user/ /root /var /lib /dev/shm -maxdepth 3 -mtime -挖矿前后时间 -type f -executable

系统配置文件排查

由一些病毒会对系统配置文件进行修改,这里对这些配置文件操作需要慎重,需确认的确是异常后再清理。

系统配置文件目录:/etc/profile /home/用户名/.bash_profile /home/用户名/.bashrc /home/用户名/.profile
find 系统配置文件目录 -type f -mtime -中病毒前后时间

小结

清理到这里,病毒以及残留文件已经清理干净了,后续的就是重新开启定时任务,重新安装系统命令,恢复dns配置文件,排查入侵原因

你可能感兴趣的:(应急响应,linux,网络安全,系统安全,安全)