当前位置: 首页 > news >正文

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

文章目录

  • 问题分析
  • 解决
    • 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=runningUNIT                       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 DaemonLOAD   = 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 agoProcess: 697 ExecStart=/usr/bin/udeb (code=exited, status=0/SUCCESS)Main PID: 758 (loghandlerx)CGroup: /system.slice/systemd-sclide.service└─758 /tmp/loghandlerx10月 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.dtcms.com/a/506703.html

相关文章:

  • DevExpress WinForms v25.1亮点 - 电子表格组件、富文档编辑器全新升级
  • SVN冲突处理相关,标识 C 语言源文件(.c)的不同版本或冲突状态
  • 《掰开揉碎讲编程-长篇》重生之哈希表易如放掌
  • 【Python】绘制椭圆眼睛跟随鼠标交互算法配图详解
  • 【C++模版进阶】如何理解非类型模版参数、特化与分离编译?
  • 字符串专题总结:从模拟运算到模板掌握
  • 【Java链表】从概念结构到单向链表创建,增删查改全流程实战
  • 从C10K到Reactor:事件驱动,如何重塑高并发服务器的网络架构
  • 顺义做网站公司重庆企业网络推广软件
  • 淘宝怎么做网站郑州网站开发公
  • input + React自定义上传组件【可自定义拓展】
  • 「日拱一码」125 多层特征融合
  • 第六部分:VTK进阶(第164章 复合数据集 vtkMultiBlockDataSet 组织)
  • k8s(十一)HPA部署与使用
  • 【ReaLM】结合错误数据与课程学习 提升垂域效果
  • 通了网站建设宿迁网站定制
  • Git仓库推送到GitHub
  • 本地多语言切换具体操作代码
  • 济南建设主管部门网站短视频网站如何做推广
  • AWS US-East-1 区宕机
  • C语言——关机小程序(有system()和strcmp()函数的知识点)
  • php网站案例购物网页设计图片
  • golang面经7:interface相关
  • [Agent可视化] 配置系统 | 实现AI模型切换 | 热重载机制 | fsnotify库(go)
  • 【第7篇】引入低配大模型
  • 【Linux】Linux 进程信号核心拆解:pending/block/handler 三张表 + signal/alarm 实战
  • Java-154 深入浅出 MongoDB 用Java访问 MongoDB 数据库 从环境搭建到CRUD完整示例
  • 1.云计算与服务器基础
  • 基于Draw.io的实时协作架构设计与性能优化实践
  • 网站右侧固定标题怎么做深圳品牌馆设计装修公司