centos7系统被入侵,挂载挖矿木马-pamdicks-(1)临时处理
故障说明
-
故障环境配置
开发测试服务器(腾讯云);
系统:centos7 ;
程序启动模式:root用户直接启动;
网络环境:所有端口全部对外开放(使用仅屏蔽部分关键端口ssh,redis,rabbitmq等);
为方便服务器间数据传输方便,采用了ssh互信方式。 -
故障现象
开发使用过程中,发现经常有服务无故关闭,登录服务器经检查,发现CPU使用率达到100%。
在检测异常进程中,未发现CPU使用率异常的进程(使用top
以及ps -aux
进行检查),于是报障。
检测过程
开始以为系统运行异常,将其中一台进行重启,重启后问题依旧。通过上网查询一番,得出可能是进程被隐藏。
- 使用工具进行查找进程
搜索到sysdig
监控检测工具
安装使用方式:
###安装
curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash
###检测所有程序已隐藏进程
sysdig -c topprocs_cpu
厉害,果然看到一个top
及ps
无法看到的进程在肆虐占用CPU
根据pid
,进入 /proc/
目录检查程序位置
很奇怪的现象,进入
/proc/
目录后,无法看到该pid的目录,仅可以直接进入
ll -h /proc/16352/
查看到程序文件源自于/usr/bin/pamdicks
检测该文件时发现使用搜索的方式都无法检测到该文件,find
,ls /usr/bin/pamd*
等等都无法显示,唯有全路径才可以
ls -hal /usr/bin/pamdicks
根据隐藏进程以及隐藏文件不可见的特性,进行搜索分析,得出系统内核被篡改,将文件名称和进程信息给屏蔽。
初步根据PID将程序kill
及文件删除,但是重启后又自行恢复,还有其他机器,也经过一夜,死灰复燃了。
临时处理办法
奈何技术有限,修改内核这个玩不转,也未找到相关反向修改的案例。
只能想出其他办法解决该问题。
解决办法:
-
根据系统环境变量,检查各目录下是否存在
pamdicks
共计有两个/usr/bin/pamdicks
和/bin/pamdicks
-
删除原文件,并创建一个顶包空文件,然后使用系统chattr对其进行锁定禁止修改。
rm -rf /usr/bin/pamdicks /bin/pamdicks
touch /usr/bin/pamdicks /bin/pamdicks
chattr +i /usr/bin/pamdicks /bin/pamdicks
- 再根据
sysdig -c topprocs_cpu
查到的PID直接杀掉
kill -9 16352
世间清静了。
其他工具又发现更多隐藏进程
虽然将炸弹的火给藏起来,但是炸弹还在。继续查找其他办法。
又找到另一个工具unhide
(经网友提醒,需先安装epel源yum -y install epel-release
)
yum -y install unhide
unhide quick
扫描后又发现多个的异常进程。
进程状态和文件状态与pamdicks
如出一辙。
只有使用相同办法对其进行处理。
本次异常程序名称:
pamdicks
,ip6network
,kswaped
,irqbalanced
,rctlcli
,systemd-network
后记
处理过程中,已经检查了init
启动项,crontab
定时任务,at
定时任务等配置,均未发现异常。
本次故障起因由以下三点引起:
1、大部分程序端口均直接暴露在公网,是本次问题主要原因。
2、程序为省事,均用root
用户直接启动,导致内核被修改,问题难度复杂化。
3、因为服务器之间的ssh互信,结果导致所有服务器全部中招。
以后得加强注意这三方面的安全问题,本次木马程序并未涉及文件防篡改配置,不然也只能重装系统进行处理了。
后续得继续研究如何从内核中将相关配置删除,才能彻底全部查找到根源对其进行处理。