【Linux】服务器被work32病毒入侵CPU占用99%

文章目录

  • 一、问题发现
  • 二、问题解决
    • 2.1 清楚病毒
    • 2.2 开启防火墙
    • 2.3 修改SSH端口
    • 2.4 仅使用凭据登录(可选)

一、问题发现

我的一台海外服务器,一直只运行一项服务(你懂的),但是前不久我发现CPU占用99%。没在意,但今天,直接把我的服务干掉线了,SSH登录查看,我的服务已经停止运行了,但是系统CPU占用仍然是99%。
命令:

top

下图是安装的htop,使用htop命令:
在这里插入图片描述
可以看到一个名为work32的程序在运行,而且还是以root身份运行的,我勒个~

网上查了一下,说是疑似挖矿病毒(2024挖矿?):https://cloud.tencent.com/developer/article/2390123

该挖矿病毒入侵终端后会占用主机资源进行挖矿,影响其他正常业务进程的运转,传播过程中病毒文件会修改防火墙的规则,开放相关端口,探测同网段其他终端并进行SSH暴力破解,容易造成大面积感染。

work32病毒应该是自带暴力破解SSH登陆的模块,通过 netstat -an 命令(安装net-tools才能用,apt install net-tools)看到中招的主机在登陆很多外部主机的SSH 端口。

应该是服务器提供商同网段其他的VPS被入侵了,然后把我的感染了,然后暴力获取了我的密码(密码确实很简单),然后再继续扩散,这个病毒把我的服务的端口占了,导致我的服务停止。

二、问题解决

2.1 清楚病毒

不用按照我的步骤来,逻辑一样就行了。

我的密码已经被暴力破解了(work32那个程序直接用的我的root密码在执行命令)。

首先更改密码:

passwd

重启:

reboot

现在SSH连上,就可以看到CPU占用正常了:
在这里插入图片描述
现在清楚work32病毒:

前面我使用htop命令,就已经看到了病毒所在路径/usr/.work/work32,以及执行命令。

或者你没有先更改密码后重启,就先kill -9 PID杀掉这个进程,PID用top命令就可以看到的。

删除work32:

 rm -rf /usr/.work/

2.2 开启防火墙

现在暂时解决了,但是还可能第二次被入侵,所以要提高服务器安全性。

首先是修改复杂密码,乱七八糟的那种。

(如果你是小白,先看完,不要着急操作,不用所有都设置)

其次要开启防火墙,以ufw为例:

ufw(Uncomplicated Firewall)是Ubuntu和Debian系统上常用的简单防火墙管理工具。

(1)安装UFW

大多数Ubuntu和Debian系统默认已经安装了ufw。如果没有安装,可以使用以下命令进行安装:

sudo apt update
sudo apt install ufw

(2)启用和禁用UFW

sudo ufw enable

sudo ufw disable

(3) 查看UFW状态和规则

查看UFW状态和已应用的规则:

sudo ufw status

如果需要查看详细信息,可以使用:

sudo ufw status verbose

(4)允许和拒绝端口

允许某个端口(例如SSH的默认端口22):

sudo ufw allow 22/tcp

拒绝某个端口:

sudo ufw deny 22/tcp

(5)允许和拒绝IP地址

允许特定IP地址访问某个端口:

sudo ufw allow from 192.168.1.100 to any port 22

拒绝特定IP地址访问某个端口:

sudo ufw deny from 192.168.1.100 to any port 22

(6)删除规则

删除特定规则(例如允许端口22):

sudo ufw delete allow 22/tcp

(7)允许和拒绝特定的子网

允许特定子网访问某个端口:

sudo ufw allow from 192.168.1.0/24 to any port 22

拒绝特定子网访问某个端口:

sudo ufw deny from 192.168.1.0/24 to any port 22

(8)默认策略设置

设置默认策略为拒绝所有传入连接,但允许所有传出连接:

sudo ufw default deny incoming
sudo ufw default allow outgoing

(9)特定服务的规则

ufw有时可以识别某些服务,允许或拒绝特定服务(如HTTP或HTTPS):

sudo ufw allow http
sudo ufw allow https

(10)日志记录

启用日志记录:

sudo ufw logging on

禁用日志记录:

sudo ufw logging off

(11)高级用法示例

  1. 允许特定IP地址通过SSH连接

    sudo ufw allow from 203.0.113.4 to any port 2222
    
  2. 允许子网通过HTTP连接

    sudo ufw allow from 192.168.0.0/24 to any port 80
    
  3. 删除规则时指定规则编号
    首先查看所有规则及其编号:

    sudo ufw status numbered
    

    然后删除特定编号的规则:

    sudo ufw delete <rule_number>
    

(12)重新加载UFW配置

在修改配置文件后,可以重新加载UFW以应用更改:

sudo ufw reload

你可能需要的最简单的使用(不是root用户,sudo执行):

# 开启ufw
ufw enable
# 查看规则列表
ufw status
# 添加(放行)端口
ufw allow 443
# 拒绝端口
ufw deny 8080

首先,至少要允许22端口,否则会在生效后无法SSH连接。如果没有开启也没关系,去你的服务器控制台,都有免密连接、VNC连接、执行命令等操作,再次允许就可以了。

如果你的哪项服务不能访问了,记得开启对应的端口,比如mysql、http(s)等的端口。

2.3 修改SSH端口

SSH(Secure Shell)可以使用非22端口。更改SSH端口可以提高安全性,因为攻击者通常会扫描默认的端口22。要更改SSH端口,你需要编辑SSH配置文件(通常是/etc/ssh/sshd_config),然后重新启动SSH服务。以下是详细步骤:

修改SSH端口:

  1. 编辑配置文件
    打开sshd_config文件:

    sudo vim /etc/ssh/sshd_config
    
  2. 找到并修改端口设置
    找到这一行:

    #Port 22
    

    将其改为你希望使用的端口(例如,端口2222),并取消注释(去掉#号):

    Port 2222
    

修改之前看看你要用的那个端口有没有被其他服务占用,如:sudo netstat -tuln | grep 4202,没有输出的话,就可以使用。记得将这个端口添加到防火墙允许规则。

  1. 保存并退出
    保存文件并退出编辑器。

  2. 重新启动SSH服务
    根据你的Linux发行版,使用以下命令之一重新启动SSH服务:

    sudo systemctl restart ssh
    

    sudo service ssh restart
    

连接到新的端口:

连接SSH时需要指定新的端口。例如,如果你将端口改为2222,可以使用以下命令连接:

ssh -p 2222 username@hostname

使用ssh软件的话,就在端口选项那里填写即可。

2.4 仅使用凭据登录(可选)

可以在Ubuntu系统上配置SSH只允许通过凭据(如SSH密钥)登录,并禁止使用密码登录。这可以显著提高SSH访问的安全性(ssh密钥常见的就git了)。

以下是详细步骤:

(1)生成SSH密钥对(如果尚未生成)

在客户端机器上生成SSH密钥对:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

这将生成公钥和私钥对,默认存储在~/.ssh目录中。

(2) 复制公钥到服务器

将生成的公钥复制到目标服务器的~/.ssh/authorized_keys文件中:

ssh-copy-id username@server_ip_address

(3)配置SSH服务

编辑SSH配置文件/etc/ssh/sshd_config

sudo vim /etc/ssh/sshd_config

确保以下配置选项设置为禁止密码登录,并只允许使用密钥登录:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

(4)启用公钥认证

确保以下配置选项设置为启用公钥认证:

PubkeyAuthentication yes

(5)保存并重启SSH服务

保存文件并退出编辑器,然后重启SSH服务以应用更改:

sudo systemctl restart ssh

或者:

sudo service ssh restart

(6)测试配置

在进行这些更改之前,建议保持一个现有的SSH会话打开,以便在配置出现问题时进行修复。更改完成后,尝试从客户端使用SSH密钥登录服务器:

ssh username@server_ip_address

(7)确认

确保你已经成功通过SSH密钥登录,并且密码登录已经被禁止。尝试使用密码登录,应该会被拒绝。


总结:

  1. 检查服务器状态,找到异常;
  2. 停止相关进程,删除相关文件;
  3. 修改强密码;
  4. 开启防火墙;
  5. 修改SSH默认端口(或者也可以关闭密码登录,使用凭据登录)。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

simulink开发stm32,使用中断模块,无法产生中断,其中包括使用timer模块,以及ADC都无法产生中断,需要注意的地方

1&#xff0c;其中包括使用timer模块&#xff0c;以及ADC都无法产生中断&#xff0c;需要注意的地方 原来是需要在配置文件里开启一下timer的中断&#xff0c;其他模块自动加载ioc就可以了&#xff0c;这个timer需要注意力&#xff0c;需要自己勾选一下 如下图&#xff1a; 看…

【嵌入式操作系统(Linux篇)】实验期末复习(1)

以下是关于嵌入式操作系统&#xff08;Linux篇&#xff09;的实验汇总&#xff0c;大概率都是会考的 特别是shell程序和文件IO的操作 嵌入式操作系统实验小结—涉及期末大题 &#xff08;一&#xff09;Linux操作系统的使用实验 1、认识Linux操作系统的目录结构 请进入自己…

一个开源的、独立的、可自托管的评论系统,专为现代Web平台设计

大家好&#xff0c;今天给大家分享的是一个开源的、独立的、可自托管的评论系统&#xff0c;专为现代Web平台设计。 Remark42是一个自托管的、轻量级的、简单的&#xff08;但功能强大的&#xff09;评论引擎&#xff0c;它不会监视用户。它可以嵌入到博客、文章或任何其他读者…

如何知道docker谁占用的显卡的显存?

文章目录 python环境安装nvidia-htop查看pid加一个追踪总结一下【找到容器创建时间】使用说明示例 再总结一下【用PID找到容器创建时间&#xff0c;从而找到谁创建的】使用说明示例 python环境安装nvidia-htop nvidia-htop是一个看详细的工具。 pip3 install nvidia-htop查看…

Qt:4.信号和槽

目录 1.信号源、信号和槽&#xff1a; 2.Qt类的继承关系&#xff1a; 3.自定义槽函数&#xff1a; 4.第一种信号和槽的连接的方法&#xff1a; 5.第二种信号和槽的连接的方法&#xff1a; 6.自定义信号&#xff1a; 7.发射信号&#xff1a; 8.信号和槽的传参&#xff1a;…

第7章_低成本 Modbus 传感器的实现

文章目录 第7章 低成本 Modbus 传感器的实现7.1 硬件资源介绍与接线7.2 开发环境搭建7.3 创建与体验第 1 个工程7.3.1 创建工程7.3.2 配置调试器7.3.3 配置 GPIO 操作 LED 7.4 UART 编程7.4.1 使用 STM32CubeMX 进行配置1.UART12.配置 RS485方向引脚 7.4.2 封装 UART7.4.3 上机…

已解决javax.security.auth.login.LoginException:登录失败的正确解决方法,亲测有效!!!

已解决javax.security.auth.login.LoginException&#xff1a;登录失败的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 出现问题的场景 报错原因 解决思路 解决方法 1. 检查用户名和密码 用户名和密码验证 2. 验证配置文件 …

前端面试题(基础篇十二)

一、link标签定义、与import的区别 link 标签定义文档与外部资源的关系。 link 元素是空元素&#xff0c;它仅包含属性。 此元素只能存在于 head 部分&#xff0c;不过它可出现任意数。 link 标签中的 rel 属性定义了当前文档与被链接文档之间的关系。常见的 stylesheet 指的是…

ServletConfig与ServletContext详解

文章目录 概要web.xmlServletConfig介绍ServletConfig实例ServletConfig细节ServletContext介绍ServletContext实例ServletContext细节ServletContext获得服务访问次数&#xff08;可拓展&#xff09;总结 概要 web.xml <?xml version"1.0" encoding"UTF-…

使用uniapp编写微信小程序

使用uniapp编写微信小程序 文章目录 使用uniapp编写微信小程序前言一、项目搭建1.1 创建项目方式1.1.1 HBuilderX工具创建1.1.2 命令行下载1.1.3 直接Gitee下载 1.2 项目文件解构1.2.1 安装依赖1.2.2 项目启动1.2.3 文件结构释义 1.2 引入uni-ui介绍 二、拓展2.1 uni-app使用uc…

谷粒商城实战(045集群学习-elasticsearch(ES)集群)

Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强 总时长 104:45:00 共408P 此文章包含第368p-第p369的内容 文章目录 简介集群健康分片新增节点水平扩容问题和解决集群结构测试集群信息 简介 不管用户发给哪个节点&#xff0c;都可以…

Adobe Acrobat Pro或者Adobe Acrobat Reader取消多标签页显示,设置打开一个pdf文件对应一个窗口。

Windows系统&#xff1a;Adobe Acrobat Pro或者Adobe Acrobat Reader首选项-一般-取消在同一窗口的新标签中打开文档&#xff08;需要重启&#xff09;的对勾&#xff0c;点击确定&#xff0c;彻底关闭后重启&#xff0c;这样打开的每一个PDF文件对应的是一个窗口&#xff0c;并…

vue3+ el-upload封装上传组件

组件功能介绍 上传格式限制上传大小限制上传文件数量限制自定义上传区上传成功回调禁用上传开关与点击上传自定义事件暴露所以上传文件列表&#xff08;uploadList&#xff09;与当前文件数据&#xff08;uploadLatestFile&#xff09; 组件代码Upload.vue <template>&l…

玩具租赁系统(安装+讲解+源码)

技术栈: 后端: SpringBoot Mysql MybatisPlus 前端: Vue Element 分为 管理员端 用户端 功能: 用户端 管理员端 观看地址: B站搜&#xff1a; 【毕设者】玩具租赁系统(安装讲解源码)

智慧园区综合平台解决方案PPT(75页)

## 智慧园区的理解 ### 从园区1.0到园区4.0的演进 1. 园区1.0&#xff1a;以土地经营为主&#xff0c;成本驱动&#xff0c;提供基本服务。 2. 园区2.0&#xff1a;服务驱动&#xff0c;关注企业成长&#xff0c;提供增值服务。 3. 园区3.0&#xff1a;智慧型园区&#xff…

WordPress免费模板:惊艳动态效果,打造视觉盛宴

WordPress免费模板&#xff1a;惊艳动态效果&#xff0c;打造视觉盛宴 我们为您带来了一款独具特色的WordPress免费模板&#xff0c;这款模板以其独特的动态效果设计&#xff0c;特别是引人注目的动态banner图片效果&#xff0c;为您的网站注入活力&#xff0c;打造一场视觉盛…

[渗透测试] 任意文件读取漏洞

任意文件读取漏洞 概述 漏洞成因 存在读取文件的功能&#xff08;Web应用开放了文件读取功能&#xff09;读取文件的路径客户端可控&#xff08;完全控制或者影响文件路径&#xff09;没有对文件路径进行校验或者校验不严格导致被绕过输出文件内容 漏洞危害 下载服务器中的…

spring boot (shiro)+ websocket测试连接不上的简单检测处理

1、用前端连接测试的demo一切正常&#xff0c;但是到了项目中连接不上了 一开始以为是地址错&#xff0c;但是换了apifox测试也是不可以。 2、考虑是shiro进行了拦截了&#xff0c;所以就访问不到了地址&#xff0c;那么就放行。 3、再次用apifox测试&#xff0c;成功了。 当然…

【CSS in Depth 2 精译】2.2 em 和 rem + 2.2.1 使用 em 定义字号

当前内容所在位置 第一章 层叠、优先级与继承第二章 相对单位 2.1 相对单位的威力 2.1.1 响应式设计的兴起 2.2 em 与 rem ✔️ 2.2.1 使用 em 定义字号 ✔️2.2.2 使用 rem 设置字号 2.3 告别像素思维2.4 视口的相对单位2.5 无单位的数值与行高2.6 自定义属性2.7 本章小结 2.…

复分析——第9章——椭圆函数导论(E.M. Stein R. Shakarchi)

第 9 章 椭圆函数导论 (An Introduction to Elliptic Functions) The form that Jacobi had given to the theory of elliptic functions was far from perfection; its flaws are obvious. At the base we find three fundamental functions sn, cn and dn. These functio…