|
|
|
联系客服020-83701501

BadTunnel:跨网段劫持广播协议

联系在线客服,可以获得免费在线咨询服务。 QQ咨询 我要预约
BadTunnel:跨网段劫持播送协议

简介

本文提出了一种新的攻打模型,或是跨网段劫持TCP/IP播送协议,咱们把它定名为“BadTunnel”。

独霸这种方法,或是实现跨网段的NetBIOS Name Service Spoofing攻打。不论攻打者和用户能否在匹敌网段,以至两头具有防火墙或NAT,只需用户打开IE或Edge阅读器访问一个恶意页面,或打开一个特殊布局的Office文档,攻打者便或是劫持用户系统对轻易NetBIOS称说的解析,从而实现仿冒本地网络的打印办事器、文件办事器等。

经过劫持“WPAD”称说,还或是进一步实现劫持用户的全数网络通信,包罗一般网络访问,和Windows Update service以及Microsoft Crypto API更新Certificate revocation list的通信等。而一旦能劫持网络通信,共同类似Evilgrade的工具(参考链接[1]),也很繁冗在系统上运转轻易轨范。

这种方法对没有安置2016年6月补钉的全数版本Windows都有效。或是经过全数版本的IE和Edge、全数版本的MS Office、以及多量第3方软件触发。终于上只需具有能嵌入file URI scheme或UNC path的地方,便或是触发BadTunnel 攻打。假设在一个快捷动作中将图标蹊径设置为恶意file URI scheme或UNC path,只需用户在利润管理器看见这个快捷动作,就会触发BadTunnel攻打。所以BadTunnel或是经过网页、邮件、U盘等多种才干截止独霸。以至还可能迷惑WEB办事器和SQL办事器等(参考链接[2])。

(本文并未包含BadTunnel相关研究的全数模式,此外全数将在BlackHat US 2016的演讲“BadTunnel: How do I get Big Brother power?”中发布。)

配景常识

NetBIOS是一套新鲜的协议。198七年IETF发布RFC 1001与RFC 1002,定义了NetBIOS over TCP/IP,简称NBT。NetBIOS包含3种办事,此中之一是称说办事(Name service),即NetBIOS-NS,简称NBNS。NBNS或是经过发送局域网内播送来实现本地称说解析。

当你试图访问\\Tencent\XuanwuLab\tk.txt时,NBNS会向播送地点收回NBNSNB query:

谁是“Tencent”?

而本地局域网内的任何主机都或是回应:

192.168.2.9是“Tencent”。

然后你的电脑就会接受这个回应,然后去访问\\192.168.2.9\XuanwuLab\tk.txt。

这套机制谈不上安然,但因为产生在局域网内,而局域网群体被认为是绝对可信的状况。所以当然很早就有人了解到或是在局域网内假冒轻易主机,但这并不被认为是漏洞——就像ARP Spoofing并不被认为是漏洞一样。

WPAD(Web Proxy Auto-Discovery Protocol)是另一套有超过2十年汗青的新鲜协议,用于被动创造和配置系统的代理办事器。几近全数独霸系统都支持WPAD,但只需Windows系统默认启用这个协议。按照WPAD协议,系统会试图访问http://WPAD/wpad.dat,以获替代理配置剧本。

在Windows上,对“WPAD”这个称说的哀求很天然会由NBNS来处置。而如前所述,在局域网内,任何主机都或是声称本身是“WPAD”。所以,这套机制也谈不上安然,但因为一样产生在局域网内,而局域网群体被认为是绝对可信的状况,所以当然十几年前就有人了解到或是在局域网内独霸WPAD劫持假冒轻易主机,2012年被创造的Flame蠕虫也垄断了这种攻打动作,但这并不被认为是漏洞——就像ARP Spoofing并不被认为是漏洞一样。

接上去还得再提一下TCP/IP协议。NBNS是用UDP实现的。UDP协议最次要的赋性是无会话。不管是防火墙、NAT还是任何别的网络配备,都没法甄别一个UDP包属于哪个会话。只需网络配备应承IP1:Port1->IP2:Port2,就肯定同时应承IP2:Port2->IP1:Port1。

刚才咱们说过NBNS垄断播送协议,经过向本地播送地点发送盘诘来实现称说解析。但NBNS和绝大大都垄断播送协议的应用一样,并不会回绝来自本网段之外的回应。也就是说,假设192.168.2.2向192.168.2.255发送了一个哀求,而10.10.10.10及时前往了一个回应,也会被192.168.2.2接受。在某些企业网络里,这个赋性是网络结构所必要的。

实现方法

所以,假如咱们能在NBNS收回称说解析哀求的时分,从本网段之外前往一个回应,也一样会被NBNS接受,便或是实现跨网段NBNS Spoofing。但具有几个题目:

1、大大都主机都开启了防火墙,从本地网络之外主意向系统发送数据似乎是不可能的。即便不思量防火墙,从互联网上主意向一个局域网IP发送数据似乎更是不可能的。也就是说只能对有公网IP又没有防火墙的系统截止NBNS Spoofing?

2、NBNS协议内部封装的几近就是DNS报文,所以也有Transaction ID。只需Transaction ID结婚的回应包才会被接受。这个题目若何打点?

3、本地网络之外的主机接收不到NBNS NB query播送,又怎样知道该在甚么时分收回NBNS Spoofing数据包?

厄运的是,这些题目都或是打点。

起首,Windows系统的NBNS垄断且只垄断13七/UDP端口。“垄断且只垄断”的意思是:系统启动的NBNS通信,源端口和目标端口都永恒是13七/UDP。也就是说,假设一台内网的主机192.168.2.2向10.10.10.10启动NBNS盘诘哀求,大约会是这样:

192.168.2.2:13七 -> NAT:54231 -> 10.10.10.10:13七

而10.10.10.10前往盘诘后果时会是这样:

192.168.2.2:13七

也就是说,不论192.168.2.2的本机防火墙,还是NAT,还是两头的任何别的网络配备,只需应承盘诘哀求收回,并应承盘诘后果前往,就最多必要在一段光阴功夫内,应承10.10.10.10:13七收回任何UDP包到192.168.2.2:13七。这实在就开启了一条双向UDP单纯。BadTunnel,指的就是这个Tunnel:

192.168.2.2:13七 NAT:54231 10.10.10.10:13七

有个繁杂的履行或是帮手你了解这个单纯。操办两台开启了防火墙的系统,IP地点分别是192.168.2.2和192.168.3.3:

起首在192.168.2.2上实验“nbtstat -A 192.168.3.3”,会腐蚀。
然后再192.168.3.3上实验“nbtstat -A 192.168.2.2”,会胜利。
再次在192.168.2.2上实验“nbtstat -A 192.168.3.3”,会胜利。

那么怎样让192.168.2.2向10.10.10.10收回NBNS哀求呢?当Windows系统试图访问一个带有IP地点的file URI scheme或UNC path时,假设目标IP地点的139、445端口不可访问(超时或收到TCP重置报文),系统会再向该IP地点发送NBNS NBSTAT query盘诘。而让系统访问file URI scheme或UNC path的路径太多了。

不管是Edge阅读器还是IE,都会试图解析页面中的fileURI scheme或UNC path:

t1

全数模范的MS Office文档都或是嵌入file URI scheme或UNC path。另有很多第3方软件的文件格局也都或是。

出格是假设咱们将任何快捷动作的图标设置为一个UNC path,只需这个快捷动作表示在屏幕上,系统就会试图访问UNC path。

而假设目标是一台Web办事器,可能只需一个HTTP哀求:

http://网站.server/reader.aspx?ID=\\10.10.10.10\BadTunnel

至于TransactionID,NBNS的Transaction ID并不是随机的,而是递加的。后面提到,NBNS解析称说时,会收回NBNS NB query;而系统访问file URI scheme或UNC path腐蚀时,会收回NBNS NBSTAT query。NBNS NB query和NBNS NBSTAT query除了都垄断且只垄断13七/UDP外,它们还同享匹敌个Transaction ID计数器。也就是说,当192.168.2.2访问\\10.10.10.10\BadTunnel腐蚀,向10.10.10.10收回的NBNS NBSTAT query不单打开了一条双向UDP单纯,还将系统的Transaction ID计数器当前值演讲了10.10.10.10。

t2

也就是说,一个NBNS NBSTAT query同时打点了第一个题目和第2个题目。而第3个题目就更繁冗打点了。咱们既然能在网页中嵌入

Default
1 <img src=”\\10.10.10.10\BadTunnel”> //大引号改观成短序号

当然也或是同时嵌入:

Default
1 <img src=”http://WPAD/wpad.dat”>

这样,咱们或是管教对“WPAD”的NBNS NBquery的收回光阴功夫。也便或是及时前往虚构的回应。终极系统会将咱们虚构的http://WPAD/wpad.dat存入WEB缓存。之后当系统真正试图失去并解析http://WPAD/wpad.dat来设置代理办事器时,会垄断WEB缓存中的这个。而最多对Windows 七来说,虚构的http://WPAD/wpad.dat会像别的被缓存的WEB利润一样,即便关机重启动,依旧有效。

即便不思量WEB缓存,NBNS也有本身的缓存机制。只需胜利实现一次NBNS Spoofing,虚构的后果会被NBNS缓存10分钟:

t2

而后10分钟内系统各人也会试图去解析“WPAD”进而访问http://WPAD/wpad.dat来设置代理,但获得的将会是缓存中这个虚构的后果。而攻打者在一旦经过WPAD劫持到用户的流量,或是定时对某些HTTP哀求前往302重定向,实现循环BadTunnel攻打,抛却劫持形状:

HTTP/1.1 302 Found
Content-Type: text/html
Location: file://10.10.10.10/BadTunnel
Content-Length: 0

总结

本文所刻画的BadTunnel攻打,是一个紧急的安然题目。但当咱们试图寻觅题目滥觞时,却创造这并不易。BadTunnel攻打能得以实现,最多拜托于如下这些赋性:

1、? UDP协议无会话;

2、? 播送哀求可接受网段外回应。

3、? Windows默认开启WPAD。

4、? Windows文件处置API默认支持UNC path。

5、? Windows访问UNC path时,连接139和445端口腐蚀后会启动NBNS NBSTAT query。

6、? NBNS不论作为办事端还是客户端,都垄断匹敌个端口号。

七、? NBNS Transaction ID递加而不是随机。

8、? NBNS NBSTAT query和NBNS NB query同享匹敌个计数器。

9、? 系统在实现WPAD时也垄断WEB缓存机制和NBNS缓存机制。

以上全数打点赋性,独自来看,几近都没题目,以至是必须的。咱们当然不克不及认为UDP协议无会话是个漏洞。即便NBNS Transaction ID非随机这一点,也很难说是安然题目。因为NBNS NB这套机制正本打点用于内网,NBNS NB query以播送包形式收回,内网任何板滞都能收到。然则,全数这些独自看起来都没题指标赋性,在协同任务时,就形成了一个庞大的安然题目。那么,咱们该当若何去创造下一个BadTunnel?

防御建议

即便不克不及及时安置MS16-063和MS16-0七7补钉,也有一些别的方法或是制止BadTunnel攻打。

对企业来说,或是在沿海防火墙上关闭内部网络和互联网之间的13七/UDP通信。

对无需访问Windows网络同享办事的总体私人用户来说,或是思量禁用NetBIOS over TCP/IP:

t3

对兼容性影响最小的动作可能是在%SystemRoot%\System32\drivers\etc\hosts中添加固定的WPAD解析,或关闭被动搜检代理配置,来防止“WPAD”这个称说被劫持:

t4

不过要把稳的是,这样并不克不及制止对别的称说的劫持。而BadTunnel,不仅是WPAD。

一点惋惜

独霸BadTunnel劫持WPAD可能是汗青上影响领域最广、触发路径最多的Windows漏洞,更可能是无独占偶的写一个Exploit便可攻打全数版本Windows的漏洞。而实践上还可能更幽默。

MAC OS系统也实现了NBNS,并在某些场合支持UNC path,实践上也或是手工开启WPAD,但因为MAC OS的NBNS实现细节和Windows有所差异,并且系统自身默认垄断mDNS而不是NBNS去解析称说,所以这个题目并不影响MAC OS——要不然就太酷了。

参考链接

[1] Evilgrade
https://github.com/infobyte/evilgrade/

[2] 10Places to Stick Your UNC Path

10 Places to Stick Your UNC Path

[3] WebProxy Auto-Discovery Protocol
http://tools.ietf.org/html/draft-ietf-wrec-wpad-01

[4] NetBIOS Over TCP/IP
https://technet.microsoft.com/en-us/library/cc940063.aspx

[5] Disable WINS/NetBT name resolution
https://technet.microsoft.com/en-us/library/cc七82七33(v=ws.10).aspx

[6] MS99-054, CVE-1999-0858
https://technet.microsoft.com/en-us/library/security/ms99-054.aspx

[七] MS09-008, CVE-2009-0093, CVE-2009-0094
https://technet.microsoft.com/en-us/library/security/ms09-008.aspx

[8] MS12-0七4, CVE-2012-4七76
https://technet.microsoft.com/en-us/library/security/ms12-0七4.aspx

[9] MS16-063,CVE-2016-3213
https://technet.microsoft.com/en-us/library/security/ms16-063.aspx

[10] MS16-0七7,CVE-2016-3213, CVE-2016-3236
https://technet.microsoft.com/en-us/library/security/ms16-0七7.aspx

本文来自【腾讯玄武履行室-tombkeeper】 《 左侧链接是玄武履行室微信号,推荐存眷。

数安新闻+更多

证书相关+更多