近日公司安全专家对业务云主机进行例行安全检查发现某redis服务器异常,现象如下:

1、系统的history和/var/log日志目录均被清空;

2、流量异常

3、恶意新建了一个id=0,名称为beef-xbdb的高权限用户,其home目录是/root,跟root用户的属性做了绑定;

4、/boot启动目录有名称为gakzigdpzp的***文件;

5、/boot目录下面的***文件与192.225.230.143,一个香港的IP存在SYN_SENT连接状态的网络交互行为;

6、多个目录存在***/后门文件:

......


后来经过排查,发现是redis配置不当所致:

1、以root启动redis服务

2、redis机器有公网地址

3、redis允许所有地址访问(注释了默认的bind 127.0.0.1)

4、redis不需要密码就可以访问(注释了默认的requirepass foobared)


于是杯具来了:

一旦6379端口被扫描到,然后config set dir /root/.ssh、config set dbfilename "authorized_keys"、save三个命令就可以将自己生成的公钥植入目标机器,这意味着什么已经很清楚了吧,此后***将获得此机器完全权限。


网上找了下,原来这是redis的一个典型的安全问题,而且里面有详细分析报告:

https://nosec.org/bobao/redis_crackit?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io


即使不是用root启动的redis,也可以通过在apache的/var/www/html下植入一个php文件,然后在里面写入东西,最后在页面上访问获得web shell,同样风险极大。