文章源自【字节脉搏社区】-字节脉搏实验室
作者-Jadore
扫描下方二维码进入社区:
redis简介
Remote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
redis未授权访问产生原因
Redis 若因配置不当存在未授权访问漏洞,则攻击者可进行恶意利用。当以 root 身份运行时,可以通过root 写入 SSH 公钥文件,直接通过 SSH (默认端口22)登录,从而获取服务器权限。
redis利用场景1:webshell写入
条件:有web服务,知道路径,具有增删改查权限
首先使用redis客户端直接无账号登录redis:
这里假设路径为/home/jadore,可以执行如下命令写入webshell:
靶机上可以看到
edis利用场景2:公私钥免密认证登录SSH
条件:redis以root身份运行
首先我们可以生产一个密钥对,密码为空,命令如下:
将生成的公钥保存到test.txt,命令如下:
将保存下来的公钥文件写入靶机redis,命令如下:
登录靶机redis,获取redis备份路径:
更改备份路径:
将公钥的名称改为authorized_keys:
看看是否更改成功:
进行ssh免密登录:
结果
redis利用场景3:反弹shell
通过Linux的计划任务管理crontab来设置计划任务反弹shell
首先建立连接监听
连接redis反弹shell
tip:bash一句话命令详解:
bash -i 表示来产生一个bash交互环境
>& 表示将联合符号前面的内容与后面的内容向结合后再重定向给后者
/dev/tcp/192.168.222.132/1234 表示让主机与目标主机产生一个TCP连接
0>&1 将标准的输入与标准的输出内容相结合,然后重定向给前面标准输出的内容
redis利用场景4:远程代码执行
条件:Redis未授权访问在4.x/5.0.5以前版本下,我们可以使用master/slave模式加载远程模块,通过动态链接库的方式执行任意命令。
master/slave模式:主从设备模式,将一个原始任务分解为若干个语义等同的子任务,并由专门的工作者线程来并行执行这些任务,原始任务的结果通过整合各个子任务的处理结果来产生。
redis server支持以下两种命令:
1.明文(使用空格来分割)
如:SET keyname value\n
2、原码
如:*3\r\n$3\r\nSET\r\n$7\r\nkeyname\r\n$5\r\nvalue\r\n
其中*3表示参数个数$3表示参数的长度SET表示参数要设置的值
攻击流程:
1、子设备向主设备发起连接请求
2、子设备尝试进行部分或完全同步
3、主设备通过向子设备发送一组命令来保持子设备的更新,以便复制任何更改主设备上数据集的操作。
EXP:https://github.com/vulhub/redis-rogue-getshell/blob/master/redis-master.py
修复方案
1、在 redis.conf 文件中找到# bind 127.0.0.1,将前面的 # 去掉,然后保存。
也可以指定访问源 IP 来访问 Redis。
bind 192.168.1.100 10.0.0.1
2、通过 iptables 策略,仅允许指定的 IP 来访问 Redis 服务:
iptables -A INPUT -s x.x.x.x -p tcp --dport 6379 -j ACCEPT
3、设置访问密码
在 redis.conf 中找到 requirepass 字段,去掉其注释,并在后面填上需要的密码。Redis 客户端也需要使用此密码来访问 Redis 服务。
requirepass 密码
4、权限最小化
以较低权限账号运行 Redis 服务,并禁用该账号的登录权限:
useradd -M -s /sbin/nologin [username]
5、升级redis到最新版
通知!
公众号招募文章投稿小伙伴啦!只要你有技术有想法要分享给更多的朋友,就可以参与到我们的投稿计划当中哦~感兴趣的朋友公众号首页菜单栏点击【商务合作-我要投稿】即可。期待大家的参与~
记得扫码
关注我们
本文分享自微信公众号 - 字节脉搏实验室(zijiemaiboshiyanshi)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
来源:oschina
链接:https://my.oschina.net/u/3076320/blog/4692976