为什么以前通用的 arp 欺骗在 windows 、安卓等完美 mitm
到了 ios device 就不行了呢, wireshark 一个包都抓不到?
苹果设备为何不感染,这是什么原理
1
NeoAtlantis 2015-11-23 02:10:12 +08:00 via Android
据说苹果的设备能在连 WiFi 时用随机的 MAC ,不知道有没有关系……
|
2
sdc6882278 2015-11-23 08:35:08 +08:00 via iPhone
@NeoAtlantis 那是在探测广播阶段,防止被动纪录 mac 地址,实际网络交互的时候用的是正常地址。
|
3
JiPhone OP 随机 mac 地址?这是什么原理
|
4
lyh3222 2015-11-23 09:50:58 +08:00
不知道,只知道苹果和思科在网络上有合作
|
5
salmon5 2015-11-23 10:02:39 +08:00
你还可以欺骗 交换机,搜个软件 switchsniffer
|
6
honeycomb 2015-11-23 10:41:00 +08:00
|
7
zjqzxc 2015-11-23 11:45:41 +08:00
楼主的意思是说,苹果的设备不能被 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 响应就是欺骗者的话,从协议层面看完全无法辨别真伪。 |
8
MrMario 2015-11-23 14:55:45 +08:00
可以的,前天刚刚做了测试, Mac 、 iPhone 、小米、华为设备统统沦陷
|
11
zjqzxc 2015-11-24 11:47:21 +08:00 1
@JiPhone 不清楚你的实验具体步骤。
arp 缓存存在有效期,有效期内可能不会再次进行 arp 请求,在此期间也就不会受到欺骗。一般来说这个有效期是 10~20 分钟。当然也有可能是我前一条回复的那种直接被设置为静态的那种情况,该缓存就永久有效不会受到欺骗了。 尝试如下方法: s1:改路由名称, lan 口 IP 端,最好能把 LAN 口 mac 也改了(其实操作目的是清空苹果设备的 arp 表,但我不清楚操作,只能,,让路由器看起来像一个全新的。其实也许忘掉那个接入点,然后再重启就行) s2:开启欺骗 s3 :把设备接入该无线网 另:好像无线网和 HUB 一样,本身就是一个冲突域。只要位于同一个接入点,直接混乱模式应该就能抓到包(怎么理解呢:无线路由想和 A 设备通讯,此时B设备也接入了。它根本无法实现说我把信号指向A设备,让B收不到。它只能向外“广播”这个包,这样所有接入的设备都能收到了。一般来说 B 设备在 IP 层发现这个包的目的地址不是我就这几丢弃了,但事实上这个包的确到达了 B 设备这里。如果想监控:混乱模式一股脑把给自己的不给自己的都记录下来就好了。只是为了抓包在无线的情况下用不着 arp 欺骗)。 |