聚焦源代码安全,网罗国内外最新资讯!

编译:奇安信代码卫士团队

微软十月补丁星期二共修复了87个漏洞,其中11个是“严重”级别。CVE-2020-16898  CVE-2020-16899 是由 Windows TCP/IP 驱动中的一个 bug 引发的,让人回想起2013年修复的Ping of Death漏洞。仅通过一个特别构造的数据包即可利用这些漏洞发动拒绝服务攻击以及远程代码执行。

研究员在 PoC 演示视频中展现了蓝屏死机后果,而且用户未保存的内容很可能永远会丢失。

CVE-2020-16898 存在于 tcpip.sys 中,是驱动解析 ICMP 信息方式中存在的一个逻辑错误,可通过包含 RDNSS选项的特殊构造的 IPv6 路由器广告数据包远程触发。递归 DNS 服务器 (RDNSS) 选项通常包含一个或多个递归 DNS服务器的 IPv6 地址列表。

Tcpip.sys 是一个内核驱动,也就是说如果触发该漏洞,则可利用内核本身的漏洞,而内核是运行 Windows系统的核心所在。这也是为何该漏洞会导致系统出现蓝屏死机,而不是仅给出错误消息关闭某款应用而其它应用继续运行的原因所在。毕竟,关闭内核意味着其它任何应用都不会持续运行。因此内核崩溃会导致机器完全崩溃,一般后续会出现自动重启的情况。

Tcpip.sys 中存在一个逻辑缺陷,通过构造包含比预期多的数据的路由器广告数据包,就可被利用,导致驱动在内存栈中放入多于为驱动代码准备的字节数据,从而造成缓冲溢出后果。从理论上来讲,它可被用于拒绝服务攻击和远程代码执行攻击。但在实践中,实现远程代码执行极其困难。

微软指出该漏洞可能造成远程代码执行。现代的防御性编码标准和实践将放缓构建可靠的 RCEexploit 的进度,原因有二:

首先,Tcplp.sys 是通过 GSflag 编译的,阻止栈溢出直接控制返回地址。

栈 cookie 也被称为 stack canary,是在加载时生成的一个随机值。它的值通过堆栈指针被 XOR,使其非常难以可靠地预测,尤其是在完整的远程利用过程中更是如此。

绕过stack canary的技术有两种,但均不适用于这种情况:

  • 使用另外一个信息泄漏漏洞(任意读取)——它对利用 tcpdrv.sys没有什么帮助,因为 canary 的值通过堆栈指针进行了 XOR。

  • 覆写结构性异常处理 (SHE) 句柄,但只有在设置了结构性异常记录的情况下才起作用,但本案例显然并非如此。

构建有效的 RCE exploit 的第二个阻碍是内核地址空间布局随机化 (kASLR)。即使能够可靠地预测用户模式下着陆系统 shell 中的stack canary(这个可能性很小),但也要求正确地(远程)确定 Windows 内核的基地址。

也就是说,即使 tcpdrv.sys 中 bug 的确切性质广为人知,但构造能够将代码可靠地注入Windows内核空间的exploit 也要花费一些时间。即便如此,随意发动拒绝服务攻击的威胁,加上轻易可构造的数据包本身足以使我们快速修复漏洞,而打补丁是该漏洞唯一真正的修复方案。

推荐阅读

CVE-2019-11477:Linux 内核中TCP协议栈整数溢出漏洞详细分析

原文链接

https://news.sophos.com/en-us/2020/10/13/top-reason-to-apply-october-2020s-microsoft-patches-ping-of-death-redux/

https://nakedsecurity.sophos.com/2020/10/14/windows-ping-of-death-bug-revealed-patch-now/#comments

题图:Pixabay License

本文由奇安信代码卫士编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的

产品线。

 觉得不错,就点个 “在看” 吧~

Ping of Death:速修复 TCP/IP RCE 漏洞 CVE-2020-16898相关推荐

  1. 速修复!21个漏洞影响60%的互联网邮箱服务器

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 Exim 邮件服务器软件的维护人员发布更新,共修复21个漏洞,它们本可导致威胁人员通过本地和远程攻击向量接管服务器.这些漏洞被统称为 &q ...

  2. CISA提醒修复Zoho ManageEngine RCE漏洞

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 摘要 本周四,美国网络安全和基础设施安全局 (CISA) 提醒称,网络攻击活动正在利用最近修复的一个Zoho ManageEngine 漏洞 ( ...

  3. PING用一生诠释了TCP/IP(4)------二三层转发为PING劈荆斩棘

    作为一个网络使用者,你也许从来没有思考过源及目的主机之间究竟发生了什么,因为网络对用户来说是一个黑匣子,所有的细节都被屏蔽掉了,你只能知道通还是不通,能不能上网?但是作为一个网络设计者,研究者,你就必 ...

  4. CISA 发布关于 Treck TCP/IP 栈中新漏洞的 ICS 安全公告

     聚焦源代码安全,网罗国内外最新资讯! Treck TCP/IP 栈的安全更新,解决了两个可导致远程代码执行或拒绝服务的严重漏洞.美国网络安全和基础设施安全局 (CISA) 发布安全公告,警告组织机构 ...

  5. 4个开源 TCP/IP 栈被曝33个漏洞,数百万智能和工业设备受影响

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 Forescout 公司的安全研究员披露了150多个厂商产品固件中当前所使用的四个开源 TCP/IP 库中的33个安全缺陷,被统称为 ...

  6. 【转】:TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute

    TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute 分类:            TCP/IP详解学习笔记计算机网络2006-04-20 18:147970人阅读评论(1)收 ...

  7. 如何重新安装TCP/IP协议

    来源于网络, 以作备查! ######################################################### 问:WINXP操作系统下如何重新安装TCP/IP协议 答: ...

  8. TCP/IP协议基础(转)

    转自 http://www.chinaunix.net 作者:Bernardus160  发表于:2003-12-03 17:33:15 TCP/IP协议基础 -------------------- ...

  9. ip设置 kali 重置_在 Windows 系统中如何重置 TCP/IP 协议堆栈修复网络连接问题

    Internet 在 TCP/IP 协议上工作,如果 TCP/IP 协议堆栈在 Windows 或任何其他操作系统(例如 Linux 或 MacOS)中无法正常工作,则您的 Internet 连接会出 ...

最新文章

  1. Python爬取近十万条程序员招聘数据,告诉你哪类人才和技能最受热捧! | 原力计划...
  2. Pentaho 7.0更新:数据准备和分析两不误
  3. 免除重装系统的烦恼,为SSD做系统移植,并从光驱位SSD启动系统
  4. Docker 镜像优化:从 1.16GB 到 22.4MB
  5. 特征工程与sklearn
  6. 49、Power Query-合并查询温故知新
  7. linux java top_linux top命令 监测系统性能
  8. LeetCode 398. 随机数索引(概率)
  9. JavaWeb开发必会技巧1——导入jar包
  10. 2018.9.28 典型for循环特殊理解及其二维数组的理解
  11. Android登陆界面实现-支持输入框清楚和震动效果功能
  12. 访问服务器根目录文件,可道云 访问服务器根目录
  13. 为什么我的QQ会被冻结?
  14. 51单片机 Keil C 延时程序的简单(晶振12MHz,一个机器周期1us.)
  15. ubuntu 各版本
  16. 两种曲线下面积AUC(Area Under the ROC Curve):ROC-AUC、PR-AUC(性能度量)
  17. C++:identifier “string“ is undefined
  18. 仿微信朋友圈图片和视频播放
  19. (附源码)计算机毕业设计SSM基于的校园卡管理系统
  20. 战地5离线bot模式_战地2单机怎么增加BOT?

热门文章

  1. 基于视图的DNS解析
  2. 解决苹果手机返回不刷新问题
  3. 第 22 章 Beta
  4. 【Swift】iOS UICollectionView 计算 Cell 大小的陷阱
  5. 3403: [Usaco2009 Open]Cow Line 直线上的牛
  6. 动手制作Dos、WinPE、Slax Linux|winpe+dos+Mini Linux U盘启动盘
  7. VS2010中的顺序图
  8. 深度解析:微软云计算平台的通信技术与应用开发
  9. hibernate 一对多_为什么很多人不愿意用hibernate了?
  10. linux下eclipse进行ndk调试,超简单,写的超清晰