Linux运维之解决服务器挖矿木马问题

news2025/1/13 14:06:43

文章目录

  • 1 挖矿木马
    • 1.1 定义
    • 1.2 挖矿特征
    • 1.3 解决挖矿木马
      • 1.3.1 阻断异常网络通信(非必需)
      • 1.3.2 清除定时任务
      • 1.3.3 清除启动项
      • 1.3.4 清除SSH公钥
      • 1.3.5 清除木马进程
    • 1.4 其他常见问题
      • 1.4.1 清除木马后又100%
      • 1.4.2 CPU占用100%却看不到进程

1 挖矿木马

1.1 定义

挖矿木马会占用CPU进行超频运算,从而占用主机大量的CPU资源,严重影响服务器上的其他应用的正常运行。黑客为了得到更多的算力资源,一般都会对全网进行无差别扫描,同时利用SSH爆破和漏洞利用等手段攻击主机。部分挖矿木马还具备蠕虫化的特点,在主机被成功入侵之后,挖矿木马还会向内网渗透,并在被入侵的服务器上持久化驻留以获取最大收益。整体的攻击流程大致如下图所示:
在这里插入图片描述

1.2 挖矿特征

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

查看系统资源占用率显示运行命令行
top -c

在这里插入图片描述

1.3 解决挖矿木马

1.3.1 阻断异常网络通信(非必需)

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

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

iptables -L -n

iptables规则中清除可疑地址和端口

vim /etc/sysconfig/iptables

阻断挖矿木马的网络通信

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

1.3.2 清除定时任务

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

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/

在这些文件内,有可疑文件就立即处理掉

但是,很多挖矿木马做的安全措施很到位,不能直接用-e进行处理,即使是root用户也没用权限
如果无法删除crontab中的定时任务,且提示chattr不是命令则:

cd /usr/bin
cp chattr chattr.new
chmod u+x chattr.new
chattr.new -i chattr
rm -rf chattr.new
chmod u+x chattr

chattr -ai /etc/bin/cron.d
chattr -ai /var/spool/cron
chattr -ai /var/spool/cron/root
#然后执行如下命令进行删除
crontab -e

1.3.3 清除启动项

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

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/

排查的时候,可以按照文件修改时间来排序,重点排查近期被创建服务项

1.3.4 清除SSH公钥

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

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

注意:需要用lsattr和chattr命令来修改权限,才可以删除

1.3.5 清除木马进程

通过top -c命令确定PID在这里插入图片描述
确认相关进程为挖矿进程后,按照如下步骤将其清除:

获取并记录挖矿进程的文件路径:
ls -l /proc/$PID/exe

杀死挖矿进程:
kill -9 $PID

删除挖矿进程对应的文件,倘若不能删除,就需要用chattr命令处理
在这里插入图片描述

1.4 其他常见问题

1.4.1 清除木马后又100%

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

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

1.4.2 CPU占用100%却看不到进程

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

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

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

如果在/usr/bin目录下发现还要其他的*.original,都可以执行上述命令执行,此次受木马篡改的有top,ps,pstree三个命令

参考链接:https://cloud.tencent.com/developer/article/1834731?sharedUid=10313019&shareByChannel=link

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/178892.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python OS 文件目录方法 os.walk()

Python OS 文件/目录方法 os.walk() 概述 os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。 os.walk() 方法是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。 在Unix,Windows中…

BFS(三)腐烂的橘子(感染问题)

994. 腐烂的橘子 在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。 每分钟,腐烂的橘子 周围 4 个方向上相邻 的…

领导看到我自用的IDEA插件,也回去悄悄安装了...

现在哪有程序员离得开 Idea 啊!没有 Idea 的程序员那还有灵魂吗?那没有!既然我们都用 Idea,如何提高 Idea 的开发效率,在开发工具上,我们就卷掉其他小伙伴呢!今天鸡翅老哥就来给大家介绍几款我一…

函数的认识

文章目录 函数是什么库函数 自定义函数 函数参数 函数调用 函数的嵌套调用和链式访问 函数的声明和定义 函数递归一、函数是什么 维基百科中对函数的定义:子程序在计算机科学中,子程序(英语:Subroutine, procedure, functio…

SpringBoot+Vue项目课程作业管理系统

文末获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏…

NodeJS Web 框架 Express 之路由

NodeJS Web 框架 Express 之路由参考描述路由路由匹配规则顺序匹配模块化创建使用前缀参考 项目描述哔哩哔哩黑马程序员搜索引擎Bing 描述 项目描述Edge109.0.1518.61 (正式版本) (64 位)NodeJSv18.13.0nodemon2.0.20Express4.18.2 路由 在 Web 中,路由可以理解为…

体验 micronaut 微服务框架

体验 micronaut 微服务框架谁在使用 MICRONAUT主要特点代码示例展示几点特性原生云原生安装 Micronaut 命令行工具创建一个 MICRONAUT 应用程序MICRONAUT是基于 JVM 的现代全栈框架,用于构建模块化、易于测试的微服务和无服务器应用程序。 谁在使用 MICRONAUT 主要…

数学建模——评价算法

层次分析法(AHP) 步骤 1.建立层次结构模型; 2.构造判断(成对比较)矩阵; 3.层次单排序及其一致性检验; 4.层次总排序及其一致性检验; 建立层次结构模型 将决策的目标、考虑的因素(决策准则)和决策对象按…

【HBase入门】5. 常用 Shell 操作(2)

前言 我们可以以shell的方式来维护和管理HBase。例如:执行建表语句、执行增删改查操作等等。 导入测试数据集 需求 在资料的 数据集/ ORDER_INFO.txt 中,有一份这样的HBase数据集,我们需要将这些指令放到HBase中执行,将数据导入…

申请Moonbeam Accelerator孵化计划申请答题指导

Moonbeam Accelerator是一个为期10 周的孵化计划,由Moonbeam基金会、Arrington Capital和Rokk3r共同推出,旨在帮助初创团队提高技术、业务、营销、金融和融资技能,助力您的Web3创业之梦。 申请孵化计划有任何限制吗?没有&#xff…

BFS(二)二叉树层序遍历(I、II)、二叉树锯齿形层序遍历、N叉树层序遍历

目录 102. 二叉树的层序遍历 107. 二叉树的层序遍历 II 103. 二叉树的锯齿形层序遍历 429. N 叉树的层序遍历 102. 二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。…

VUE3/TS/TSX入门手册指北

VUE3入门手册vue3入门首先 查看 官方文档:https://cn.vuejs.org/guide/quick-start.html如果有vue2基础,速成课程:https://www.zhoulujun.co/learning-vue3/component.html(官方文档 还是建议 翻一遍)VUE3深入首先看源…

STM32+python产生三角波

目录任务目标实现方法python制作数表由于项目需要,需要产生一个三角波,需要覆盖4000个点的一个数组,这样的数组点数太多了,肯定不能自己一个一个手写了。最简单的一个方法是在嵌入式程序中用C写一个函数,对一个数组&am…

基于蜣螂优化的Elman神经网络数据预测-附代码

基于蜣螂算法优化的Elman神经网络数据预测 - 附代码 文章目录基于蜣螂算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立4.基于蜣螂优化的Elman网络5.测试结果6.参考文献7.Matlab代码摘要:针对…

LwIP系列--内存管理(内存池)详解

一、目的在《LwIP系列--内存管理(堆内存)详解》中我们详细介绍了LwIP中内存堆的实现原理,本篇我们介绍LwIP中内存池的实现细节。在LwIP源码中为了满足特定内存分配的需要以及优化内存占用制定了各种尺寸大小的内存池(每种内存池管…

Golang应用执行Shell命令实战教程

本文学习如何在Golang程序中执行Shell命令(如,ls,mkdir或grep),如何通过stdin和stdout传入I/O给正在运行的命令,同时管理长时间运行的命令。为了更好的理解,针对不同场景由浅入深提供几个示例进…

77、TensoRF: Tensorial Radiance Fields

简介 主页:https://apchenstu.github.io/TensoRF/ 总体而言,该文章主要内容于DVGO类似 将场景的亮度场建模为4D张量,它表示一个具有每体素多通道特征的3D体素网格,中心思想是将4D场景张量分解为多个紧凑低秩张量分量&#xff0c…

06 | 要找工作了,应该如何准备?

前言 前言:找工作更像相亲,总有一款适合自己。简历就像一份广告,对方要什么你写什么,而不是你有什么。 文章目录前言一、找工作的流程二、做法1. 分析职位描述(JD)1)组成2)做法一、找…

【数据结构】7.2 线性表的查找

7.2.1 顺序查找(线性查找) 应用范围: 顺序表或线性链表表示的静态查找表。表内元素之间可以无序。 数据元素类型定义: 数据表可能有多个数据域的值,比如成绩表中有姓名、成绩、总分等。所以用结构类型来表示要存储…

背景颜色和背景图片

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <!--这行代码是告诉浏览器需要使用"utf-8"字符集打开 因为HBuilder工具是采用utf-8编码的 注意&#xff1a;并不是设置当前页面的字符集编码方式--> …