快捷搜索:  as  创意文化园  test  生活家装饰  25742  ?????  2674  2808

usdt自动充值(www.caibao.it):对苹果mDNS协议的中间人攻击

USDT官网

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

mDNS简介

mDNS(Multicast DNS)指的是多播DNS,就像之前说的,这个包也是在内网中为了知道各主机的ip地址而存在的,也许是广播我是谁,我在什么什么地址,而收到的主机也会响应一个mDNS包告诉对方自己是谁,自己在什么什么地方。它和dns包差不多,域名为主机名.local

mDNS用于在局域网中发现装备,跟zeroconf协议的用处相近(zeroconf主要用于在没有DNS的网络中发现装备,主要用于linux和mac中)。感受更常用于手机,网上能搜到的有关mDNS的,多为小程序的开发,诸如一些拿来发现局域网装备的微信小程序。

类似这篇文章 https://www.jianshu.com/p/e66b0d400807 小程序开发必备的高级能力之四:mDNS

我们可以看到,它容易的获取到了装备名,ip地址和服务类型

这对于内网渗透中信息网络无疑是有作用的,这就细嗦它的事情原理了。

mDNS事情原理

mDNS也是基于DNS协议的协议,与DNS有高度的相似性,也是用于在无传统DNS服务器的网络中发现装备。

先说说发现装备相关的问题

就好比一台刚进入局域网的盘算机,它没有局域网中其他装备,那怎么去获取呢?

这里靠的就是广播,好比ARP协议,就是靠广播去发现加入了组播的主机,ARP卖力mac地址和ip地址的剖析。

而零设置网络的目的就是在局域网中发现服务,这里先提一下,后面会详细说。

再说说在有传统DNS服务器的网络中剖析的方式,凭据以下顺序寻找一个域名

  1. 内陆hosts文件剖析
  2. 使用DNS剖析
  3. 使用LLMNR剖析
  4. 使用NBNS剖析

实际上,自从mDNS加入了windows后,windows也会默认用mDNS举行查询,顺序在步骤2和步骤3之间。

在没有DNS服务器的网络中,很显然我们无法靠DNS剖析域名。作为DNS的替换,mDNS就发挥了作用。

我们可以看看ping一个不存在的域名会发生什么

在不存在DNS服务器的局域网中

它会先后用mDNS,LLMNR,NBNS去实验剖析域名(前面的arp协议是为了去找局域网内的网关)

这里还存在一个说法,由于mDNS并不是windows原本的器械,以是windows的规则也和MAC差别,即windows是通过主机名加.local组成查询请求,mac是直接用主机名组成查询请求,虽然最终都市回归到xxxxx.local

而在存在DNS服务器的局域网里它会先实验去寻找xxxxxxx.lan的剖析地址,再用这三种去寻找。

mDNS事情历程

然后是事情历程,mdns有两个作用,一个是作为剖析盘算机名(就像上面ping的时刻会发送查询包一样),一个是作为剖析服务名。在windows中以剖析盘算机名为主要作用。

剖析盘算机名

在盘算机需要剖析一个盘算机名时,它会向mDNS的广播地址发送查询请求包,将欲查询盘算机名.local作为域名去剖析地址,该盘算机名的主机在收到查询包后会将返回包广播出来,让局域网内主机都能接收到。

剖析服务名

这又要说回mac中的bonjour,bonjour提供了零设置网络的装备发现方式,其中的dns-sd注册服务,发现服务,即是用的mdns来完成。

首先mDNS事情于5353端口,向224.0.0.251广播地址发送数据包,广播给组播地址中的主机。

内容为查询请求,其他主机收到后,若是有,则也会向广播地址举行广播。

另有就是,在具有mDNS协议的装备进入局域网时刻,它也会广播一个请求包

内容为自己的服务名,ip地址和服务类型。

我们可以用dns-sd -R <名称> <协议类型> <域名> <端口> 来注册一个服务,我们注册一个服务同时会向局域网中广播我们所具有的服务

下为主机中使用dns-sd注册了一个fucktrump的服务

上为虚拟机中使用dns-sd查找内陆服务

两台盘算机就在局域网中实现了服务的注册与发现。

下为整个交互历程的数据包

0到9是本机在注册服务,历程基本如下

注册服务时,天生三个相关的dns纪录:

  1. 服务纪录srv
  2. 指针纪录ptr
  3. 文本纪录txt

srv包罗主机名和端口号,使用者纪录该名字以便于历久接见,目的在于将一个服务名指向一个主机名和其端口号。

fucktrump._http._tcp.local: type SRV, class IN, cache flush, priority 0, weight 0, port 280, target DESKTOP-XXXXXXX.local则把fucktrump._http._tcp.local剖析到了DESKTOP-XXXXXXX.local的280端口上。这里虽然有权重和优先级的观点存在,但实际上是没有使用的,以是下面会提到,修改权重并不会影响服务剖析。

ptr在dns中是域名反向剖析,卖力把ip反向剖析为域名,这里是将某服务类型剖析到一个服务上。好比

_http._tcp.local. 280 PTR fucktrump._http._tcp.local.意思就是建立了一个基于tcp协媾和http协议的服务,反向剖析到了后面谁人域名上

txt包罗一些特殊形貌(可以为空缺),用于标识一些其他信息

mdns使用TTL来控制服务的存活时间,之前先容过mdns的结构,我也蛮好奇的为什么dns-sd注册了服务还不能退出终端,一退服务就会消逝,mdns中的TTL也有时间限制,一样平常注册服务会带有一个2分钟的TTL,每隔一到两分钟就会重新发包示意服务还存活,若是中途退出了终端,则会发一个TTL为0的mdns数据包,示意服务住手了。

发现服务时,发现方用注册时指定的dns纪录来提议一个ptr纪录问询,收到后,具有该服务的主机返回一个ptr纪录

mDNS协议对于零设置局域网来说是异常利便的,譬如在与打印机互通,毗邻局域网中电脑或手机,只要连入统一网络,就可以很快的发现对方的服务并与之通讯。arp协议卖力的是ip与mac地址的剖析,而mDNS卖力的是ip与域名的剖析。

mDNS存在的平安问题

信息泄露

这个可能不算是平安问题,然则可以作为一种信息网络的手段,mDNS用广播发现装备就注定会露出一些器械。

以下是包罗的能网络到的信息:

  1. ip地址(包罗ipv4和ipv6)

  2. 服务名(有些服务直接以主机名命名

  3. 传输协议以及端口服务

    ,

    Usdt第三方支付接口

    菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

    ,

个人以为主要取决于主机运行的服务,好比:

nvstream似乎是nvidia的一个服务,ni_logos则更是不知名了。

另外就是凭据质询包预测可能存在的服务,mDNS交互历程会纪录存在的协议(即srv纪录),在下一次ptr质询时直接质询存在的协议及服务

这是实验室中抓取的质询,我们可以大致预测一下,有几个苹果装备的相关协议,包罗前面那些apple-pairable,airport,airplay等等,sleep-proxy是macos待机时刻bonjour发出的协议;有几个打印机的相关服务,像是ipp,ipps,printer那些,smb列位师傅应该都熟悉,rfb也是个远程毗邻的协议。

mDNS诱骗

有没有对224.0.0.251很眼熟?对,LLMNR的广播地址是224.0.0.252,熟悉的历程,熟悉的地址,熟悉的广播,我们有理由信赖这给是可以举行诱骗的。

LLMNR毒化的常用工具有个responder,其中有一项就是mDNS毒化。不外它归类到的是DNS中,简朴抓个包就能发现,它是作为剖析域名的方式举行毒化,靠的是在无DNS服务器的局域网内剖析地址(这里可以看出在windows中LLMNR和MDNS的关系,MDNS从加入windows到不停更新,比重都在增大)

mdns的另外一个功效,是否也可以举行诱骗呢?即对方机械查询内陆网络中的服务,我收到组播后举行诱骗,诱使对方毗邻或举行其他操作。

mdns使用TTL来控制服务的存活时间,之前先容过mdns的结构,我也蛮好奇的为什么dns-sd注册了服务还不能退出终端,一退服务就会消逝,mdns中的TTL也有时间限制,一样平常注册服务会带有一个2分钟的TTL,每隔一到两分钟就会重新发包示意服务还存活,若是中途退出了终端,则会发一个TTL为0的mdns数据包,示意服务住手了。

有关诱骗伪造同名服务的探讨

若两台机械注册相同服务,凭据官方文档来说,只有当建立服务时发出的广播包无响应,服务才会建立乐成,但实际上,这里也存在一点问题。windows和mac另有一定的区别。

或许是windows的bonjour还不完善,windows中的mdns系统并不怎么回应响应包,好比,在原有的交互历程中,若mac先注册服务,windows再注册服务,在windows发出注册的广播包时,mac会很努力的广播自己服务的广播包,但window似乎并不买帐,我行我素,依然每两分钟广播一次。

图为windows例行发送数据包,被mac疯狂问候

这是可以印证的。若mac下注册的服务遇到了大量同名服务数据包,它是会放弃注册转而注册xxxx(2).local,好比下图

这里有几个值得注重的点,如下

  1. 你仅需要发送同名服务的广播数据包,就能获得3倍或更多的数据包返回(即mac问候windows那张图,经测试能确定并不是1等1的流量包发送,详细发送若干似乎并不确定,然则发送太多会导致原服务重新注册更名。发送太快反射的也会越来越少),这我以为是可以引发反射式泛洪攻击的,且为广播非单播。(对于ddos的确定尺度不太熟悉,但至少实测能堵塞网络。)

  2. windows的bonjour注册的服务会被mac注册的服务覆盖掉,虽然windows照样在准时发送它的数据包,不外剖析者在剖析数据包时,mac的bonjour正在疯狂问候windows全家,剖析者自然也就把服务剖析到了mac上。这不仅说明windows注册的服务甚至可以伪造同名的,也说明若是我们和mac举行条件竞争,是有机会使使用者需要的服务剖析到我们这儿来的。

  3. 是否想过伪造一个ttl=0s的对方服务的广播包来停掉对方服务?实际上,对于mac来说,是办不到的。每当有一个同名服务的广播包在局域网中泛起,bonjour都市做出回应,能做到的只是滋扰服务的正常运行。然则,我们说过windows存在的问题,windows对于同名数据包并不会做出回应,这会导致在伪造windows同名服务后,再竣事掉该服务,在windows下一次发送2分钟一次的定期数据包之前,不会有用户剖析到这个服务的存在。

图右侧为伪造的竣事数据包,左侧为mac对竣事数据包做出的回应。

有关直接伪造服务的探讨

mac中许多其他应用也用了这个服务,好比打印机服务(对mac不太领会,资料说的是许多苹果装备相互毗邻都靠bonjour去发现,这里我只实验了打印机)

这是我打开打印机服务准备查找局域网内可能存在的打印机的历程,mac在不停广播查询请求

这时若是我们组织假数据包举行诱骗,是不是可以到达伪造一个打印机服务的效果?

我们可以看到它广播的查询包,好比第一个有_ipp_tls._tcp.local这样一个字段,前一段代表的是使用ipp-tls协议(一个打印机协议),tcp代表的用于传输数据的协议

我们同样去注册一个这个服务

mac中乐成剖析了这个服务,

用剧本也可以完成,就像先容的时刻说的,三个纪录,ptr,svc,txt,去建立一个服务。此时mac完成了打印机服务的发现,还需要地址去完成剖析。它查询地址的方式就是通俗的dns的方式,type A和AAAA。我们只需要响应一个type A的包即可。完成剖析后,mac会和服务方举行tcp握手并举行后续操作。

经典tcp三次握手不再先容,需要注重的是不需要自己去组织第二次握手的包,由于端口未开放,系统会自动回复rst导致我们交互不正常。socket建立一个需要的端口就能完成握手,又或者是nc一个端口举行监听。

下图为nc监听端口的情形:

红圈部分为tcp握手,后面即为要打印的数据。

固然,是否能拿到数据也和协议有关系,主流的打印机协议大致有LPD(主要用于unix),IPP(主要由linux的CUPS和windows的互联网打印支持),另有大部分网络打印机都直接通过TCP协议发送postscript,即上图的情形,打开数据包看data就会发现全是postscript语言的剧本。

这和组织的时刻用到的协议也有关系,好比xxx._ipp._tcp.local就直接用ipp协议了,又像是xxx._ipp-tls._tcp.local,则会开启ssl证书验证,传输加密流量(算是个踩的坑)。差别的服务名会导致系统用差别的方式去处置。

下图为ssl验证,客户端在握手乐成后发送的client hello。

下图为ipp协议交互。

综合一下上面的诱骗,思量一下可能存在的历程,a想用局域网内的打印机服务,于是开启打印机服务查找,这时我们举行诱骗,伪造了一个打印机,a发现有一个可用服务,于是用它举行了毗邻...

诱骗的手段包罗以下:

  1. 建立同名服务,剖析到本机,经测试也许2秒一个包,能在不顶掉原服务的情形下将服务剖析到本机,固然,这和下面说的方式都有一个相同之处。就是要看服务使用时剖析的到底是正常的服务发的包,照样我们伪造的服务发的包。

下面为试验:

红圈为建立一个打印机服务模拟正常打印机,然后mac用这个bonjour服务建立打印机。我们再监听对应端口。

此时,我们在攻击机上开启剧本发送伪造包并监听对应端口,可以看到,mac建立的服务并未被顶掉。我们再在mac上打印数据,如图中所示,本次打印地址剖析到了我们攻击机上,数据也就发送到了攻击机的对应端口上。

  1. 直接顶掉原有服务,如下图

犹如之前所说,在同名服务数据包过多的情形下,mac的服务竣事了自己原本建立的服务,转而注册了名称 (2)._ipp._tcp.local。然则我们用的是原有名称建立的打印机服务,寻找也是寻找的原有名称,自然而然就剖析到了我们这里。

  1. 使用ttl=0的数据包,使原服务不能正常运行

照样看剖析的时刻到底剖析的是谁的数据包的问题,不外一个while True循环能也许率使剖析服务时以为服务已经竣事。我若是作为使用者,我肯定会嫌疑打印机是不是出了问题,转而换其他的或重新建立,这时刻我们再伪造一个服务让其毗邻。

以上是三个思绪,或许另有其他的,但本人思绪有限,暂时只想到这三个。

另外,不仅是打印机,safari也曾支持bonjour发现局域网内的web服务(safari 11 后就删除了该功效,不外app store中仍有相关的扩展,包罗zeroconf browser,localsite等等...用于从bonjour服务中剖析web服务,老穷逼了买不起),类似的诱骗手段我们在其他中间人攻击中也见多了,建立一个web服务,伪造一个bonjour服务并指导到对应端口上,守候鱼中计。又好比若是有查找局域网内ssh服务存在的应用(暂未发现,但mac os中支持对_ssh._tcp.local的剖析,也就是说可能会存在某个服务使用),举行诱骗后可以实验ssh中间人攻击。包罗之前信息网络里提到的有剖析到smb协议的存在,也可以联系到smb下的ntlm-relay相关的器械。

以是说能详细使用的方面应该还蛮广的,主要基于使用bonjour的服务。

有关反射式泛洪攻击

测试了关于反射式泛洪攻击相关的内容,通过测试效果判断bonjour是通过一段时间内收到的同名数据包的量来判断是否重新注册新服务的(也许五秒内3个包?)。以是若局域网内只存在一个服务,想要通过这个方式触发流量就较小。服务越多,能翻倍的流量也越多。

除此之外,通过查询请求举行反射式泛洪也有相同的作用,同样也是服务越多能获得的流量也越多。但也很容易露出,由于一眼望去就能看出谁是发送查询请求的人。

末端

由于这种两台机械之间不能相互确认信托的网络中,中间人攻击是必然会存在的,只是该若何组织和若何行使的问题,以是像kerberos,ssl这种第三方可信认证的方式才会泛起。

我也思量过为什么arp诱骗存在了那么久都没有从根本上解决问题的方式,也许是由于协议对照底层,用的也异常普遍,若是直接修改协议会导致许多更大的问题。以是防御中间人攻击的最好设施照样仅和局域网内可信,最平安的主机举行通讯。

综上,这或许是一个新的可行使的点,同大多数的中间人攻击相同,都需要对方来自动中计。现在照样在mac os中使用bonjour的应用对照多,但也不算太普遍,以是行使局限对照有限,应该说,有行使bonjour的地方应该就能造成伪造。然则有扩展的趋势,查资料的历程中也看到过windows正在逐步放弃LLMNR转而使用MDNS的趋势,苹果也有专门的bonjour SDK for windows,使得bonjour在windows可用,又好比之前找到的nvstream服务,就是windows上使用的mdns服务之一。未来可期。

发表评论
sunbet声明:该文看法仅代表作者自己,与本平台无关。请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片

您可能还会对下面的文章感兴趣: