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

云服务器CPU和内存直接被zzh恶意挖矿程序打满,如何解决?

回顾

最近在服务器上面部署网站,刚开始使用还是没问题的,当时一段时间之后发现CPU和内存总是被打满,本地没有跑大的应用,主要有mysql、nginx、redis,一度还以为是nginx 的问题,但是后来排除了。之后使用htop发现有一个zzh的进程一直在占用,并且占用五个核心,将之kill掉之后CPU占用率立马就下来了,但是过段时间之后这个就又会上去…
在这里插入图片描述

kill进程之后CPU占用率下降到正常水平。

原因

在网上查阅资料之后,发现服务器是被恶意攻击了。在特定的场景下,如果redis以root身份运行,黑客可以使用root账号写入一个ssh文件,然后获得服务器权限和数据,当入侵成功之后,攻击者可以给用户的Redis运行环境以及Linux主机带来安全危险。

解决

# 进入etc文件夹
cd /etc
# 查看zzh和zzhs文件的权限
ll | grep zzh
# rm删除zzhs文件,但zzh不能删除,权限不够
rm -rf zzhs
# 显示zzh的文件属性,会发现其带有ia参数
# a:Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。
# i:Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
lsattr zzh
# 删除其ia属性
chattr -ia zzh
# 执行上一条命令,如果出现Permission denied,则进入/usr/bin目录;如果没出现则直接执行:rm -rf zzh 删除zzh文件
cd /usr/bin
# 查看chattr权限
ls -lh chattr;lsattr chattr
# 接下来更改该命令权限,复制chattr的副本chattr.new
cp chattr chattr.new
# 给所有用户文件可执行权限
chmod a+x chattr.new
# 用chattr.new修改chattr文件属性
chattr.new -i chattr
# 删除chattr.new文件
rm -f chattr.new
# 给chattr授权
chmod a+x chattr
# 重新查看chattr权限
ls -lh chattr;lsattr chattr
# 回到zzh所在的文件夹
cd /etc
# 删除其ia属性
chattr -ia zzh
# 删除zzh文件
rm -rf zzh

预防

在redis.conf中将bind 后面的地址换成需要访问这台数据库的IP地址在,另外给redis设置密码,最后的话修改redis的运行章,以低一点的权限来运行redis服务,禁用这个账号的登录权限。

相关文章:

  • 搭建多平台比价软件你必须知道的几大知识板块
  • 树莓派设置开机自启动程序(可执行文件与python脚本)
  • selenium 输入框、按钮,输入点击,获取元素属性等简单例子
  • HPC: perf入门
  • 28-unittest批量执行(discover)
  • AI学习指南机器学习篇-决策树的特征选择和分裂准则
  • Linux | 标准IO编程
  • 【传知代码】DETR[端到端目标检测](论文复现)
  • Hash String 学习笔记
  • 简单通用的系统安装、备份、还原方法,支持 ARM 系统【Ventory+FirePE+DiskGenius】
  • 安装node
  • 数据结构笔记2 栈和队列
  • 服务器数据恢复—服务器raid5上层zfs文件系统数据恢复案例
  • java线程池介绍
  • 2024 IDEA最新永久使用码教程(2099版)
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 2019年如何成为全栈工程师?
  • JavaScript HTML DOM
  • Javascript Math对象和Date对象常用方法详解
  • leetcode98. Validate Binary Search Tree
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • sessionStorage和localStorage
  • Tornado学习笔记(1)
  • 构建二叉树进行数值数组的去重及优化
  • 关于for循环的简单归纳
  • 回顾2016
  • 警报:线上事故之CountDownLatch的威力
  • 力扣(LeetCode)21
  • 模型微调
  • 我从编程教室毕业
  • Prometheus VS InfluxDB
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​flutter 代码混淆
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • #07【面试问题整理】嵌入式软件工程师
  • (4)logging(日志模块)
  • (6)STL算法之转换
  • (delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第2节(泛型类的类构造函数)
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (zhuan) 一些RL的文献(及笔记)
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (算法)Travel Information Center
  • (一) 初入MySQL 【认识和部署】
  • (原創) 未来三学期想要修的课 (日記)
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET成年了,然后呢?
  • .NET分布式缓存Memcached从入门到实战
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .Net中ListT 泛型转成DataTable、DataSet
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • [ 数据结构 - C++]红黑树RBTree
  • [20171102]视图v$session中process字段含义