hexo

前言

Redis未授权访问漏洞很早之前就有了,在实战中如果遇到还是比较幸运的。比如挖到ssrf漏洞,如果内网有个未授权或者弱口令的redis,那么就可以深入的挖掘一下。 Redis如果部署在Linux服务器上还好一些,配合nc可以很方便的就拿到了shell。但是如果部署在Windows环境下就比较鸡肋了,虽是这样说,但是也有一些getshell的办法。

环境搭建

系统环境:Windows Server 2012 Redis-x64-3.2.100

靶机设置

配置Redis

安装完Redis后它的服务就自动启动了,所以需要执行以下几步: 1.先停止Redis服务 redis-server --service-stop 2.更改配置文件 进入Redis的安装目录,然后修改windows.conf文件 第56行注释掉# bind 127.0.0.1,第75行把protected-mode yes改成protected-mode no 这样就可以模拟未授权访问的Redis靶机。 3.卸载Redis服务 redis-server --service-uninstall 4.安装Redis服务 redis-server --service-install redis.windows.conf 5.启动redis redis-server --service-start

端口设置

Redis默认端口是6379,所以你需要在windows的防火墙里开放6379端口,或者搭建靶机的时候直接就关闭防火墙。

测试Redis未授权访问

我是在Centos7上安装过Redis所以直接拿来用了。
notion image

配置Windows server 2012

测试过程中发现,默认是无法在启动项文件夹写文件的,需要把C:\\Users\\Administrator文件夹的组添加上Everyone并把权限改成完全控制 改完以后再测试就可以了

几种Getshell方法

方法其实挺多的,但是比较鸡肋,都需要目标主机重启才可以实现...

利用powershell反弹shell

1.用msfvenom生成shell.ps1文件
2.把shell.ps1文件复制到
目录下,然后启动apache2
notion image
3.用msf进行监听 设置payload的时候注意分清系统是32版本的还是64的。
notion image
4.利用Redis写入bat文件到启动项 注意
代表换行的意思,因为用redis写的文件会自带一些版本信息,如果不换行可能会导致无法执行。反斜杠
可以转义你payload中的双引号
5.重启后得到shell
notion image

利用mshta.exe

/usr/share/metasploit-framework/modules/exploits/windows目录下创建一个msh_shell.rb文件,复制以下内容
然后在msf里重新加载所有模块:reload_all 找到之后就可以使用了
然后利用Redis写入bat文件到启动项
notion image
手动重启靶机就可以拿到session了
notion image

使用Cobalt Strike

下载地址就不提供了,我是把Cobalt Strike的服务端脚本放到了kali上运行,然后客户端是在我本机(win10)运行的。
然后用客户端连接,用户名是msf,密码是233,端口具体看服务端返回的
notion image
创建一个listener,payload默认,端口自己设置
notion image
生成攻击脚本,注意端口别冲突
notion image
notion image
最后生成一串payload,用redis写一个bat脚本到启动项,然后等待目标重启即可
notion image
手动重启靶机后Cobalt Strike客户端里就看到有主机上线了~
notion image

利用web服务

如果有Web业务的话,可以结合web业务进行Getshell。也是比较鸡肋,起码网站的根目录你得知道。
notion image

一些思考

在真实环境中确实遇到了几个可以访问启动目录的系统,在测试的过程中,如果安装了安全软件也是可以拿到shell的。还有就是不知道如果开了3389端口的情况下,如果直接执行net user test$ xxxxxx /add & net localgroup administrators test$ /add这种命令会怎样?本地靶机测试是可以的。如果遇到server 2003的系统,可以用写MOF的方法拿shell。真实的业务环境还是很复杂,但是方法总比困难多。

参考链接

https://uknowsec.cn/posts/notes/Redis在Windows环境下Getshell.html
https://blog.csdn.net/weixin_33928467/article/details/86254639
 
从任意文件下载到Getshell首发,Webug4.0的Docker版本来了!