【服务器】服务器被攻击植入了挖矿病毒,CPU一直占用100%,@monthly /root/.cfg/./dealer病毒清除 - 实践

news/2025/11/15 22:44:38/文章来源:https://www.cnblogs.com/gccbuaa/p/19226443

文章目录

  • 问题分析
  • 解决
    • 1、检查crontab任务
    • 2、检查并清除恶意文件
    • 3、查看系统服务
    • 4、检查可疑服务
    • 5、立即处理恶意服务
      • 5.1 检查恶意服务详情
      • 5.2 停止并禁用恶意服务
      • 5.3 删除恶意服务文件
      • 5.4、杀死恶意进程
    • 6、后续
      • 6.1 服务器安全组配置指定来源IP进行登录对应端口(如果长期固定某几个IP可以拒绝该IP访问服务器),远程登录端口也可以修改为非22端口(这种办法通常效果一般)
        • 修改SSH端口
        • 腾讯云安全组配置
      • 6.2 建议禁用密码登录,改为密钥登录
      • 6.3 如一定要使用密码登录避免弱密码(复杂密码能大大降低被爆破出登录密码的概率)
    • 7、补充知识

问题分析

登录服务器时,ssh提示密码不对,就去控制台检查,服务器提示CPU使用告警,占用过高。远程无法登录。

原因分析:所有中毒的均为linux服务器,密码设置过于简单,防火墙关闭的。

解决

1、检查crontab任务

crontab -l //计划任务列表
crontab -e //编辑新增
crontab -r //删除(谨慎使用,会删除所有定时任务)

大概率你会发现典型的恶意后门定时任务

@monthly /root/dealer & disown > /dev/null 2>&1
@monthly /root/.cfg/dealer & disown > /dev/null 2>&1

这是一个高度专业化的持久化后门:

  • ✅ 每月自动激活

  • ✅ 完全隐藏运行痕迹

  • ✅ 进程脱离监控

  • ✅ 双重备份机制

  • ✅ root权限执行

这些是明显的后门程序!请使用crontab -e立即删除恶意定时任务

2、检查并清除恶意文件

# 检查恶意文件
ls -la /root/dealer
ls -la /root/.cfg/dealer
# 检查文件属性
file /root/dealer
file /root/.cfg/dealer
# 清除恶意文件
rm -f /root/dealer
rm -rf /root/.cfg/
# 检查是否有其他隐藏文件
find /root -name "dealer" -o -name ".cfg" 2>/dev/null

3、查看系统服务

经过上面的步骤,你会发现CPU占用还是100%

我们进入系统目录

cd /lib/systemd/system

再调用命令,以从旧到新排序

ll -rt

在这里插入图片描述

4、检查可疑服务

# 查看所有运行中的服务
systemctl list-units --type=service --state=running
# 查看所有已启用的服务
systemctl list-unit-files --type=service | grep enabled
# 查看最近启动的服务
systemctl list-units --type=service --state=running --all | head -20

结果示例

bash-4.2# systemctl list-units --type=service --state=running
UNIT                       LOAD   ACTIVE SUB     DESCRIPTION
acpid.service              loaded active running ACPI Event Daemon
atd.service                loaded active running Job spooling tools
auditd.service             loaded active running Security Auditing Service
crond.service              loaded active running Command Scheduler
dbus.service               loaded active running D-Bus System Message Bus
getty@tty1.service         loaded active running Getty on tty1
libstoragemgmt.service     loaded active running libstoragemgmt plug-in server daemon
lvm2-lvmetad.service       loaded active running LVM2 metadata daemon
mysqld.service             loaded active running MySQL Server
network.service            loaded active running LSB: Bring up/down networking
ntpd.service               loaded active running Network Time Service
php-fpm.service            loaded active running The PHP FastCGI Process Manager
polkit.service             loaded active running Authorization Manager
rabbitmq-server.service    loaded active running RabbitMQ broker
rc-local.service           loaded active running /etc/rc.d/rc.local Compatibility
rsyslog.service            loaded active running System Logging Service
serial-getty@ttyS0.service loaded active running Serial Getty on ttyS0
sshd.service               loaded active running OpenSSH server daemon
supervisord.service        loaded active running Process Monitoring and Control Daemon
systemd-journald.service   loaded active running Journal Service
systemd-logind.service     loaded active running Login Service
systemd-sclide.service     loaded active running Example systemd service.
systemd-udevd.service      loaded active running udev Kernel Device Manager
tuned.service              loaded active running Dynamic System Tuning Daemon
LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.
24 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

systemd-sclide.service 是一个明显的恶意服务,正常的系统不会有这个服务。

5、立即处理恶意服务

5.1 检查恶意服务详情

# 查看恶意服务的详细信息
systemctl status systemd-sclide.service
systemctl cat systemd-sclide.service
# 查看服务文件路径
ls -la /lib/systemd/system/systemd-sclide.service
cat /lib/systemd/system/systemd-sclide.service

结果示例

bash-4.2# systemctl status systemd-sclide.service
● systemd-sclide.service - Example systemd service.
Loaded: loaded (/etc/systemd/system/systemd-sclide.service; enabled; vendor preset: disabled)
Active: active (running) since 四 2025-10-09 09:57:14 CST; 1 day 7h ago
Process: 697 ExecStart=/usr/bin/udeb (code=exited, status=0/SUCCESS)
Main PID: 758 (loghandlerx)
CGroup: /system.slice/systemd-sclide.service
└─758 /tmp/loghandlerx
10月 09 09:57:08 VM-64-49-centos systemd[1]: Starting Example systemd service....
10月 09 09:57:14 VM-64-49-centos systemd[1]: Started Example systemd service..
bash-4.2# systemctl cat systemd-sclide.service
# /etc/systemd/system/systemd-sclide.service
[Unit]
Description=Example systemd service.
[Service]
Type=forking
ExecStart=/usr/bin/udeb
Restart=always
RestartSec=5s
SuccessExitStatus=SIGHUP
TimeoutStartSec=6000
KillMode=control-group
StandardOutput=null
StandardError=null
[Install]
WantedBy=multi-user.target
bash-4.2#

这是一个典型的恶意挖矿服务。发现了恶意文件和进程。

从服务配置可以看出:

  • /usr/bin/udeb - 启动器(伪装成系统文件)

  • /tmp/loghandlerx - 实际的挖矿程序(在/tmp目录)

  • Restart=always - 总是自动重启(持久化)

  • RestartSec=5s - 5秒后自动重启

  • 标准输出/错误重定向到null - 隐藏输出

5.2 停止并禁用恶意服务

# 立即停止服务
systemctl stop systemd-sclide.service
# 禁用服务(防止重启后自动运行)
systemctl disable systemd-sclide.service
# 确认服务已停止
systemctl status systemd-sclide.service

5.3 删除恶意服务文件

# 删除恶意二进制文件
rm -f /usr/bin/udeb
rm -f /tmp/loghandlerx
# 删除恶意服务文件
rm -f /etc/systemd/system/systemd-sclide.service
# 重新加载systemd
systemctl daemon-reload

5.4、杀死恶意进程

# 杀死运行的恶意进程
pkill -f loghandlerx
pkill -f udeb
# 确认进程已终止
ps aux | grep -E "(loghandlerx|udeb)"

6、后续

一般你的服务器被破解,对方已经掌握了你的服务器ssh登录密码,为了防止重复被攻击,建议:

6.1 服务器安全组配置指定来源IP进行登录对应端口(如果长期固定某几个IP可以拒绝该IP访问服务器),远程登录端口也可以修改为非22端口(这种办法通常效果一般)

修改SSH端口
# 备份SSH配置
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
# 编辑SSH配置
vim /etc/ssh/sshd_config

修改或添加以下行:

# 将端口改为非标准端口,比如 2222
Port 22
Port 2222
# 或者完全禁用22端口,只使用新端口
# Port 2222

重启SSH服务

# 检查配置语法
sshd -t
# 重启SSH服务
systemctl restart sshd
# 确认新端口监听
netstat -tunlp | grep sshd
腾讯云安全组配置
  • 登录腾讯云控制台 → 云服务器 → 安全组

  • 修改现有规则:

    • 找到SSH(22)端口的入站规则

    • 修改源IP为您的固定IP,格式:1.2.3.4/32(单个IP)

  • 添加入站规则:

    • 协议:TCP

    • 端口:2222(您修改的SSH端口)

    • 源:您的固定IP,如 1.2.3.4/32

    • 策略:允许

6.2 建议禁用密码登录,改为密钥登录

生成SSH密钥对(如果还没有)

# 在您的本地电脑生成密钥(不是在服务器上)
ssh-keygen -t ed25519 -C "your_email@example.com"
# 或者使用RSA
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

将公钥上传到服务器

# 方法1:使用ssh-copy-id(推荐)
ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 2222 username@server_ip
# 方法2:手动复制
cat ~/.ssh/id_ed25519.pub
# 然后登录服务器,将公钥内容添加到 ~/.ssh/authorized_keys

在服务器上配置SSH

# 编辑SSH配置
vim /etc/ssh/sshd_config

修改以下参数:

# 禁用密码登录
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
# 启用密钥登录
PubkeyAuthentication yes
# 可选:禁用root登录
PermitRootLogin no
# 可选:只允许特定用户
AllowUsers username
# 指定新端口
Port 2222

重启SSH服务并测试

# 重启服务
systemctl restart sshd
# 在新窗口测试密钥登录
ssh -i ~/.ssh/id_ed25519 -p 2222 username@server_ip

6.3 如一定要使用密码登录避免弱密码(复杂密码能大大降低被爆破出登录密码的概率)

推荐一个密码生成器:强大安全的密码生成器

为现有用户修改密码

# 修改当前用户密码
passwd
# 修改其他用户密码(需要root权限)
passwd username

7、补充知识

laravel框架使用env(‘xxx’)获取不到.env文件里的信息了?

清除配置缓存

# 清除配置缓存
php artisan config:clear
php artisan cache:clear

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

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

相关文章

第4章 AI项目管理新范式:从交付功能到交付价值

第4章 AI项目管理新范式:从交付功能到交付价值前文系统剖析了传统项目管理范式在AI场景下的局限性。面对这些系统性挑战,简单的“修补”已无济于事,我们必须进行管理范式的“重构”。本章正式提出AI项目管理的新范式…

牛客101:链表 - 教程

牛客101:链表 - 教程2025-11-15 22:39 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-…

C++ QT_数据转换(数值、QString、QByteArray、结构体)

目录1. 基础类型互转数值 ↔ QStringbool ↔ QStringQString 与 QByteArray 互转结构体与 QByteArray 互转 1. 基础类型互转 数值 ↔ QString//int → QStringint intVal = 255; QString strInt1 = QString::number(i…

LNCPC 2025 游寄

LNCPC 2025 游记热身赛 没去,因为期中考试 TAT. jsh 和 sr 替我报了道,然后我在火车上胡做法。 C 是显然 greedy,D 是一个不知道什么东西。 然后铸币蒟蒻凭借惊人的注意力想到了在二进制上转换做数位 dp,但是时间不…

第3章 传统项目管理在AI中的局限

第3章 传统项目管理在AI中的局限第3章 传统项目管理在AI中的局限本章简介在深刻理解了AI项目的核心特征后,本章将系统性地审视传统项目管理框架在面对这些特征时所暴露出的不适应性。目的在于并非全盘否定经典方法——…

Python 异常处理全面详解(附丰富实例)

Python 异常处理全面详解(附丰富实例) 异常是程序运行时出现的意外错误(如除数为零、文件不存在等),若不处理会导致程序崩溃。Python 提供了完善的异常处理机制,允许开发者捕获并处理这些错误,保证程序的健壮性…

IServiceCollection和IServiceProvider

ServiceCollection 和 ServiceProvider 是 .NET 依赖注入系统中的两个核心概念,但它们的职责完全不同。理解这两个概念对看懂 ASP.NET Core / ABP 框架的 DI 机制非常重要。 下面用非常清晰、分层方式给你解释:✔️ …

multisim 13 Problem: Accessing the database解决办法

删除这个文件夹重新打开即可C:\Users\zengf\AppData\Roaming\National Instruments\Circuit Design Suite\13.0\config

完整教程:Redis 事务机制:Pipeline、ACID、Lua脚本

完整教程:Redis 事务机制:Pipeline、ACID、Lua脚本pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&quo…

Python 一维数据、二维数据及 CSV 文件操作全解析(附实例)

Python 一维数据、二维数据及 CSV 文件操作全解析(附实例) 在数据处理中,一维数据和二维数据是最基础的数据结构。CSV(逗号分隔值)作为一种轻量级文件格式,是存储和交换这两类数据的常用载体。本文将系统讲解一维…

银行核心账户体系、账务设计、会计核心(整合版)

开头先和读过的朋友道个歉,因为某些原因(​先不说​),文章需要重新发一遍,同时新发的内容有大幅增加,请仔细阅读不要遗漏。结合以前发过很多相关知识,今天将科目、账户、账务、会计串起来讲一讲,让整个知识体系…

斐波那契数列相关恒等式

前置规定 \(F_0=0,F_1=1,F_i=F_{i-1}+F_{i-2}\) 公式部分\(\sum_{i=1}^n F_i=F_{n+2}-1\) \(\sum_{i=1}^n F_{2i-1}=F_{2n}\) \(\sum_{i=1}^n F_{2i}=F_{2n+1}-1\) \(\sum_{i=1}^n F_i^2=F_nF_{n+1}\)

Python 文件操作全面详解:从基础到进阶(附丰富实例)

Python 文件操作全面详解:从基础到进阶(附丰富实例) 文件操作是 Python 编程中最核心的技能之一,涵盖文件的创建、读写、关闭、删除、属性修改等场景。本文将系统梳理 Python 文件操作的核心概念、基础 API、进阶技…

银行中外汇的由来(金融产品经理必读)

经常听到我们国家有多少多少亿美元的外汇储备,是否有这样的疑问,外汇储备是什么,它又是怎么来的,银行又是如何处理外汇储备的,今天就闲聊一下。 外汇管理 常见概念 现汇: 通俗来讲,就是在银行账户里可以自由买卖…

AI元人文框架:意义世界的探索引擎

AI元人文框架:意义世界的探索引擎基础层:价值原语 •定义:将复杂人类现象分解为基本价值单元(如【公平】【忠诚】【卓越】) •作用:构建意义世界的"化学元素周期表",实现价值的解析与重组环境层:多维…

abc432

AC 3 (ABF), Score 750, Penalty 47:35, Rank , Ranting .攒 rp。CCPC 济南站 rp++。 C 这是什么!怎么这么困难!思考 20min 无果于是跳了。 看榜,怎么这么抽象,C<E<FG<D 是什么东西( 开 E,发现直接线段…

20232310 2025-2026-1 《网络与系统攻防技术》实验五实验报告

1.实验内容 1.1域名与IP信息搜集分析;1.2社交网络IP地址获取与地理位置定位;1.3靶机环境扫描探测、漏洞评估与攻击路径分析;1.4搜索个人网上足迹与高级搜索技能实践。2.实验目的 学习使用搜索引擎、扫描引擎、扫描工…

实用指南:开源 Linux 服务器与中间件(七)数据库--MySQL

实用指南:开源 Linux 服务器与中间件(七)数据库--MySQL2025-11-15 22:15 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important…

版本控制与GitLab完整实践指南 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

利用Myo臂环采集肌电信号和角速度来建立实时手势识别

利用Myo臂环采集肌电信号和角速度来建立实时手势识别pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&quo…