0x00

靶场最后那个flag3在root目录下,是没有权限读的。
拿到flag2以后,下面有个那行redis是提示 ,
他给了redis远程登陆的密码 ,
可以用哪个东西提权以后再拿flag3
redis未授权访问的漏洞

0x01

redis是什么?
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。

0x02

未授权访问redis漏洞:

1. 漏洞概述(知道创宇)

Redis默认情况下,会绑定在 0.0.0.0:6379,这样将会将 Redis 服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问Redis以及读取Redis的数据。攻击者在未授权访问Redis的情况下可以利用Redis的相关方法,可以成功在Redis 服务器上写入公钥,进而可以使用对应私钥直接登录目标服务器。
默认redis启动的用户如果没有修改,会以root方式启动,这样就redis就可以在任意位置写入公钥文件,继而可以完成远程控制。

2. 漏洞利用原理

a. redis监听在外网的6379端口,且无密码访问(当我们知道密码时,相当于没密码!!!就也可以访问了)
b. 连接redis,可以指定redis的配置文件路径
c. 连接redis,将公钥以key值的方式写入redis,并且保存为authoried_keys
d. 远程ssh无密码连接

0x03

先要安装redis;
linux安装:http://blog.csdn.net/ldl22847/article/details/45171923
windos安装:http://www.mamicode.com/info-detail-1497325.html

下载

1.png

解压

2.png

make(编译)

3.png

redis-cli 登陆redis客户端
要启动Redis客户端,请打开终端并键入命令redis-cli。 这将连接到您的本地Redis服务器,现在可以运行任何的Redis命令了。

要在Redis远程服务器上运行命令,需要通过客户端redis-cli连接到服务器
语法
[yiibai@ubuntu:~]$ redis-cli -h host -p port -a password

Shell
示例
以下示例显示如何连接到Redis远程服务器,在主机(host)127.0.0.1,端口(port)6379上运行,并使用密码为 mypass。
[yiibai@ubuntu:~]$ redis-cli -h 127.0.0.1 -p 6379 -a "mypass"
4.png

一开始很多错误,不断尝试,总算是进去了(感觉自己是个智障)
5.png

本地生成ssh,RSA密钥
6.png

将我们的密码放到目标主机中:连接redis,将公钥以key值的方式写入redis,并且保存为authoried_keys,然后指定redis的配置文件的路径。
7.png
8.png

配置好路径,写入了authoried_key,之后就可以在我们的主机远程登陆目标机了!!!
而且是root权限,然后查看root下的一个文件flag3,小意思啦23333
9.png

0x04

总结:

  1. 我所理解的未授权访问redis漏洞,就是指纹解锁:首先,你可以登陆redis,但是redis里没有你的指纹,所以可以通过构造你的指纹(就是在自己的机器上弄一个指纹rsa)并且存入redis。就好像把你的指纹留在了别人的手机里。然后,你就可以远程登陆服务器了。就像在别人不允许的情况下,解锁别人的手机一样。
  2. 在实际做的时候,遇到了很多问题,不断尝试、请教大神和查找资料总算解决了。

0xff

原文链接:
https://bbs.ichunqiu.com/thread-7069-1-1.html