记录技术收获,分享个人心得

人生如负重远行,不可急于求成

阿里云ECS中挖矿病毒进程不可见的清理

    近期随着比特币暴涨,出现了挖矿潮,很多服务器都被植入了挖矿病毒,在我之前的工作过程中,经常遇到各种中毒的情况,主要表现为cpu跑满,异常进程,系统被篡改的问题。近期挖矿病毒越来越高级,不仅在top,ps完全隐藏了进程,在系统内ls也无法查看到对应文件,本文记录一次此类进程不可见的挖矿病毒清理流程。

此类问题需要借助busybox工具来将隐藏的进程显示出来

1、安装busybox定位隐藏进程

wget https://busybox.net/downloads/binaries/1.21.1/busybox-x86_64

chmod +x busybox-x86_64

mv busybox-x86_64 /usr/bin/busybox


2、排查流程

1)top查看不到,正常top只能看到负载不正常,但是cpu负载很低,%id也是正常的(如图1)。使用ps aux | sort -k3nr | head -n 10依然无法查看到cpu高的进程。此时,使用busybox top可查看到隐藏的挖矿进程(如图2)

《阿里云ECS中挖矿病毒进程不可见的清理》

执行busybox top就可以查看到隐藏的进程了,发现隐藏进程为/usr/bin/kthreadd bioset

《阿里云ECS中挖矿病毒进程不可见的清理》

2)守护进程为/usr/bin/bioset

作用是禁止对挖矿涉及的核心文件(kthreadd,bioset,libcurl.so.2.17.0,authorized_keys)的修改,使用busybox ps -ef |grep /usr/bin/bioset |grep -v color |awk ‘{print $1}’| xargs busybox kill

结束此进程。

3)隐藏相关的/lib/libcurl.so.2.17.0

该文件隐藏在/etc/ld.so.preload中调用,必须先使用busybox ls /etc/ld.so.preload查看以及busybox vi /etc/ld.so.preload进行编辑,该so文件作用是将ls,netstat,top等命令中执行涉及到kthreadd,bioset,libcurl.so.2.17.0,authorized_keys全部不显示出来。执行(2)步骤操作停止守护进程后,将/etc/ld.so.preload中的/lib/libcurl.so.2.17.0注释掉。再执行top,隐藏的挖矿进程就显示出来了。如下

《阿里云ECS中挖矿病毒进程不可见的清理》

4)免登信息/root/.ssh/authorized_keys

没有配置密钥登录,但是被黑客写入了公钥信息,若服务器还暴露在公网,会被直接免登操作,增加堡垒机或者安全组做端口限制可以避免,所以需要把公钥信息清空

《阿里云ECS中挖矿病毒进程不可见的清理》

3、问题文件的清理脚本(centos7下可用)

#!/bin/bash

#删除隐藏挖矿病毒

#检测busybox工具是否安装

function isinstall()

{

which busybox > /dev/null 2>&1

if [[ $? != 0 ]]; then

wget https://busybox.net/downloads/binaries/1.21.1/busybox-x86_64&&chmod +x busybox-x86_64&&mv busybox-x86_64 /usr/bin/busybox

fi

}

#结束进程,删除文件

function delfile()

{

busybox [ ! -f $1 ]

if [[ $? == 1 ]]; then

busybox ps -ef | grep $1 |grep -v color |awk ‘{print $1}’| xargs busybox kill -9

sleep 2

busybox chattr -i $1

busybox rm -rf $1

busybox [ ! -f $1 ]

if [[ $? == 0 ]]; then

echo “成功删除:${1}”

fi

fi

}

#main

isinstall

delfile “/usr/bin/svchost”

delfile “/usr/bin/bsd-port/getty”

delfile “/usr/bin/bioset”

delfile “/usr/bin/kthreadd”

delfile “/lib/libcurl.so.2.17.0”

#改名/etc/ld.so.preload

busybox chattr -i /etc/ld.so.preload

busybox mv /etc/ld.so.preload /etc/ld.so.preload.bak

#改名/root/.ssh/authorized_keys并且新建一个空文件

busybox chattr -i /root/.ssh/authorized_keys

busybox mv /root/.ssh/authorized_keys /root/.ssh/authorized_keys.bak

touch /root/.ssh/authorized_keys&&chmod 600 /root/.ssh/authorized_keys

#恢复resolv.conf

busybox chattr -i /etc/resolv.conf

#此处dns服务器请根据自己的需求设置下

busybox echo “nameserver 114.114.114.114” > /etc/resolv.conf 

《阿里云ECS中挖矿病毒进程不可见的清理》


点赞
  1. 头像 peters说道:

    windows 10上也遇到隐藏进程的挖矿程序,有没办法查真实进程。 :lol:

    1. nahsoagoac nahsoagoac说道:

      有个工具是SRSniffer,可以试试,可以抓包进程,不确定是否可以看到隐藏进程。另外要看看是不是被安装了filelocker这类的软件,可能把某些目录和文件隐藏了。

发表评论

邮箱地址不会被公开。 必填项已用*标注

hi~

你好,欢迎来到我的博客,欢迎留言。

快速搜索:





Generic selectors

Exact matches only


Search in title


Search in content



Search in posts


Search in pages

欢迎关注我:

微博
steam
网易云音乐
QQ
500px

常用命令:

http://www.gaoshan.me/cmd