首页 -> 安全研究

安全研究

安全漏洞
Microsoft Windows NTFS文件硬连接操作审核不正确漏洞

发布日期:2002-08-16
更新日期:2002-08-20

受影响系统:
Microsoft Windows 2000SP2
Microsoft Windows 2000SP1
Microsoft Windows 2000
不受影响系统:
Microsoft Windows XP Professional
Microsoft Windows XP Home
Microsoft Windows 2000SP3
描述:
BUGTRAQ  ID: 5484
CVE(CAN) ID: CVE-2002-0725

NTFS文件系统支持硬连接,硬连接是另一个目录条目可指向磁盘上相同的物理文件,这允许用户在同一分区里相同文件可拥有多个路径名。

Windows NT和Windows 2000系统中的审核机制在记录相关硬连接的文件系统事件时不够充分 ,本地攻击者可以利用这个漏洞使审核机制错误地记录用户的访问操作活动。

NTFS系统为了支持POSIX子系统的需要一直支持硬连接,不过NT用户使用的很少。Windows NT 3.51和NT 4.0包含BackupWrite() Win32 API函数可以建立硬连接,Windows 2000使用新的CreateHardLink()Win32 API函数建立硬连接。Microsoft中的知识库中描述过一个程序"ln"使用了这些函数:

Q234727 HOWTO: Create Hard Links in Windows NT and Windows 2000
http://support.microsoft.com/support/kb/articles/Q234/7/27.ASP

(不幸的是,这份KB文章已经被删除。)

NTFS系统中如果对文件的全部审核功能打开的情况下,当使用这些函数建立硬连接时,会在安全事件日志中建立一个事件条目记录,不过安全审核机制没有充分的对所有事件进行记录,只记录了"ReadAttributes"事件。也就是说在安全事件日志中没有对文件被建立硬连接进行记录,没有对真正被访问的文件名进行详细记录。

攻击者如果通过硬连接连接一个文件,并通过硬连接文件名访问这个文件的情况下,安全事件记录机制不会对硬连接的创建进行记录,并且只记录访问的硬连接的文件名,对原始的文件名不进行记录。

<*来源:Chris Wysopal (cwysopal@atstake.com
  
  链接:http://www.atstake.com/research/advisories/2002/a081602-1.txt
*>

测试方法:

警 告

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

Chris Wysopal (cwysopal@atstake.com)提供了如下测试方法:

使用Windows 2000系统。

1、建立文件c:\audited\foo.txt。
2、对c:\audited\foo.txt开启所有事件审核。
3、使用KB Q234727中的ln.exe程序建立名为c:\temp\link.txt的硬连接连接到c:\audited\foo.txt文件:

ln c:\audited\foo.txt c:\temp\link.txt

4、安全日志中会显示如下信息:

Object Open:
   Object Server:       Security
   Object Type:            File
   Object Name:            c:\audited\foo.txt
   New Handle ID:       48
   Operation ID:        {0,14421507}
   Process ID:            1148
   Primary User Name:    user
   Primary Domain:    DOMAIN
   Primary Logon ID:    (0x0,0xA8F7)
   Client User Name:    -
   Client Domain:    -
   Client Logon ID:    -
   Accesses             SYNCHRONIZE
                        ReadAttributes
   Privileges        -

上面事件记录了用户对c:\audited\foo.txt进行了读访问,不过没有任何记录c:\temp\link.txt已经连接到foo.txt文件。

5、读取c:\temp\link.txt

安全日志会显示如下成功审核的信息:

Object Open:
   Object Server:       Security
   Object Type:         File
   Object Name:         c:\temp\link.txt
   New Handle ID:       96
   Operation ID:        {0,14425896}
   Process ID:          1364
   Primary User Name:   user
   Primary Domain:      DOMAIN
   Primary Logon ID:    (0x0,0xA8F7)
   Client User Name:    -
   Client Domain:       -
   Client Logon ID:     -
   Accesses             READ_CONTROL
                        SYNCHRONIZE
                        ReadData (or ListDirectory)
                        ReadEA
                        ReadAttributes
   Privileges           -

上面信息看起来象用户在读取c:\temp\link.txt文件,而实际上是在读取foo.txt文件数据。

建议:
临时解决方法:

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

* 增加新的'Hard link creation attempt'审核事件。这样会建立如下的详细审核信息:

Event Type:    Success Audit
Event Source:    Security
Event Category:    Object Access
Event ID:    568
Date:        8/5/2002
Time:        6:29:32 PM
User:        DOMAIN\user
Computer:    COMPUTER
Description:
Hard link creation attempt:
Primary User Name:    user
Primary Domain:    DOMIAN
Primary Logon ID:    (0x0,0xFF10)
File Name:    C:\audited\foo.txt
Link Name:    C:\temp\link.txt

* 建立管理员使用HLSCAN.EXE搜索和审核系统中已经存在的硬连接,可以从如下地址中获得:

http://www.microsoft.com/windows2000/techinfo/reskit/tools/new/hlscan-o.asp

厂商补丁:

Microsoft
---------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

Microsoft Upgrade Windows 2000 SP3
http://www.microsoft.com/windows2000/downloads/servicepacks/sp3/sp3lang.asp

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