• 请不要在回答技术问题时复制粘贴 AI 生成的内容
JiPhone
V2EX  ›  程序员

arp 欺骗失败----所有的 ios 设备

  •  
  •   JiPhone · Nov 23, 2015 · 5730 views
    This topic created in 3825 days ago, the information mentioned may be changed or developed.

    为什么以前通用的 arp 欺骗在 windows 、安卓等完美 mitm
    到了 ios device 就不行了呢, wireshark 一个包都抓不到?
    苹果设备为何不感染,这是什么原理

    11 replies    2015-11-24 11:47:21 +08:00
    NeoAtlantis
        1
    NeoAtlantis  
       Nov 23, 2015 via Android
    据说苹果的设备能在连 WiFi 时用随机的 MAC ,不知道有没有关系……
    sdc6882278
        2
    sdc6882278  
       Nov 23, 2015 via iPhone
    @NeoAtlantis 那是在探测广播阶段,防止被动纪录 mac 地址,实际网络交互的时候用的是正常地址。
    JiPhone
        3
    JiPhone  
    OP
       Nov 23, 2015
    随机 mac 地址?这是什么原理
    lyh3222
        4
    lyh3222  
       Nov 23, 2015
    不知道,只知道苹果和思科在网络上有合作
    salmon5
        5
    salmon5  
       Nov 23, 2015
    你还可以欺骗 交换机,搜个软件 switchsniffer
    honeycomb
        6
    honeycomb  
       Nov 23, 2015
    @JiPhone
    @sdc6882278

    iOS8+, Android 6.0+
    在探测广播阶段,都会使用随机的 MAC 地址
    所以应该和这个特性关系不大
    zjqzxc
        7
    zjqzxc  
       Nov 23, 2015
    楼主的意思是说,苹果的设备不能被 arp 欺骗?

    虽然我不清楚苹果设备具体是怎么实现 arp 协议的,那我就从协议本身来说吧
    arp 表记录的是 mac-ip 对照表,正常来说网关的 ip 对应网关的 mac , arp 欺骗就是让网关的 ip 对应到骗子的 mac 。
    过程是:我想和外网通讯,只知道网关 ip 并不知道网关的 mac ,我就需要广播一个 arp 请求,问问谁知道网关的 mac 是多少。正常来说网关计算机会回复我它的 mac ,在欺骗者存在时,欺骗者就会回复一个它的 mac 来骗我,一旦我接受了这个假 mac 地址,看似我发给网关的数据包其实全都发给了欺骗者。
    但通讯过程中并不是每一次通讯都要问问网关 ip 的 mac 是多少,,这太麻烦了。。所以 arp 缓存的作用就是记录获取到的 ip-mac 对照表。 arp 缓存分为动态缓存和静态缓存。动态缓存过一会儿就失效了如果想用还在再 arp 请求来获取,静态永远不失效。

    铺垫好了,开始说猜想:
    一般的网络设备(比如 Windows ,安卓等)并不把网关 ip-mac 对照写入静态缓存,当缓存到期了重新请求的时候就可能被欺骗。如果说苹果设备不会被欺骗,很好理解的一种情况就是这个 ip-mac 被写入成静态缓存,一旦通讯建立就把这个 ip-mac 对照关系固定下来。

    但是这并不意味着不能被欺骗。在通讯建立之初如果首先获得的 arp 响应就是欺骗者的话,从协议层面看完全无法辨别真伪。
    MrMario
        8
    MrMario  
       Nov 23, 2015
    可以的,前天刚刚做了测试, Mac 、 iPhone 、小米、华为设备统统沦陷
    JiPhone
        9
    JiPhone  
    OP
       Nov 23, 2015
    @Mrmario 为何我做的实验不成功?求告知
    jimzhong
        10
    jimzhong  
       Nov 23, 2015
    @zjqzxc 分析得很有道理
    zjqzxc
        11
    zjqzxc  
       Nov 24, 2015   ❤️ 1
    @JiPhone 不清楚你的实验具体步骤。

    arp 缓存存在有效期,有效期内可能不会再次进行 arp 请求,在此期间也就不会受到欺骗。一般来说这个有效期是 10~20 分钟。当然也有可能是我前一条回复的那种直接被设置为静态的那种情况,该缓存就永久有效不会受到欺骗了。

    尝试如下方法:
    s1:改路由名称, lan 口 IP 端,最好能把 LAN 口 mac 也改了(其实操作目的是清空苹果设备的 arp 表,但我不清楚操作,只能,,让路由器看起来像一个全新的。其实也许忘掉那个接入点,然后再重启就行)
    s2:开启欺骗
    s3 :把设备接入该无线网

    另:好像无线网和 HUB 一样,本身就是一个冲突域。只要位于同一个接入点,直接混乱模式应该就能抓到包(怎么理解呢:无线路由想和 A 设备通讯,此时B设备也接入了。它根本无法实现说我把信号指向A设备,让B收不到。它只能向外“广播”这个包,这样所有接入的设备都能收到了。一般来说 B 设备在 IP 层发现这个包的目的地址不是我就这几丢弃了,但事实上这个包的确到达了 B 设备这里。如果想监控:混乱模式一股脑把给自己的不给自己的都记录下来就好了。只是为了抓包在无线的情况下用不着 arp 欺骗)。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5647 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 87ms · UTC 06:53 · PVG 14:53 · LAX 23:53 · JFK 02:53
    ♥ Do have faith in what you're doing.