记一次与“.sh”挖矿病毒斗智斗勇

记一次与“.sh”挖矿病毒斗智斗勇

背景:

公司同事突然反应有一台服务器上的资源总是请求失败,遂登录服务器查看日志,

登录后才知道,cpu进程100%,top查看进程信息,发现并无高利用率进程,猜测是中了挖矿病毒,遂展开排查。

排查方向:

  1. 定时任务:(按照挖矿病毒杀死会重启的尿性,猜测应该会有一个定时任务在无时无刻运行)

运行 crontab -e

发现如下:
定时任务
果然有一个定时任务在运行,先运行service crond stop 停止定时任务,

根据定时任务找到可疑可执行文件。

  1. 可执行文件

挖矿病毒的可执行文件在/usr/lib/mysql/目录下

删除此目录下的所有文件:

rm -rf /usr/lib/mysql/*

发现文件属性被修改了,不能删除,于是查看目录属性:

lsattr /usr/lib/mysql/mysql

提示没有此命令,看来挖矿脚本把此命令卸载了,于是重新安装此命令:

yum install e2fsprogs

再运行:lsattr /usr/lib/mysql/mysql

发现此文件加了属性,运行chattr -a /usr/lib/mysql/mysql

解除属性限制,再进行删除!

  1. /etc/hosts文件:
    hosts文件
    对可疑域名进行排查:
    域名
    bitcoin
    至此可以百分百确定是挖矿病毒了。

  2. 隐藏进程:

明明监控显示CPU跑到了100%,却没找到对应进程,于是怀疑进程被隐藏了:

经过百度,谷歌,终于知道了其中的奥秘:

感谢两位博主:

https://cloud.tencent.com/developer/article/1154705?from=information.detail.linux%20%E6%9F%A5%E7%9C%8B%E9%9A%90%E8%97%8F%E8%BF%9B%E7%A8%8B

https://www.cnblogs.com/mysgk/p/9602977.html

关于隐藏进程的说明:

在 Linux 操作系统的动态链接库加载过程中,动态链接器会读取 LD_PRELOAD 环境变量的值和默认配置文件
/etc/ld.so.preload 的文件内容,并将读取到的动态链接库进行预加载,即使程序不依赖这些动态链接库,LD_PRELOAD
环境变量和 /etc/ld.so.preload 配置文件中指定的动态链接库依然会被装载,它们的优先级比 LD_LIBRARY_PATH
环境变量所定义的链接库查找路径的文件优先级要高,所以能够提前于用户调用的动态库载入。
——段落引自《警惕利用 Linux 预加载型恶意动态链接库的后门》

于是根据以上信息,查找响应文件,果然找到了:
动态链接库1
笔者没有删除此文件,而是进行了重命名,看看文件里面写的什么:

内容
查看此文件:
动态链接库2
说明此文件确实跟挖矿进程隐藏有关,故进行重命名:(以上为重命名之后)

好了,此时挖矿进程就该浮出水面了,运行top。

浮出水面:
.sh
由上已经获悉了挖矿进程的PID,

运行 ps -ef | grep $PID以查看此进程的可执行文件:

发现为/usr/bin/.sh

故chattr解除属性,删掉此文件,运行kill -9 $PID

好景不长:

CPU占用率马上下降了,但是好景不长,1min后cpu再次占用至100%,猜测肯定是有一个

进程在不断的检测.sh进程是否运行,如果没运行,就再在/usr/bin下写入.sh文件执行。

彻底解决:

原理猜个大概,于是把windos上屏蔽广告那一套应用到此处:

在/usr/bin下创建.sh目录,并“以其道还其身”,利用chattr命令将.sh目录添加属性限制,

这样一来此目录不能修改,不能删除,.sh挖矿程序不能写入目标目录,所以挖矿进程没法自动重启。

此次,挖矿进程阻断成功。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值