CVE-2020-3110、CVE-2020-3111、CVE-2020 -3118、CVE-2020-3119、CVE-2020-3120 cdpwn 解析

攻击条件

在同一广播域,黑客即可通过cdp协议非法入侵开启CDP协议的思科设备,或者触发dos漏洞

影响范围

Routers:

  • ASR 9000 Series Aggregation Services Routers
  • Carrier Routing System (CRS)
  • Firepower 1000 Series
  • Firepower 2100 Series
  • Firepower 4100 Series
  • Firepower 9300 Security Appliances
  • IOS XRv 9000 Router
  • White box routers running Cisco IOS XR

Switches:

  • Nexus 1000 Virtual Edge
  • Nexus 1000V Switch
  • Nexus 3000 Series Switches
  • Nexus 5500 Series Switches
  • Nexus 5600 Series Switches
  • Nexus 6000 Series Switches
  • Nexus 7000 Series Switches
  • Nexus 9000 Series Fabric Switches
  • MDS 9000 Series Multilayer Switches
  • Network Convergence System (NCS) 1000 Series
  • Network Convergence System (NCS) 5000 Series
  • Network Convergence System (NCS) 540 Routers
  • Network Convergence System (NCS) 5500 Series
  • Network Convergence System (NCS) 560 Routers
  • Network Convergence System (NCS) 6000 Series
  • UCS 6200 Series Fabric Interconnects
  • UCS 6300 Series Fabric Interconnects
  • UCS 6400 Series Fabric Interconnects

IP Phones:

  • IP Conference Phone 7832
  • IP Conference Phone 8832
  • IP Phone 6800 Series
  • IP Phone 7800 Series
  • IP Phone 8800 Series
  • IP Phone 8851 Series
  • Unified IP Conference Phone 8831
  • Wireless IP Phone 8821
  • Wireless IP Phone 8821-EX

IP Cameras:

  • Video Surveillance 8000 Series IP Cameras

临时修复

  1. 关闭CDP思科发现协议

漏洞解析

cve-2020-3120

漏洞点在cdp 协议报文Address中的Number of address。根据下图可以看出,通过该值去申请内存空间,并且该值没有经过任何校验。

我们可以将Number of address修改为下图的值去触发dos漏洞

目前Cisco的修复方式为校验该值正确性,确保申请的内存不会出发dos。如下

cve-2020-3120

该漏洞与上一个漏洞类似,主要影响的设备为IOS-XR

在该处,虽然对number of address的大小进行验证,但是可以绕过。我们可以将该值设置为4*maxint/5 触发漏洞

CVE-2020-3119 NX-OS Stack Overflow in the Power Request TLV

该漏洞出现在cdp协议交换poe帧的时候,没有对部分值检查,造成栈溢出,可以直接获取设备的root权限的shell。如下图

可以通过发送这种poe的帧去触发dos漏洞。不过注意,该漏洞是可以造成rce的

可以通过下图方法绕过aslr

cve-2020-3118 IOS XR Format String vulnerability in multiple TLVs

漏洞出现在下图

可以看出,该处存在类似与prinntf的格式化字符串漏洞

CVE-2020-3111 IP Phones Stack Overflow in PortID TLV

漏洞出现在下面的地方

cdp协议的portid处。memcpy在复制内存时没有对该值校验,导致栈溢出

CVE-2020-3110 IP Cameras Heap Overflow in DeviceID TLV

漏洞出现在下图

上面的代码只是为从传入数据包中解析出的端口ID分配了一个缓冲区,并将其值从传入TLV复制到分配的缓冲区中。 但是,这里有一个简单的错误,意味着可能发生琐碎的堆溢出。 分配dst_buf的大小计算为len +1,以允许在端口ID字符串的末尾添加空终止符。 不幸的是,此变量(alloc_len)定义为uint8,而计算为TLV有效载荷长度(value_len)的大小定义为uint16。TLV中的length字段为16位,并且完全由攻击者控制。 通过发送包含大小大于0xff的PortID TLV(0x01)的CDP数据包,攻击者可以使堆分配的缓冲区溢出,并带有攻击者控制的数据

CVE-2020-3110、CVE-2020-3111、CVE-2020 -3118、CVE-2020-3119、CVE-2020-3120 cdpwn 解析的更多相关文章

  1. 2020还有9天!Winforms开发有哪些期待?DevExpress 2020计划出炉

    下载DevExpress v19.2完整版 DevExpress Winforms Controls 内置140多个UI控件和库,完美构建流畅.美观且易于使用的应用程序.DevExpress Winf ...

  2. 2020年春招面试必备Spring系列面试题129道(附答案解析)

    前言 关于Spring的知识总结了个思维导图分享给大家   1.不同版本的 Spring Framework 有哪些主要功能?   2.什么是 Spring Framework? Spring 是一个 ...

  3. Intent.java分析

    代码位于frameworks/base/core/java/anroid/Content/Intent.java Intent是对要进行操作的一种抽象描述.用action抽象操作,用data(andr ...

  4. 使用java爬虫从雪球网下载股票数据

    雪球网也是采用Ajax方式展示数据,我依然采用开发者工具查看其访问地址和返回数据. 访问使用到的库是jsoup,解析返回的json用的类库是jackson,二者的依赖是: <!-- jsoup ...

  5. 漏洞都是怎么编号的CVE/CAN/BUGTRAQ/CNCVE/CNVD/CNNVD

    在一些文章和报道中常常提到安全漏洞CVE-1999-1046这样的CVE开头的漏洞编号,这篇文章将常见的漏洞ID的表示方法做下介绍: 1.以CVE开头,如CVE-1999-1046这样的 CVE 的英 ...

  6. 南开大学2020年数学分析高等代数考研试题回忆版TeX排版

    南开大学2020年数学分析高等代数考研试题回忆版TeX排版 220328[南开大学2020年高等代数考研试题回忆版] 220329[南开大学2020年数学分析考研试题回忆版]

  7. check cve

    今天想检查一下 Gitlab 11.9.0 产品受哪些 cve 的影响.其实网上已经有很多网站可以查询产品的相关 cve,但就是粒度比较粗.我想在 cve 列表中筛选出特定的版本,已经特定的版本,比如 ...

  8. 谷歌 AI 负责人谈2020 年机器学习趋势:多任务和多模态会有大突破

    ​在上周加拿大温哥华举行的NeurIPS会议上,机器学习成为了中心议题. 来自世界范围内约1.3万名研究人员集中探讨了神经科学.如何解释神经网络输出以及人工智能如何帮助解决现实世界中的重大问题等焦点话 ...

  9. IntelliJ IDEA 2020.2正式发布,诸多亮点总有几款能助你提效

    向工具人致敬.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众号[BAT的乌托邦]逐 ...

  10. Django学习路15_创建一个订单信息,并查询2020年\9月的信息都有哪些

    在 app5.models.py 中添加一个 Order 表 class Order(models.Model): o_num = models.CharField(max_length= 16 ,u ...

随机推荐

  1. 「2018-11-05模拟赛」T5 传送机 解题报告

    5.传送机(sent.*) 问题描述: 黄黄同学要到清华大学上学去了.黄黄同学很喜欢清华大学的校园,每次去上课时总喜欢把校园里面的每条路都走一遍,当然,黄黄同学想每条路也只走一遍. 我们一般人很可能对 ...

  2. Python for Data Analysis 学习心得(一) - numpy介绍

    一.简介 Python for Data Analysis这本书的特点是将numpy和pandas这两个工具介绍的很详细,这两个工具是使用Python做数据分析非常重要的一环,numpy主要是做矩阵的 ...

  3. Windows安装EMQ服务器(mqtt)

    先去EMQ官网下载安装包 https://www.emqx.io/downloads#broker 注意:此处一定不能下错成企业版的,不然EMQ会由于缺少企业license无法启动服务 解压到任意路径 ...

  4. mongodb学习(一)——简介和基本操作

    简介 MongoDB 是一个基于分布式文件存储的数据库 属于NoSQL数据库,是介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的 旨在为WEB应用提供可扩展的高性 ...

  5. .Net Framework为什么需要联网?

    .Net Framework在安装时需要从微软官方网站下载语言包,所以需要联网. 如果想要真正离线安装,需要先把所需的语言包下载下来.

  6. 基于js的APP多语言处理

    本文出自APICloud官方论坛, 感谢论坛版主哼哼哈兮 的分享.   本期分享一个js的多语言处理插件i18n.js,此插件是基于JQuery.i18n.properties修改而来的. 实现的原理 ...

  7. 2D地图擦除算法

    . 关于2D地图擦除算法,去年我写过一个实现,勉强实现了地形擦除,但跟最终效果还相差甚远,这次我写了一个完整的实现,在此记录,留个印象. . 去年的版本<<算法 & 数据结构--裁 ...

  8. STL 结构体内重载 一个比较运算符

    struct node { ll a, b; bool operator< (const node &c)const{ return a < c.a; } }pre[eps];

  9. C# html生成图片保存下载

    最近有个需求,需要把内容生成图片,我找到一些资料可以将html页面生成图片并保存下载 下面是简单的实现 1.html页面 @{ Layout = null; } <!DOCTYPE html&g ...

  10. LeetCode 第27题--移除元素

    1. 题目 2.题目分析与思路 3.代码 1. 题目 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2. 你不需要考虑数组 ...