4
清除启动项
除了计划任务,挖矿木马通过添加启动项同样能实现持久化。可以使用如下命令查看开机启动项中是否有异常的启动服务。
CentOS7以下版本:
chkconfig –list
CentOS7及以上版本:
systemctl list-unit-files
如果发现有恶意启动项,可以通过如下命令进行关闭:
CentOS7以下版本:
chkconfig 服务名 off
CentOS7及以上版本:
systemctl disable 服务名
另外,还需要仔细排查以下目录及文件,及时删除可疑的启动项:
/usr/lib/systemd/system/usr/lib/systemd/system/multi-user.target.wants/etc/rc.local/etc/inittab/etc/rc0.d//etc/rc1.d//etc/rc2.d//etc/rc3.d//etc/rc4.d//etc/rc5.d//etc/rc6.d//etc/rc.d/
排查的时候,可以按照文件修改时间来排序,重点排查近期被创建服务项。如下图所示,系统近期被创建了一个名为bot.service的服务,该服务在系统启动时会启动/etc/kinsing这个木马文件,需要关闭bot服务,并删除/etc/kinsing文件。
5
清除预加载so
通过配置/etc/ld.so.preload,可以自定义程序运行前优先加载的动态链接库,部分木马通过修改该文件,添加恶意so文件,从而实现挖矿进程的隐藏等恶意功能。
检查/etc/ld.so.preload(该文件默认为空),清除异常的动态链接库。可以执行`> /etc/ld.so.preload`命令进行清除。
6
清除SSH公钥
挖矿木马通常还会在~/.ssh/authoruzed_keys文件中写入黑客的SSH公钥,这样子就算用户将挖矿木马清除得一干二净,黑客还是可以免密登陆该主机,这也是常见的保持服务器控制权的手段。
排查~/.ssh/authorized_keys文件,如果发现可疑的SSH公钥,直接删除。
7
清除挖矿木马
(1)清除挖矿进程
挖矿木马最大的特点就是会在用户不知情的情况下,利用主机的算力进行挖矿,从而消耗主机大量的CPU资源,所以,通过执行如下命令排查系统中占用大量CPU资源的进程。
top -cps -ef
确认相关进程为挖矿进程后,按照如下步骤将其清除:
获取并记录挖矿进程的文件路径:
ls -l /proc/$PID/exe
杀死挖矿进程:
kill -9 $PID
删除挖矿进程对应的文件
(2)清除其它相关恶意进程
恶意进程与外部的C2服务器进行通信时,往往会开启端口进行监听。执行如下命令,查看服务器是否有未被授权的端口被监听。
netstat -antp
若有未授权进程,按照如下步骤将其清除:
获取并记录未授权进程的文件路径:
ls -l /proc/$PID/exe
杀死未授权进程:
kill -9 $PID
删除未授权进程对应的文件
还可以通过如下命令排查近期新增的文件,清除相关木马
find /etc -ctime -2 (这里指定目录为/etc,获取近2天内的新增文件) lsof -c kinsing (这里要查看文件名为kinsing的相关进程信息)
8
风险排查、安全加固
对系统进行风险排查和安全加固,避免挖矿木马卷土重来,详情可参考如下链接:https://cloud.tencent.com/document/product/296/9604
四. 常见问题
1
明明刚刚清理了挖矿木马,没过多久就又卷土重来?
很多用户会反馈挖矿木马老是清理不干净,明明已经Kill了进程,删除了木马文件,没过多久,CPU占用率又上来了。究其根本,还是因为清除得不够彻底。大部分用户都只是Kill掉挖矿进程和对应文件,却没有清理计划任务和守护进程。
一般建议先清除计划任务、启动项、守护进程,再清除挖矿进程和其他恶意进程。
2
如何判定可疑进程是否为恶意进程?
如下图所示,未知进程kinsing监听本地31458端口,非常可疑,可通过如下方法判定:
(1)执行`ls -al /proc/$PID/exe`确认可疑进程对应的文件;
(2)若文件未被删除,则直接上传文件到Virustotal进行检测,或者计算出文件对应的md5,使用md5去Virustotal进行查询;若文件已被删除,可执行`cat /proc/$PID/exe > /tmp/t.bin`将进程dump到特定目录,再上传文件到Virustotal或者计算dump文件对应的md5到Virustotal进行查询。如果有多款杀毒引擎同时检出,那基本可以判定该进程为恶意进程。
Virustotal地址:https://www.virustotal.com/gui/s
3
为什么系统CPU占用率接近100%,却看不到是哪个进程导致的?
如下图所示,系统CPU占用率接近100%,却看不到是哪个进程导致的,这种情况一般是因为系统命令被木马篡改了,从而隐藏了木马进程的踪迹,让用户无法进行溯源分析。
命令篡改有多种方式,分别如下:
(1)top源文件被篡改,恶意进程信息被过滤后返回
通过执行如下命令即可复原:
rm -rf /usr/bin/top && mv /usr/bin/top.original /usr/bin/top
【相关文章】
https://blog.csdn.net/chenmozhe22/article/details/112578057
(2)篡改预加载so文件,ls、top、ps等命令已经被木马的动态链接库劫持,无法获得木马进程相关的信息
通过执行如下命令即可复原:
> /etc/ld.so.preload && rm -rf 恶意so文件路径
【相关文章】
https://cloud.tencent.com/developer/article/1744547
(3)通过其他未知手段篡改系统命令
可分别尝试如下两种方案解决:
i.从其他相同版本系统中拷贝命令源文件到当前系统中进行覆盖;可使用uname -a命令查看当前系统版本;
ii.或者安装busybox来对系统进行排查。
busybox是一个集成了300多个最常用Linux命令和工具的软件,可以使用busybox替代系统命令对系统进行排查;
yum -y install wget make gcc perl glibc-static ncurses-devel libgcrypt-develwget http://busybox.net/downloads/busybox-1.33.0.tar.bz2tar -jxvf busybox-1.33.0.tar.bz2cd busybox-1.33.0 && make && make install
【相关文章】
https://www.cnblogs.com/angryprogrammer/p/13456681.html