【转】redis 在渗透中 getshell 方法总结

0x00 前言

今天同学突然提到了redis,想到最近搞站确实有一段时间没有遇到redis getshell的场景了(主要是最近懒,搞得少),有些利用方式都忘的差不多,这里再对常见的redis getshell方式总结并复现一遍,避免遗忘。如果有同学恰好看到了这篇文章,并能解决自己的问题,那还是极好的。

众所周知,redis常见的getshell方式有如下几种:

1、通过向Web目录中写webshell的方式进行getshell

2、通过写SSH key的方式进行getshell

3、通过写corntab的方式进行getshell

当然,方法也不局限于此,而且以上方法也包括对一些当前用户权限、目录权限、Web目录是否已知等要求。同时除了getshell,该漏洞还会导致一些其他危害,so,如何利用还是要结合具体的场景进行分析。

0x01 基础环境

Ubuntu 16.04.4 LTS

Redis server v=4.0.9

0x02 redis服务搭建

环境搭建主要分为两块介绍,一个是redis服务的搭建,另一个是redis客户端相关的环境搭建及常用命令介绍。

redis服务的安装

第1步:redis服务的下载

image第2步:redis解压、编译

image此时,redis服务的默认安装路径为/usr/local/bin

image第3步:启动redis服务

由于在新版本的redis服务中,默认监听地址已经由原来的0.0.0.0更新为127.0.0.1,为了还原漏洞现场,我们修改配置文件,将监听的IP地址改为0.0.0.0。

image

imageBingo,接下来就可以进行相应的漏洞测试了。

0x03 redis在渗透中的getshell方法

redis在渗透中常见的getshell方法已再前言部分总结,这里对相应的技术细节逐一进行介绍。

1、通过写corntab的方式进行getshell

第1步:通过redis-cli进入交互式shell

image第2步:设置文件夹路径

第3步:修改备份文件名

第4步:设置计划任务

第5步:保存

image第6部:监听公网机器指定端口,接收反弹回来的shell

imageBingo!

2、通过写SSH key的方式进行getshell

第1步:本地生成公钥文件

image第2步:将生成的公钥写入到文件中

第3步:设置路径、文件、写入公钥

第4步:连接之

Bingo!

3、通过向Web目录中写webshell的方式进行getshell

限制条件:Web目录已知,当前用户在该目录下具有写权限。

菜刀连接之。

0x04 后记

实际操作起来,出现了很多非预期问题,比如说乱码啊、crontab格式问题导致执行不成功啊,shell弹不回来啊等等。折腾了一整天,解决了大部分吧,感谢各位师傅们的指导。

还有些杂七杂八的事没弄明白,明天继续看。

0x05 参考链接

Redis Hacking Tips

通过redis getshell的一些小问题

windows下控制台连接redis – CSDN博客

Linux上安装Redis(Ubuntu16.04+Redis3.2.8)最烦网上流传的那些根本走不通的教程 – CSDN博客

Redis未授权访问之反弹shell

利用redis写webshell | 离别歌

Redis Persistence – Redis

Command reference – Redis

redis渗透中的getshell问题总结 – CSDN博客

相关推荐: 学习笔记之安装docker(一)

Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。 Docker…

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论