一、处理过程
1、接到云平台短信推送,名下业务ip:xxxxx,疑似从事虚拟货币的勘探行为或被恶意植入了挖矿木马。需要尽快处理,否则将对云服务器做出封禁操作。
2、登录云平台查看到业务IP实际关联的产品是NAT网关,根据SNAT规则查看,几乎所有云服务器上网都使用了这个网关,只能查看云服务器的监控。
3、在可观测平台查看多台云服务器监控,定位到1台CPU满负载运行的机器,运行了IOT业务,立马与对应研发沟通,计划对中矿机器进行隔离,并踢出业务负载均衡池,需要其重新部署一台新的业务机器,加入负载均衡池。
4、隔离之后,尝试VNC登录,发现一直黑屏卡死,遂尝试重启后立马登录,重启后能够正常登录,登陆后TOP命令查看CPU开始飙升,看到了一个可疑的进程。直接kill -9 pid 杀掉,再TOP看了下,又重新运行起来。杀不掉,那就find / -name xmrig 查找到对应的程序位置,先将文件删除掉,然后kill -9 pid ,清除进程。再TOP查看就没再运行了。
5、按照云平台提供的手册进行后续处理:
# 1、清除异常计划任务
//查看系统当前用户的计划任务
crontab -l
//查看系统特定用户的计划任务
crontab -u username -l
//查看其他计划任务文件
cat /etc/crontab
cat /var/spool/cron
cat /etc/anacrontab
cat /etc/cron.d/
cat /etc/cron.daily/
cat /etc/cron.hourly/
cat /etc/cron.weekly/
cat /etc/cron.monthly/
cat /var/spool/cron/
# 2、清除异常启动项
//centos7以下的版本查看启动项
chkconfig –list
//centos7及以上的版本查看启动项
systemctl list-unit-files
//centos7以下版本关闭启动项
chkconfig 服务名 off
//centos7及以上版本关闭启动项
systemctl disable 服务名
//排查以下目录及文件,及时删除可疑的启动项,可以按照文件修改时间来排序,重点排查近期被创建服务项(ls -lt)
/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/
# 3、清除预加载so
//通过配置/etc/ld.so.preload,可以自定义程序运行前优先加载的动态链接库,部分木马通过修改该文件,添加恶意so文件,从而实现挖矿进程的隐藏等恶意功能。
//检查/etc/ld.so.preload(该文件默认为空),清除异常的动态链接库。可以执行 > /etc/ld.so.preload`命令进行清除。
# 4、清除ssh公钥
//挖矿木马通常还会在~/.ssh/authoruzed_keys文件中写入黑客的SSH公钥,这样子就算用户将挖矿木马清除得一干二净,黑客还是可以免密登陆该主机,这也是常见的保持服务器控制权的手段。排查~/.ssh/authorized_keys文件,如果发现可疑的SSH公钥,直接删除。
# 5、排查近期新增的文件
//find /etc -ctime -2 (这里指定目录为/etc,获取近2天内的新增文件)
系统CPU占用率接近100%,却看不到是哪个进程导致的,这种情况一般是因为系统命令被木马篡改了,从而隐藏了木马进程的踪迹,让用户无法进行溯源分析。
命令篡改有多种方式,分别如下:
(1)top源文件被篡改,恶意进程信息被过滤后返回
通过执行如下命令即可复原:
rm -rf /usr/bin/top && mv /usr/bin/top.original /usr/bin/top
(2)篡改预加载so文件,ls、top、ps等命令已经被木马的动态链接库劫持,无法获得木马进程相关的信息
通过执行如下命令即可复原:
> /etc/ld.so.preload && rm -rf 恶意so文件路径
(3)通过其他未知手段篡改系统命令
可分别尝试如下两种方案解决:
i.从其他相同版本系统中拷贝命令源文件到当前系统中进行覆盖;可使用uname -a命令查看当前系统版本;
ii.或者安装busybox来对系统进行排查。busybox是一个集成了300多个最常用Linux命令和工具的软件,可以使用busybox替代系统命令对系统进行排查;
yum -y install wget make gcc perl glibc-static ncurses-devel libgcrypt-devel
wget http://busybox.net/downloads/busybox-1.33.0.tar.bz2
tar -jxvf busybox-1.33.0.tar.bz2
cd busybox-1.33.0 && make && make install
二、总结反思
被矿的原因一般如下:
1、弱口令
2、非法端口,安全组配置问题
3、web服务漏洞
再次检查机器的安全组无问题,仅放通了22口和对应业务端口,密码也是强密码,故本次被矿较大概率是IOT项目的依赖版本有安全漏洞,后续需研发升级依赖版本。
三、参考连接:
1、挖矿木马自助清理手册-腾讯云开发者社区-腾讯云 (tencent.com)
2、记服务器中招挖矿病毒排查过程(解决方案篇) - 愤怒的码农 - 博客园 (cnblogs.com)
3、主机安全 Linux 入侵类问题排查思路-故障处理-文档中心-腾讯云 (tencent.com)
4、应急响应案例:kdevtmpfsi挖矿木马-腾讯云开发者社区-腾讯云 (tencent.com)
5、一次惨痛的教训:被pnscan病毒攻击的经过_akmh089.vip-CSDN博客