原文链接:https://bbs.pediy.com/thread-268197.htm

本文为腾讯安全专家撰写的《挖矿木马自助清理手册》,可以为政企客户安全运维人员自助排查清理挖矿木马提供有益参考。

一、什么是挖矿木马

挖矿木马会占用CPU进行超频运算,从而占用主机大量的CPU资源,严重影响服务器上的其他应用的正常运行。黑客为了得到更多的算力资源,一般都会对全网进行无差别扫描,同时利用SSH爆破和漏洞利用等手段攻击主机。

部分挖矿木马还具备蠕虫化的特点,在主机被成功入侵之后,挖矿木马还会向内网渗透,并在被入侵的服务器上持久化驻留以获取最大收益。

挖矿木马的整体攻击流程大致如下图所示:

二、挖矿木马中招特征

挖矿木马会在用户不知情的情况下利用主机的算力进行挖矿,最明显的特征就是主机的CPU被大量消耗,查看云主机CPU占用率的方法有两种:

1

控制台实例监控

2

主机执行TOP命令

如下图所示,通过执行top命令,即可在返回结果中看到当时系统的CPU占用率。

top -c

如果云主机CPU占用率居高不下,那么主机很有可能已经被植入了挖矿木马,会影响服务器上的其他应用的正常运行,需要立刻上机排查。

三、清理挖矿木马

1

及时隔离主机

部分带有蠕虫功能的挖矿木马在取得主机的控制权后,会继续对公网的其他主机,或者以当前主机作为跳板机对同一局域网内的其他主机进行横向渗透,所以在发现主机被植入挖矿木马后,在不影响业务正常运行的前提下,应该及时隔离受感染的主机,然后进行下一步分析和清除工作。

腾讯云主机可以通过设置安全组隔离主机,具体参考如下链接:https://cloud.tencent.com/document/product/215/20089

2

阻断异常网络通信

挖矿木马不仅会连接矿池,还有可能会连接黑客的C2服务器,接收并执行C2指令、投递其他恶意木马,所以需要及时进行网络阻断。

(1)检查主机防火墙当前生效的iptables规则中是否存在业务范围之外的可疑地址和端口,它们可能是挖矿木马的矿池或C2地址

iptables -L -n

(2)从iptables规则中清除可疑地址和端口

vi /etc/sysconfig/iptables

(3)阻断挖矿木马的网络通信

iptables -A INPUT -s 可疑地址 -j DROP
iptables -A OUTPUT -d 可疑地址 -j DROP

3

清除计划任务

大部分挖矿木马会通过在受感染主机中写入计划任务实现持久化,如果仅仅只是清除挖矿进程,无法将其根除,到了预设的时间点,系统会通过计划任务从黑客的C2服务器重新下载并执行挖矿木马。

挖矿木马常见的计划任务通常是下载并执行sh脚本,如下图所示:

可以通过执行如下命令查看是否存在可疑定时任务,若有,则先保存相关记录用于后续分析,再进行删除:

查看系统当前用户的计划任务:

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/

4

清除启动项

除了计划任务,挖矿木马通过添加启动项同样能实现持久化。可以使用如下命令查看开机启动项中是否有异常的启动服务。

CentOS7以下版本:

chkconfig –list

CentOS7及以上版本:

systemctl list-unit-files

如果发现有恶意启动项,可以通过如下命令进行关闭:

CentOS7以下版本:

chkconfig 服务名 off

CentOS7及以上版本:

systemctl disable 服务名

另外,还需要仔细排查以下目录及文件,及时删除可疑的启动项:

/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/

排查的时候,可以按照文件修改时间来排序,重点排查近期被创建服务项。如下图所示,系统近期被创建了一个名为bot.service的服务,该服务在系统启动时会启动/etc/kinsing这个木马文件,需要关闭bot服务,并删除/etc/kinsing文件。

5

清除预加载so

通过配置/etc/ld.so.preload,可以自定义程序运行前优先加载的动态链接库,部分木马通过修改该文件,添加恶意so文件,从而实现挖矿进程的隐藏等恶意功能。
检查/etc/ld.so.preload(该文件默认为空),清除异常的动态链接库。可以执行`> /etc/ld.so.preload`命令进行清除。

6

清除SSH公钥

挖矿木马通常还会在~/.ssh/authoruzed_keys文件中写入黑客的SSH公钥,这样子就算用户将挖矿木马清除得一干二净,黑客还是可以免密登陆该主机,这也是常见的保持服务器控制权的手段。

排查~/.ssh/authorized_keys文件,如果发现可疑的SSH公钥,直接删除。

7

清除挖矿木马

(1)清除挖矿进程

挖矿木马最大的特点就是会在用户不知情的情况下,利用主机的算力进行挖矿,从而消耗主机大量的CPU资源,所以,通过执行如下命令排查系统中占用大量CPU资源的进程。

top -c
ps -ef

确认相关进程为挖矿进程后,按照如下步骤将其清除:
获取并记录挖矿进程的文件路径:

ls -l /proc/$PID/exe

杀死挖矿进程:

kill -9 $PID

删除挖矿进程对应的文件

(2)清除其它相关恶意进程

恶意进程与外部的C2服务器进行通信时,往往会开启端口进行监听。执行如下命令,查看服务器是否有未被授权的端口被监听。

netstat -antp

若有未授权进程,按照如下步骤将其清除:
获取并记录未授权进程的文件路径:

ls -l /proc/$PID/exe

杀死未授权进程:

kill -9 $PID

删除未授权进程对应的文件

还可以通过如下命令排查近期新增的文件,清除相关木马

find /etc -ctime -2 (这里指定目录为/etc,获取近2天内的新增文件)lsof -c kinsing (这里要查看文件名为kinsing的相关进程信息)

8

风险排查、安全加固

对系统进行风险排查和安全加固,避免挖矿木马卷土重来,详情可参考如下链接:https://cloud.tencent.com/document/product/296/9604

四. 常见问题

1

明明刚刚清理了挖矿木马,没过多久就又卷土重来?

很多用户会反馈挖矿木马老是清理不干净,明明已经Kill了进程,删除了木马文件,没过多久,CPU占用率又上来了。究其根本,还是因为清除得不够彻底。大部分用户都只是Kill掉挖矿进程和对应文件,却没有清理计划任务和守护进程。

一般建议先清除计划任务、启动项、守护进程,再清除挖矿进程和其他恶意进程。

2

如何判定可疑进程是否为恶意进程?

如下图所示,未知进程kinsing监听本地31458端口,非常可疑,可通过如下方法判定:
(1)执行`ls -al /proc/$PID/exe`确认可疑进程对应的文件;
(2)若文件未被删除,则直接上传文件到Virustotal进行检测,或者计算出文件对应的md5,使用md5去Virustotal进行查询;若文件已被删除,可执行`cat /proc/$PID/exe > /tmp/t.bin`将进程dump到特定目录,再上传文件到Virustotal或者计算dump文件对应的md5到Virustotal进行查询。如果有多款杀毒引擎同时检出,那基本可以判定该进程为恶意进程。

Virustotal地址:https://www.virustotal.com/gui/s

3

为什么系统CPU占用率接近100%,却看不到是哪个进程导致的?

如下图所示,系统CPU占用率接近100%,却看不到是哪个进程导致的,这种情况一般是因为系统命令被木马篡改了,从而隐藏了木马进程的踪迹,让用户无法进行溯源分析。

命令篡改有多种方式,分别如下:
(1)top源文件被篡改,恶意进程信息被过滤后返回

通过执行如下命令即可复原:

rm -rf /usr/bin/top && mv /usr/bin/top.original /usr/bin/top

【相关文章】

https://blog.csdn.net/chenmozhe22/article/details/112578057

(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

【相关文章】

https://www.cnblogs.com/angryprogrammer/p/13456681.html

Linux学习指南
有收获,点个在看

云服务器被植入挖矿木马,CPU飙升200%相关推荐

  1. net start mysql 服务名无效_记一次服务器被植入挖矿木马cpu飙升200%解决过程

    来自:开源中国,作者:我叫刘半仙  链接:https://my.oschina.net/liughDevelop/blog/1786631 " 某日,正在午休中,突然一则噩耗从前线传来:网站 ...

  2. 云服务器被植入挖矿木马,CPU飙升200%处理方案

    云服务器被植入挖矿木马,CPU飙升200%处理方案 1,通过执行top命令,即可在返回结果中看到当时系统的CPU占用率. top -c 2.检查防火墙iptables规则中是否存在可疑端口 iptab ...

  3. qW3xT.6解决挖矿病毒 - 云服务器被植入挖矿脚本成为矿机

    ## qW3xT.6解决挖矿病毒 - 云服务器被植入挖矿脚本成为矿机 > 之前由于goblog应用因为不知名问题导致程序crash,之前只检查过云服务内存的情况,但是其他信息暂未检查,今天远程到 ...

  4. 第七十六期:糟糕!服务器被植入挖矿木马,CPU飙升200%

    某日,正在午休中,突然一则噩耗从前线传来:网站不能访问了! 作者:我叫刘半仙 某日,正在午休中,突然一则噩耗从前线传来:网站不能访问了! 图片来自 Pexels 此项目是我负责,线上服务器用的是某讯云 ...

  5. 糟糕!服务器被植入挖矿木马,CPU飙升200%

    此项目是我负责,线上服务器用的是某讯云的,运行着 Tomcat,MySQL,MongoDB,ActiveMQ 等程序. 排查过程 我以 150+ 的手速立即打开了服务器,看到 Tomcat 挂了,然后 ...

  6. 解决阿里云服务器被植入挖矿脚本过程

    文章目录 前言 一.服务器为什么会被告警挖矿? 二.怎么解决: 1.top 命令查看进程cpu 占用情况: 2.通过pid进程号,查找改程序所在的目录: 3. 强制删除脚本文件: 4. 强制杀死进程: ...

  7. 糟糕!服务器被植入挖矿木马,CPU 飙升200%。。。

    线上服务器用的是某讯云的,欢快的完美运行着Tomcat,MySQL,MongoDB,ActiveMQ等程序.突然一则噩耗从前线传来:网站不能访问了! 此项目是我负责,我以150+的手速立即打开了服务器 ...

  8. 服务器被植入挖矿木马的心酸过程

    转自 https://juejin.im/post/5aa0cc476fb9a028d82b5695 最近打开服务变得很慢,然后 CPU,内存占用有达到了100%,打开网站都很慢,这个肯定很反常的,平 ...

  9. ​服务器被植入挖矿木马如何处理

    Cpu占用率100%,负载状态也是运行阻塞,还收到电话阿里云那边的电话检测我到挖矿? 当时我就莫名其妙,我一个新手怎么还去搞区块链了 常规的Top命令是没法查看到cpu异常的 通过yum -y ins ...

最新文章

  1. 本地运行github上的vue2.0仿饿了么webapp项目
  2. Java快速创建大量对象_3分钟 快速理解JVM创建对象的步骤!
  3. 腾讯云100亿元目标达成,发阳光普照奖iPhone 11 Pro,你酸了吗?
  4. Cell子刊:粘上你-细菌生长素介导的植物根部细菌定殖
  5. oracle 查询空值异常,Oracle中的NULL
  6. gensim中word2vec使用
  7. 2019人工智能的“领头羊”会是?
  8. matlab如何求传递函数的幅值_自动控制原理2.2.1 什么是传递函数,为什么要使用传递函数的概念...
  9. [leetcode]1007. 行相等的最少多米诺旋转
  10. Python学习笔记:网络编程
  11. LSI SAS 3108 配置操作
  12. 【学术相关】博士毕业也会看第一学历吗?
  13. checkbox设置颜色,style样式等
  14. Linux常用命令系列--export
  15. python 获取浏览器句柄下的网页控件_python webdriver操作浏览器句柄
  16. ES6 Number
  17. Mina(1):快速上手
  18. 《线性代数应该这样学》学习笔记
  19. C语言及程序设计概述
  20. 【HAVENT原创】nginx 配置

热门文章

  1. CFA II学习记录-Economics
  2. 字符串最长不重复子串 java_最长不重复子串问题
  3. linux vim vi 区别,Linux下 vi vim vim-gnome vim-tiny vim-gtk vim-nox的区别
  4. golan学习(1)语言特性以及基本语法
  5. Teamface可定制化的CRM管理软件,颠覆传统的管理软件
  6. java代码使用重写来优化电子宠物系统
  7. 寝室记-------《我的绿野仙踪》
  8. 监控摄像头如何用作网络直播?
  9. 计算机专业英语名人名言,英语名人名言(中英对照)
  10. zigbee 定位