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

厉害,果然看到一个topps无法看到的进程在肆虐占用CPU

根据pid ,进入 /proc/目录检查程序位置

很奇怪的现象,进入/proc/ 目录后,无法看到该pid的目录,仅可以直接进入

ll -h /proc/16352/
查看到程序文件源自于 /usr/bin/pamdicks

检测该文件时发现使用搜索的方式都无法检测到该文件,findls /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互信,结果导致所有服务器全部中招。

以后得加强注意这三方面的安全问题,本次木马程序并未涉及文件防篡改配置,不然也只能重装系统进行处理了。

后续得继续研究如何从内核中将相关配置删除,才能彻底全部查找到根源对其进行处理。

原文地址:https://www.cnblogs.com/taoyuxuan/p/11662345.html