推荐阅读:
闭关修炼21天,“啃完”283页pdf,我终于4面拿下字节跳动offerzhuanlan.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进程,)
imageexe -> /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
网友评论