Linux服务器挖矿病毒处理

news2025/2/24 20:43:59

文章目录

  • Linux服务器挖矿病毒处理
    • 1.中毒表现
    • 2.解决办法
      • 2.1 断网并修改root密码
      • 2.2 找出隐藏的挖矿进程
      • 2.3 关闭病毒启动服务
      • 2.4 杀掉挖矿进程
    • 3. 防止黑客再次入侵
      • 3.1 查找异常IP
      • 3.2 封禁异常IP
      • 3.3 查看是否有陌生公钥
    • 补充知识
    • 参考

Linux服务器挖矿病毒处理

情况说明:挖矿进程被隐藏(CPU占用50%,htop/top却看不到异常进程),结束挖矿进程后马上又会运行起来(crontab -l查看发现没有定时任务)。

注:由于此博客是在处理完之后所写,因此相应的图片没有截取,但是如果上述情况一致的话,按照下述流程操作应该会对你有所帮助。

1.中毒表现

服务器是24核的,前12核的CPU占用一直处于100%,即使重启服务器,马上就会占用12核的CPU,并且系统内存占用也很大。中毒表现有如下几点:

  • 在没有使用软件的情况下,CPU使用率很高(使用top或者htop查看系统内存占用情况)。
  • 通过netstat -natp发现有异常IP地址。
  • 发热极其严重,风扇狂转。
  • 服务器莫名其妙突然卡顿。

2.解决办法

2.1 断网并修改root密码

在发现中了挖矿病毒后,一定要首先断网并修改root密码!!!

2.2 找出隐藏的挖矿进程

这里利用两个工具【sysdig】和【unhide】来搜寻被隐藏的进程。

# 安装 sysdig
sudo apt install sysdig
# 安装 unhide
sudo apt install unhide
# 输出cpu占用的排行,可以显示出隐藏的进程
sudo sysdig -c topprocs_cpu
# 搜索隐藏进程,proc目录下保存的是所有正在运行程序的进程ID,即PID
sudo unhide proc

这时就找到了挖矿病毒的PID,但是直接kill -9 PID杀死进程后就会发现不到1分钟的时间,就会有一个新的挖矿进程出现,因此这个挖矿进程肯定是被什么服务所启动的,接下来我们便需要找到这个服务并将其关闭。

2.3 关闭病毒启动服务

通过上面unhide proc发现的隐藏进程,利用systemctl status PID来检查 systemd 管理的服务或者进程状态,来看一下该病毒到底是如何被启动的。

systemctl status 3084  # 3084为病毒的PID

查看输出的CGroup段信息,可以看到一个后缀为.service的服务,该服务就是病毒的启动服务。

# 终止病毒启动服务
systemctl stop xxxxX.service
# 终止挖矿服务的开机自启
systemctl disable xxxxX.service 

2.4 杀掉挖矿进程

在关闭了挖矿病毒的启动服务之后,现在就可以将挖矿进程kill了。kill之后,CPU恢复正常,并且也没有了隐藏进程。

kill -9 PID

image-20240619121429944

3. 防止黑客再次入侵

3.1 查找异常IP

# 通过 netstat -natp 显示网络相关信息,查看是否存在异常IP
netstat -natp

将查到的异常IP直接在百度中输入就可以看到该IP的一些信息。

Alt

3.2 封禁异常IP

利用防火墙 iptables 对异常IP进行封禁。

# 对异常IP封禁
sudo iptables -I INPUT -s IP -j DROP
# 检查是否已经成功添加
iptables -L INPUT -v -n

默认情况下,通过 iptables 添加的规则在系统重启后会丢失。如果希望规则在重启后依然有效,需要将规则保存到配置文件中。可以使用 iptables-persistent 工具来实现。

# 安装iptables-persistent
sudo apt-get install iptables-persistent
# 将规则保存到配置文件
sudo netfilter-persistent save
# 设置为开机自启
systemctl enable iptables
# 打开服务
systemctl start iptables

3.3 查看是否有陌生公钥

cat ~/.ssh/authorized_keys

如果有陌生公钥立即删掉。

补充知识

在刚开始查看了网上很多的资料,试着用了这个命令ps -ef | grep kdevtmpfsi,来看自己服务器是不是中了 kdevtmpfsi 病毒,然后发现每次只显示一个有关 kdevtmpfsi 的进程,而且每次都会变化。我竟然认为是病毒太强了,每次都会变化进程ID,真被自己蠢哭了😭😭😭。后来知道每次的那一行输出是grep kdevtmpfsi命令本身的进程,由于grep正在查找字符串 kdevtmpfsi,它自身的进程也匹配这个查找条件,所以它出现在输出中。

ps -ef | grep kdevtmpfsi命令解释:列出所有正在运行的进程,并在这些进程中查找名称或命令行中包含 kdevtmpfsi 的进程,显示这些进程的信息。

  • ps 是一个显示当前运行进程的命令。
  • -e 选项显示所有进程。
  • -f 选项显示完整格式的输出,包括进程的 PID、父进程的 PID、启动时间、TTY、累计 CPU 时间、命令等。
  • 管道符号 | 用于将前一个命令的输出作为下一个命令的输入。
  • grep 是一个搜索工具,用于在输入中查找符合特定模式的行。
  • kdevtmpfsigrep 要查找的模式。在这种情况下,它是在所有进程输出中查找包含 kdevtmpfsi 的行。

参考

  • 记录一次服务器被挖矿经历…
  • 【linux】服务器CPU占用50%,top/htop/ps却看不到异常进程?本文带你彻底杀毒!
  • Linux 病毒扫描工具:ClamAV 配置使用教程

😃😃😃

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

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

相关文章

力扣231. 2 的幂(位运算)

Problem: 231. 2 的幂 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 1.若为0和负数则直接返回false; 2.利用一个标志数mask令其为一,不断的算术左移同时和n做与(&)运算,统计n中二进制位为1的个数&a…

程序员·职场效能必修宝典㊾:拖延症与懒癌晚期患者如何自救

> 【易编橙终身成长社群,相遇已是上上签!】- 点击跳转~ < 作者:哈哥撩编程 (视频号同名) 图书作者:程序员职场效能宝典 博客专家:全国博客之星第四名 超级个体:COC上海社区主理人 特约讲师:谷歌亚马逊分享嘉宾 科技博主:极星会首批签约作者 文

大数据数据挖掘系统可视化设计艺术

1.系统背景 在我们实际进行数据挖掘研发过程中&#xff0c;为了验证某些算法在业务中的性能每次都需要去从头写代码&#xff0c;如果我们将我们研发的算法以模块化的思想封装起来&#xff0c;下次再使用的时候直接在系统中进行拖拉一下生成一个工作流&#xff0c;就能完成数据挖…

华为数通——ACL

ACL基本介绍 ACL:访问控制列表&#xff0c;通过端口对数据流进行过滤&#xff0c;ACL判别依据是五元组&#xff1a;源IP地址&#xff0c;源端口&#xff0c;目的IP地址&#xff0c;目的端口、协议。&#xff08;ACL工作于OSI模型第三层&#xff0c;是路由器和三层交换机接口的…

【轨迹规划论文整理(1)】UAV轨迹规划的开山之作Minimum Snap Trajectory

【轨迹规划论文整理(1)】UAV轨迹规划的开山之作Minimum Snap Trajectory Generation and Control for Quadrotors 本系列主要是对精读的一些关于无人机、无人车的轨迹搜索论文的整理&#xff0c;包括了论文所拓展的其他一些算法的改进思路。 这是本系列的第一篇文章&#xff0…

在windows和linux服务器之间互传文件

最近需要在windows上和linux服务器上实现相互传送文件&#xff0c;作为一个linux小白&#xff0c;研究了一个上午&#xff0c;终于成功了&#xff0c;记录一下。 使用的是SFTP方式。 Linux服务器系统是 Ubuntu 18.04 64位&#xff0c;windows 是 win10专业版。 首先在Linux服…

在WordPress中使用AI的实用方法:入门级

随着人工智能&#xff08;AI&#xff09;的快速发展&#xff0c;WordPress平台上引入了越来越多的工具和插件&#xff0c;为网站管理员提供了强大的功能。这些工具不仅可以提升网站的用户体验&#xff0c;还能简化网站管理过程。本文将介绍几种在WordPress中使用AI的实用方法&a…

vue中用JSON格式查看数据(vue-json-viewer)

vue中把string用JSON格式展示数据 vue-json-viewer使用 官网地址&#xff1a;https://www.npmjs.com/package/vue-json-viewer 1. 安装插件vue-json-viewer //vue2 npm install vue-json-viewer2 --save //vue3 npm install vue-json-viewer3 --save2. 引入vue-json-viewer…

解决HassOS无法获取ip地址问题

目录 问题描述解法 问题描述 在ESXi中安装完HassOS后&#xff0c;开机遇到一个无法获取ip地址的问题&#xff0c;如下图所示&#xff1a; 输入network info命令&#xff0c;显示ipv4已被禁用&#xff0c;如下图所示&#xff1a; 解法 在控制台ha >后输入下面命令 netw…

低投入+高效率的求职招聘小程序源码系统平台版 带完整的安装代码包以及搭建教程部署教程

系统概述 在当今数字化时代&#xff0c;求职招聘领域的竞争日益激烈。传统的求职招聘方式逐渐显露出效率低下、成本高昂等问题。为了满足市场需求&#xff0c;提高求职招聘的效率和便捷性&#xff0c;同时降低企业和求职者的成本&#xff0c;“低投入高效率的求职招聘小程序源…

startActivity启动流程

从桌面点击应用图标开始到Activity创建并执行onCreate&#xff0c;activity的启动涉及到两个进程system_server(AMS所在进程)和Zygote(如果进程没有创建需要先创建) 下图是从点击图标开始执行startActivity&#xff0c;一直到ActivityTaskSupervisor&#xff0c;到ActivityTas…

利用LinkedHashMap实现一个LRU缓存

一、什么是 LRU LRU是 Least Recently Used 的缩写&#xff0c;即最近最少使用&#xff0c;是一种常用的页面置换算法&#xff0c;选择最近最久未使用的页面予以淘汰。 简单的说就是&#xff0c;对于一组数据&#xff0c;例如&#xff1a;int[] a {1,2,3,4,5,6}&#xff0c;…

Win11 设置本地管理员账户的几种方法总结

从设置界面创建 Win11 设置本地管理员账户我们可以在设置界面来进行设置&#xff0c;下面是具体的操作步骤&#xff1a; 首先我们需要打开设置界面&#xff0c;然后点击“账户”选项&#xff0c;进入之后点击“其他用户”。 然后在用户界面中我们找到“其他用户”模块下的添加…

【机器学习300问】127、怎么使用词嵌入?

在探讨如何使用词嵌入之前&#xff0c;我们首先需要理解词嵌入模型的基础。之前的文章已提及&#xff0c;词嵌入技术旨在将文本转换为固定长度的向量&#xff0c;从而使计算机能够解析和理解文本内容。可以跳转下面链接去补充阅读哦&#xff01; 【机器学习300问】126、词嵌入…

C#.Net筑基-集合知识全解

01、集合基础知识 .Net 中提供了一系列的管理对象集合的类型&#xff0c;数组、可变列表、字典等。从类型安全上集合分为两类&#xff0c;泛型集合 和 非泛型集合&#xff0c;传统的非泛型集合存储为Object&#xff0c;需要类型转。而泛型集合提供了更好的性能、编译时类型安全…

【Jenkins】构建失败重试插件Naginator

Jenkins的Naginator插件是一个用于在构建失败后自动重新调度构建的插件。以下是对Naginator插件的详细介绍&#xff1a; 1. 插件功能 自动重试构建&#xff1a;当Jenkins上的某个构建任务失败时&#xff0c;Naginator插件可以自动重新调度该构建任务&#xff0c;以尝试解决由于…

【扫雷游戏】C语言教程

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

sklearn之各类朴素贝叶斯原理

sklearn之贝叶斯原理 前言1 高斯朴素贝叶斯1.1 对连续变量的处理1.2 高斯朴素贝叶斯算法原理 2 多项式朴素贝叶斯2.1 二项分布和多项分布2.2 详细原理2.3 如何判断是否符合多项式贝叶斯 3 伯努利朴素贝叶斯4 类别贝叶斯4 补充朴素贝叶斯4.1 核心原理4.2 算法流程 前言 如果想看…

示例:应用DependencyPropertyDescriptor监视依赖属性值的改变

一、目的&#xff1a;开发过程中&#xff0c;经常碰到使用别人的控件时有些属性改变没有对应的事件抛出&#xff0c;从而无法做处理。比如TextBlock当修改了IsEnabled属性我们可以用IsEnabledChanged事件去做对应的逻辑处理&#xff0c;那么如果有类似Background属性改变我想找…

【Spine学习13】之 制作受击动画思路总结(叠加颜色特效发光效果)

绑定IK腿部骨骼容易出错的一种方式&#xff0c; 要记住 如果按照错误方式绑定骨骼&#xff0c;可能移动IK约束的时候会另腿部的弯曲方向相反了 &#xff1a; 上节分享了攻击动作的制作思路总结&#xff0c; 这节总结受击思路。 第一步&#xff1a; 创建一个新的动画&#xff1…