zoukankan      html  css  js  c++  java
  • 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互信,结果导致所有服务器全部中招。

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

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

  • 相关阅读:
    Java读源码之ReentrantLock(2)
    Java读源码之ReentrantLock
    Java8新特性之Stream
    Spring Cloud Contract 微服务契约测试
    Springboot + 持久层框架JOOQ
    Groovy语法糖以及DSL
    Java自定义注解
    Java8新特性之接口defualt,static方法
    Nginx + uWSGI + Python + Django构建必应高清壁纸站
    Kafka,RocketMQ,RabbitMQ部署与使用体验
  • 原文地址:https://www.cnblogs.com/taoyuxuan/p/11662345.html
Copyright © 2011-2022 走看看