美文网首页Java架构技术进阶
Redis 不设置密码,你知道会有多严重吗?

Redis 不设置密码,你知道会有多严重吗?

作者: 代码小当家 | 来源:发表于2020-02-24 21:33 被阅读0次

    推荐阅读:

    闭关修炼21天,“啃完”283页pdf,我终于4面拿下字节跳动offer​zhuanlan.zhihu.com

    图标 47天时间,洒热血复习,我成功“挤进”了字节跳动(附Java面试题+学习笔记+算法刷题)​zhuanlan.zhihu.com 图标

    小编前言:近日因为redis服务器运行在docker下被挖矿程序入侵了,虽然问题解决了,但是看到有个博主有相关得文章写的不错,特分享一下。小编机器被黑截图

    image

    (xmrig-notls=> 门罗币挖矿病毒)

    公司目前架构为exsi虚拟化平台,在一台物理机上面虚拟多个虚拟机,然后安装不同的业务,其中开发有需要安装redis的需求,因此给开发安装了一个基于docker的redis数据库。由于当时开发那边没有密码的要求,所以当时就没有配置密码。因此隐患就来了。

    一段时间后,发现公司连接机房的网络经常中断,3389远程连接中断,ssh连接断线重连,于是就开始排查问题,终于发现redis数据库中存在异常情况

    image image image image image

    从上面的图,可以看出redis的数据明显是被串改了,然后填入了黑客的数据,并让redis定时执行一个黑客脚本。

    如下的黑客脚本我已经下载一下了,有兴趣研究的同学,可以下载下来研究一下。地址如下:

    https://shell-1251121573.cos.ap-guangzhou.myqcloud.com/tmp.tKOLZdySXb
    
    br
    

    处理异常

    由于redis我是基于docker搭建,于是就删除了原来的redis容器,创建一个新的容器,并配置了密码。这个操作对实体服务器并没有影响,我就没有在意多的事情,这个事情告一段落了。

    发现新的问题

    由于实体服务器有好多虚拟机,一段时间后,有部分虚拟机的cpu还有网络经常提示有异常。cpu占用100%,网络流量很大,定时任务经常被清空等等问题出现,我猜测可能是当时redis没有配置密码。导致其他弱口令的机器被批量扫描入侵了。然后种植了挖矿木马

    于是一个个排查弱口令的机器。终于在有的机器上面发现了异常情况,这台机器有大量的异常进程,cpu占用很高,网络流量也很大

    通过

    top -c
    
    br
    

    查看服务器cpu使用情况

    image

    发现进程pid为13427的明显有问题。后面带有一串不熟悉的网址。初步判断是挖矿木马

    ps -ef 查看所有进程`
    
    br
    
    image

    发现了一堆的异常进程,这样cpu不耗尽才怪呢。

    ifconfig 查看一下网络流量。简直是巨大,我说为什么我的ssh经常掉线呢,宽带都被挤没了
    br
    
    image

    确定了 pid为13427进程有问题,于是就开始排查了

    ll /proc/13427
    
    br
    

    查看这个进程里面的的一些关联信息(由于13427进程id被我干掉了,有生成了新的13699进程,)

    image
    exe -> /var/tmp / user/sh
    
    br
    

    一般exe对应的就是执行的程序的路径,就像下面那个。对应 /usr/sbin/smbd

    image

    但是上面那个奇葩的路径什么鬼?一脸迷茫。

    cd  /var/tmp/ user/sh
    
    br
    

    根本进不去

    cd  /var/tmp/
    
    br
    

    进入这个目录也没有找到user/sh 这个文件路径啊,我顿时就迷茫了,难道病毒压根就没有这文件。但是不可能啊,明明就指向这个路径,怎么可能没有呢,难道隐藏了?执行了ls -a命令。也是没有发现任何隐藏的文件

    在同事的提醒下,于是我进入到 /var/tmp/ 执行了ls- l命令。

    image

    一般的ll,只会显示 ./和…/路径,可是多出来一个/是什么东西。如果不仔细,还真是发现不了。于是就猜测,黑客可能是把文件夹名称通过转义隐藏了,导致我们在/var/tmp目录下执行 cd / 只会回到根目录,而压根进不去黑客隐藏的目录。

    就在尝试了好多次都没有办法的时候,我突然想到,能不能通过给这个文件夹重命名呢,于是执行了如下命令

    mv \ 111
    
    br
    

    就是把名字为\的文件夹重命名为111,结果奇迹出现了

    image

    重命名成功了。原来黑客利用了转移字符 \ 这个字符明明的文件夹,在linux下是不会显示任何东西的,只会显示一个空格。而你不会轻易发现。这个操作真是玩的很溜。

    现在知道问题了,而且已经重命名了,接下来执行查看进程看一下

    ll /proc/13427
    
    br
    

    下面就显示正常了

    exe ->/var/tmp/111/god/haiduc
    
    br
    

    这个路径就行黑客的木马路径了。然后果断删除这个111整个文件夹。然后整个系统的cpu和网络全部降下来了。

    image

    黑客还利用了定时任务,让木马每分钟的都启动

    image

    定时任务里面,也是隐藏了路径,开始看到这个路径,我也是一脸懵逼。

    /var/tmp /user/miner
    
    br
    

    这样的奇怪的写法从来没有见过,在根目录下也找不到/user/miner这个路径。

    后来其实只要看成下面的写法就可以理解。

    /var/tmp/\/user/miner
    
    br
    

    好了,病毒文件夹删除了,定时任务也清空了,接下来就开始排查其他服务器有没有什么问题了。

    感谢开发的同事tim给我提供灵感,和我一起解决这个问题。其实清理这个木马的难点就是黑客使用了迷雾。使用转移字符转换了文件夹路径,导致好多人发现不了,这点实在是高明。

    作者:diyiday
    原文:https://blog.csdn.net/diyiday/article/details/83755205

    相关文章

      网友评论

        本文标题:Redis 不设置密码,你知道会有多严重吗?

        本文链接:https://www.haomeiwen.com/subject/ydwwqhtx.html