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

news2024/11/27 2:18:12

文章目录

  • 一、问题发现
  • 二、问题解决
    • 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默认端口(或者也可以关闭密码登录,使用凭据登录)。

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

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

相关文章

R语言学习笔记1-介绍与安装

R语言学习笔记1-介绍与安装 简介应用领域R语言优势安装步骤&#xff08;linux版本&#xff09;在R脚本中绘制简单的条形图示例 简介 R语言是一种非常强大和流行的据分析和统计建模工具。它是一种开源的编程语言和环境&#xff0c;专门设计用于数据处理、统计分析和可视化。 应…

DP(动态规划)【2】 最大连续子列和 最长不降子序列

1.最大连续子列和 #include <iostream> #include <vector> #include <cmath> #include <string> #include <cstring> #include <queue> using namespace std; const int N10002,maxn10;int n,m,k,f[N]{0},dp[N]{0};int main() {scanf(&quo…

JavaParser抽取测试用例对应的被测方法

背景介绍 博主目前要做的工作需要将一个java项目的所有RD手写的测试用例和被测方法对应起来&#xff0c;最后将得到的结果存入一个json文件。 本教程以项目GitHub - binance/binance-connector-java 为例。 结果展示 最终会得到一个 funcTestMap.json&#xff0c;里面存放着…

深度学习实验第T2周:彩色图片分类

>- **&#x1f368; 本文为[&#x1f517;365天深度学习训练营](https://mp.weixin.qq.com/s/0dvHCaOoFnW8SCp3JpzKxg) 中的学习记录博客** >- **&#x1f356; 原作者&#xff1a;[K同学啊](https://mtyjkh.blog.csdn.net/)** 目录 一、前言 目标 二、我的环境&#…

煤安防爆手机在煤矿井下使用时需要符合什么标准

煤安防爆手机在煤矿井下使用时&#xff0c;需符合严格的防爆安全标准&#xff0c;如煤安MA防爆合格证&#xff0c;以确保在易燃易爆环境中安全无虞。同时&#xff0c;手机还需具备防尘防水、抗冲击等环境适应性要求&#xff0c;以及优异的通信性能&#xff0c;以满足煤矿工作的…

python 获取遮挡窗口界面并操作窗口

有时候我们需要程序自动化帮我们处理一些事情,这时候我们会想到使用按键精灵等一些可以模拟人工操作的软件代替我们劳动,但是,这种操作有个前提就是需要将操作界面置于最顶层,这样就会影响我们做其他事情,这时我们就不希望操作界面置于最外层,影响我们做其他操作。 今天…

JAVA毕业设计145—基于Java+Springboot+vue+uniapp的驾校预约小程序(源代码+数据库+15000字论文)

毕设所有选题&#xff1a; https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootvueuniapp的驾校预约小程序(源代码数据库15000字论文)145 一、系统介绍 本项目前后端分离&#xff0c;分为用户、教练、管理员三种角色 1、用户&#xff1a; …

技术分享:分布式数据库DNS服务器的架构思路

DNS是企业数字化转型的基石。伴随微服务或单元化部署的推广&#xff0c;许多用户也开始采用分布式数据库将原来的单体数据库集群服务架构拆分为大量分布式子服务集群&#xff0c;对应不同的微服务或服务单元。本文将从分布式数据库DNS服务器的架构需求、架构分析两方面入手&…

今天起,全球所有Mac用户可免费安装桌面版ChatGPT

在 macOS 上&#xff0c;用户在安装新的 ChatGPT 应用程序后&#xff0c;使用 Option Space 的键盘组合即可快速调用 ChatGPT。 刚刚&#xff0c;OpenAI 宣布推出适用于 macOS 的应用程序。 虽然 Mac 应用程序尚未在 Mac App Store 中提供&#xff0c;但用户可以直接从 Open…

计算机网络之OSI七层体系结构

目录 1.物理层 1.1物理层组成 1.2物理层功能 1.3物理层服务 1.4物理层标准 1.5物理层接口 2.数据链路层 2.1基于物理层的问题 2.2数据链路层功能 2.3数据链路层服务 2.4数据链路层协议 3.网络层 3.1基于DL层的问题 3.2网络层功能 3.3网络层服务 3.4网络层协议 …

饮料添加剂光照试验太阳光模拟器试验箱

饮料添加剂光照试验是一种用来评估饮料在光照条件下稳定性的实验方法。这个过程通常包括以下几个步骤&#xff1a; 样品准备&#xff1a; 首先&#xff0c;将饮料密封在市售包装或近似市售包装中&#xff0c;确保包装的完整性和密封性。 光照条件设置&#xff1a; 将封装好的…

开源大模型RAG企业本地知识库问答机器人-ChatWiki

ChatWiki ChatWiki是一款开源的知识库 AI 问答系统。系统基于大语言模型&#xff08;LLM &#xff09;和检索增强生成&#xff08;RAG&#xff09;技术构建&#xff0c;提供开箱即用的数据处理、模型调用等能力&#xff0c;可以帮助企业快速搭建自己的知识库 AI 问答系统。 开…

idea2024使用springboot3.x系列新建java项目,使用jdk17,启动项目报错

身为一名开发人员&#xff0c;敲代码无数&#xff0c;竟被一个小小启动给我卡了大半天&#xff0c;太丢脸了 报错一&#xff1a;Field infoSysRepository in com.erectile.Impl.PersonalInfoServiceImpl required a bean of type ‘com.erectile.jpa.repository.InfoSysReposit…

短视频视频配:成都柏煜文化传媒有限公司

短视频视频配&#xff1a;​艺术与技术的完美融合 在短视频盛行的当下&#xff0c;一个优秀的短视频作品不仅仅依赖于精彩的内容&#xff0c;更需要在视频配上做足功夫。视频配&#xff0c;作为短视频的重要组成部分&#xff0c;涵盖了音效、配乐、字幕等多个方面&#xff0c;…

Spring Boot中 CommandLineRunner 与 ApplicationRunner作用、区别

CommandLineRunner 和 ApplicationRunner 是 Spring Boot 提供的两种用于在应用程序启动后执行初始化代码的机制。这两种接口允许你在 Spring 应用上下文完全启动后执行一些自定义的代码&#xff0c;通常用于执行一次性初始化任务&#xff0c;如数据库预填充、缓存预热等。 Co…

Docker 部署 MariaDB 数据库 与 Adminer 数据库管理工具

文章目录 MariaDBmariadb.cnf开启 binlog Adminerdocker-compose.ymlAdminer 连接 MariaDB MariaDB MariaDB是一个流行的开源关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它是MySQL的一个分支和替代品。 官网&#xff1a;https://mariadb.com/镜像&#xff…

拆分盘投资策略解析:机制、案例与风险考量

一、引言 随着互联网技术的迅猛发展和金融市场的不断创新&#xff0c;拆分盘这一投资模式逐渐崭露头角&#xff0c;成为投资者关注的焦点。它基于特定的拆分策略&#xff0c;通过调整投资者持有的份额和单价&#xff0c;实现了看似稳健的资产增长。本文旨在深入探讨拆分盘的运…

黑芝麻科技A1000简介

文章目录 1. A1000 简介2. 感知能力评估3. 竞品对比4. 系统软件1. A1000 简介

父元素hover子元素显示之opacity

碰到的几种问题&#xff1a; opacity 占实际位置, 会触发父元素的hover事件。 尝试了一下把菜单的pointer-events: none;但是鼠标移动不到菜单上去了&#xff0c;移动到菜单上也会不显示。 解决方法&#xff1a; opacity 和 visibility一起使用。 .dropdown .dropdown-menu …

OpenHarmony南向驱动开发实战-Input

简介 该仓下主要包含Input模块HDI&#xff08;Hardware Driver Interface&#xff09;接口定义及其实现&#xff0c;对上层输入服务提供操作input设备的驱动能力接口&#xff0c;HDI接口主要包括如下三大类&#xff1a; InputManager&#xff1a;管理输入设备&#xff0c;包括…