由于Redis后门漏洞导致服务器被注入挖矿脚本解决过程

由于Redis后门漏洞导致服务器被注入挖矿脚本解决过程由于Redis后门漏洞导致服务器被注入挖矿脚本解决过程事件描述某一天的早晨,我还是像往常一样搭着公交车开启打工仔的一天,一早8.30就到办公室了,坐着玩手机等上班,就这这时突然我组长飞快的回来办公室,回来就说快看看阿里云后台服务,服务是不是挂掉了,我当时就纳闷了一大早的流量不大怎么就宕机了呢,不一会我组长收到了阿里云短信通知监测到恶意脚本,接下来就是脚本的查找前期处理首先是通过阿里云的控制台发现,查看到恶意的进程PID,通过ps-ef|greap5724的确看到了当前进程,前期处理我只

大家好,又见面了,我是你们的朋友全栈君。

由于Redis后门漏洞导致服务器被注入挖矿脚本解决过程

事件描述

某一天的早晨,我还是像往常一样搭着公交车开启打工仔的一天,一早8.30就到办公室了,坐着玩手机等上班,就这这时突然我组长飞快的回来办公室,回来就说快看看阿里云后台服务,服务是不是挂掉了,我当时就纳闷了一大早的流量不大怎么就宕机了呢,不一会我组长收到了阿里云短信通知监测到恶意脚本,接下来就是脚本的查找

前期处理

首先是通过阿里云的控制台发现,查看到恶意的进程PID,通过ps -ef | greap 5724的确看到了当前进程,前期处理我只是通过了kill -9 5724将进程kill了,并且把后台服务也启动了看似风平浪静,更加恐怖再后头

在这里插入图片描述

问题再现

但是好景不长过了30分钟作用开始有一个服务又突然宕机,接下来nginx也宕机了,我尝试启动服务,服务器启动失败,我通过top发现我们服务器的CPU与内存居然满载了,估计是由于内存满载的原因导致我宕机服务无法重启

问题排除

再次发送以上的问题后,我开始对问题进行排除,我回想刚刚我明明把进程kill了,怎么还出现这个问题,难道是定时任务我使用crontab -l查看了当前liunx中的定时任务,突然发现一个奇怪30秒执行一次的脚本任务,肯定就是它了,我很庆幸居然那么快找出问题所在

在这里插入图片描述

清除定时任务

尝试修改定时任务内容

首先我使用了 crontab -e尝试修改定时任务,修改完毕后:wq!保存居然弹出不允许操作

在这里插入图片描述
尝试清除所有定时任务

改不了内容那我不改了,我直接crontab -r删除所有定时任务,居然还不行

在这里插入图片描述

文件权限查询

好吧看来文件被做了手脚无法修改了,然后我顺着不允许操作的文件cd /var/spool/cron/目录下并且查看了root这个文件的权限,好像没毛病啊root可读+可写

在这里插入图片描述
文件属性查询

经过多次问题的查找,最后发现文件属性被修改了通过lsattr root查看到当前文件属性为a 不得任意更动文件或目录;i 让文件或目录仅供附加用途,接下来的过程会涉及到2个比较默生的命令lsattr(查看文件属性)chattr(更改文件属性)

在这里插入图片描述
lsattr与chattr指令文档

接下来说明大部分会使用到这个指令,如果不清楚的小伙伴可以阅读一下这个指令的基本使用与说明

lsattr:文档点这里
chattr:文档点这里
修改文件属性

最后通过chattr -ia root指令将来root文件的属性去掉,真可恶居然把chattr权限去掉了,但是这难不倒我

在这里插入图片描述

cd /usr/bin/进入到bin目录找到chattr指令果然,权限都被去除了,我们给它加上可执行权限即可

在这里插入图片描述

最后回到定时任务页面尝试将来root文件的属性去除,去除成功并且成功的清空了定时任务

在这里插入图片描述

清除脚本文件

定时任务已处理了,还有一个脚本文件newinit.sh再etc目录下,这个简单cd .etc使用rm newinit.sh即可,居然不允许删除,估计还是老套路,继续使用lsattr查看文件属性,果然最后去除文件属性,成功rm了这个脚本文件

在这里插入图片描述

总结

最后经过百度发现newinit.sh是一种挖矿脚本,是通过6379端口接入走后门被注入进来的,说到6379大家肯定很熟悉,没错这个就是Redis的默认端口,庆幸的是还好这个木马不是很深入,如果入侵的黑客是大神直接把木马深入到内核那这得重装系统了,经过这个事件以后我奉劝大家2个事情

  1. Redis不要使用默认端口设置一个其它端口
  2. Redis一定要设置密码,并且密码不要过于简单

最后如果对Redis配置文件不熟悉可以点击阅读Redis.conf文件详解

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159200.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • ArrayList扩容详解

    ArrayList扩容详解本文探讨一下ArrayList的扩容过程ArrayList底层是数组elementData,用于存放插入的数据。初始大小是0,当有数据插入时,默认大小DEFAULT_CAPACITY=10。如果在创建ArrayList时指定了initialCapacity,则初始大小是ArrayList1.验证扩容的代码示例从示例中可以看到,当添加元素时,如果元素个数+1>当前数组长度【size+1>elementData.length】时,进行扩容,扩容后的数组大小是:oldC.

  • UML之构件图

    UML之构件图构件图的概念构件图用于静态建模,是表示构件类型的组织以及各种构件之间依赖关系的图。构件图通过对构件间依赖关系的描述来估计对系统构件的修改给系统可能带来的影响。 构件图的组成构件图由:构件,接口,实现和依赖四部分组成构件:描述了系统的一个可执行程序,一个库,一个Web程序等.构件是系统中可替换的物理部分,它包装了实现而且遵从并提供一组接口的实现构件的内容(1)规格说明

  • Java键盘输入一个int数组[通俗易懂]

    Java键盘输入一个int数组[通俗易懂]在线编程,往往第一步思路好了,结果输入不熟练输入半天,也真是醉了!一下列出来两个样例输入和输出:【样例一】packagetest1;importjava.util.Arrays;importjava.util.Scanner;//所有的输入和输出练习publicclassMain{publicstaticvoidmain(String[]args){

  • 决策树算法例题_决策树算法比较

    决策树算法例题_决策树算法比较上一节介绍了决策树的一些基本概念,诸如树的基本结构,信息熵等。这次就用一个例子,来看看ID3决策树的具体运行过程吧~~

  • preference用法for_interference用法

    preference用法for_interference用法文章目录PreferenceFragment简介PreferenceFragment使用PreferenceFragment扩展PreferenceFragment简介在我们写一个项目的时候,基本都有选项设置界面,这类设置界面的原理基本都是本地的一些个性化设置,通过读取本地设置来改变某些差异显示(例如字体大小,主题颜色,WIFI自动下载等)。这些设置一般都会使用Preference来保存,…

  • 剑指Offer面试题:9.打印1到最大的n位数

    一题目:打印1到最大的n位数二不考虑大数解法三字符串模拟算法解法解决这个问题需要表达一个大数。最常用也是最容易的方法是用字符串或者数组表达大数。该算法的步骤如下:Step1.把字符串中的

    2021年12月19日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号