张晨阳
发布于 2024-04-02 / 242 阅读
2

记一次生产环境中挖矿病毒处理过程

一、处理过程

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博客

6、记服务器中招挖矿病毒排查过程(解决方案篇) - 愤怒的码农 - 博客园 (cnblogs.com)

7、记一次服务器被挖矿的排查过程:xmrig挖矿病毒-CSDN博客