【Linux】服务器被work32病毒入侵CPU占用99%
创始人
2025-01-19 07:03:47
0次

文章目录

  • 一、问题发现
  • 二、问题解决
    • 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  

(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默认端口(或者也可以关闭密码登录,使用凭据登录)。

相关内容

热门资讯

一分钟教你辅助!微乐小程序免费... 您好,微乐小程序免费工具这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多...
玩家必看秘籍开挂!艾牛娱乐辅助... 玩家必看秘籍开挂!艾牛娱乐辅助透视挂,北京麻将真的是有外挂,总是有挂分享1、让任何用户在无需艾牛娱乐...
科技分享透视挂!微信小程序微乐... 科技分享透视挂!微信小程序微乐辅助免费,微乐江苏小程序游戏破解器下载-果然是真的有辅助器微信小程序微...
玩家必备科普透视挂!新九游大厅... 玩家必备科普透视挂!新九游大厅辅助透视挂,天天温岭麻将是真的有外挂,都是揭秘有挂1、用户打开应用后不...
必备科技开挂!微信小程序微乐辅... 必备科技开挂!微信小程序微乐辅助器教程,微乐自建房辅助工具安全吗-确实存在有辅助教程1)微信小程序微...
指导大家辅助!荷塘辅助透视挂,... 指导大家辅助!荷塘辅助透视挂,微乐河南麻将真的有外挂,确实有挂分析指导大家辅助!荷塘辅助透视挂,微乐...
1.9分钟了解辅助!微乐家乡麻... 1.9分钟了解辅助!微乐家乡麻将辅助,微乐小程序免费黑科技-其实真的是有辅助插件1、玩家可以在微乐小...
最终开挂!微乐浙江麻将辅助透视... 最终开挂!微乐浙江麻将辅助透视挂,闲来广东麻将真的有外挂,都是真实有挂1、下载好微乐浙江麻将脚本下载...
实测发现辅助!微乐小程序黑科技... 实测发现辅助!微乐小程序黑科技免费工具,微乐家乡官方免费下载安装-本来是真的有辅助脚本1、上手简单,...
日前开挂!挖坑青海麻将辅助透视... 日前开挂!挖坑青海麻将辅助透视挂,元来黄冈麻将是真的有外挂,一贯有挂功能1、每一步都需要思考,不同水...