O2O网站建设需要多少钱,工程公司取名大全,怎么查询一个网站有没有做竞价,易企推交换网络中的sniffer讨论-基于交换网络的ARP spoofing sniffer 转自--http://blog.csdn.net/zhangnn5/article/details/6810347 在阅读这篇文章之前#xff0c;我假设你已经知道TCP/IP协议#xff0c;ARP协议#xff0c;知道什么是sniffer等基本网络知识。在一般的局域网… 交换网络中的sniffer讨论-基于交换网络的ARP spoofing sniffer 转自--http://blog.csdn.net/zhangnn5/article/details/6810347 在阅读这篇文章之前我假设你已经知道TCP/IP协议ARP协议知道什么是sniffer等基本网络知识。在一般的局域网里面经常会有两种接入方式一种是HUB接入这里的HUB是指普通HUB一种是交换机直接接入这里的交换机是比较高级的交换机老式交换机不在此列。采用HUB方式接入的网络数据传送的时候是采用广播的方式发送这个时候只要一台主机将自己的网卡设置成混杂模式promiscuous mode就可以嗅探到整个网络的数据。 此篇文章不打算讨论这种网络环境的嗅探(sniffer)和反嗅探(anti sniffer)方法主要是想就交换机方式直接接入的网络环境如何sniffer以及如何anti sniffer做一个比较粗浅的分析。 我们知道一台计算机想要接入到网络中必须要有两个地址。一个是网卡的地址我们称之为MAC地址它是固化在网卡中的。在以太网中我们通过MAC地址来进行数据传送和数据交换。在以太网环境中数据会分帧传送每一个数据帧都会包含自己的MAC和目的MAC地址信息 另外一个地址是平时所说的IP地址定义在网络层每一台网络计算机都会有一个或者多个IP地址这是一个虚拟的数据并且可以随时更改。IP地址和MAC地址是同时使用的在数据传送过程中一个完整的TCP/IP包需要由以太网进行数据封装数据分帧最后再通过物理层传输到目标计算机。在以太网封装上层的TCP/IP包的时候它需要知道源MAC地址和目的MAC地址但是我们只能给出一个对方的IP地址这个时候就需要一个协议来支持IP到MAC的转换这就是ARP,Address Resolution Protocol. 在局域网中ARP是通过广播的方式来发送的比如我的机器IP是192.168.7.110(A),需要知道192.168.7.119(B)机器的MAC地址那从A机器就会广播一个ARP包这个包里带有B机器的IP如果B机器收到了此ARP包那么他就会同样返回一个ARP包里面带有响应的MAC地址。A收到这个ARP包后得到B的MAC地址这个时候以太网就可以开始封装TCP/IP包了可以开始正常的数据传送了。比如 d:\arp -a view plain Interface: 192.168.7.110 on Interface 0x1000003 Internet Address Physical Address Type 192.168.7.1 00-90-0b-01-a0-61 dynamic d:\ping 192.168.7.119 Pinging 192.168.7.119 with 32 bytes of data: Reply from 192.168.7.119: bytes32 time10ms TTL128 Ping statistics for 192.168.7.119: Packets: Sent 1, Received 1, Lost 0 (0% loss), Approximate round trip times in milli-seconds: Minimum 0ms, Maximum 0ms, Average 0ms Control-C ^C d:\arp -a Interface: 192.168.7.110 on Interface 0x1000003 Internet Address Physical Address Type 192.168.7.1 00-90-0b-01-a0-61 dynamic 192.168.7.119 00-d0-59-26-df-1a dynamic 可以清楚的看到在未和192.168.7.119通讯之前本机是没有该IP对应MAC地址的但一旦通讯后我们就知道了对方的MAC地址windows会将对方MAC地址存在自己的ARP cache里面。为了节省网络资源以及通讯时间多数操作系统会保留一张ARP缓存表里面记录曾经访问的IP和MAC地址影射记录一旦局域网中有一个新的ARP广播对应一个IP到MAC的记录这个ARP缓存表就会被刷新MAC地址会更换成新的广播包里定义的MAC地址这个时候就存在一个问题在更新的时候系统并没有去检查是否真的是由该机器广播出来的局域网中的恶意用户就会利用欺骗的方式来更改网络途径将真正的MAC地址替换成自己的MAC地址这种方法称之为ARP spoofing。交换机在处理数据的时候它会根据自己机器内部的一个MAC到端口的数据表来查询符合要求的MAC地址数据包该发往哪个端口。这张表从交换机开机的时候就存在在每个端口第一次数据传送的时候就会记录对应的端口的MAC地址. 通过发送我们伪造的MAC地址数据包到交换机就可以欺骗交换机刷新自己的MAC地址到端口的数据表假设A主机连接在2口假设我在4口要sniffer A主机的数据那么我就需要伪造一个ARP数据包告诉交换机A主机MAC地址是在4口那么交换机就会将本来发送到A主机的数据会转送到4口上这个时候我就可以监听到了A主机的数据传送了这个就是基于交换网络的arp欺骗sniffer过程。通过arp 欺骗一般sniffer有几个方法1. 就是上面介绍的欺骗MAC进行数据窃听但由于A收不到数据这样它会重新发布ARP包这样导致sniffer很容易暴露而且效果不好A会丢包同样你的sniffer 一样不会抓到全部的数据。2. 发起中间人窃听。攻击者可以在两台通讯主机之间插入一个中转回路这样攻击者既可以sniffer到两机的数据同样还可以不影响两机的通讯。我们假设X是攻击者的机器A和B是目标机器。X如果想发起攻击首先在向A主机发送一个ARP包让A认为B机器IP对应的MAC地址是X主机的同时再向B机器发送一个ARP包让B机器认为A机器IP对应的MAC地址是X主机的如下图3 MAC flood攻击通过快速(比如超过1000线程) 发送大量伪造MAC地址数据包会造成交换机的MAC-端口表塞满但为了正常数据不被丢弃大多数交换机会采取类似HUB一样方式广播的方式发送数据。这个时候再在网络中任何一台机器设置网卡为混杂模式就可以sniffer到任何想要监听的数据了。*注: 以上方法我并没有正式测试过理论上可行实际上还有待验证。上面介绍了几种常见的基于switch网络的arp spoofing sniffer方法那么对于一个管理员来说如何防范这种方式的数据嗅探呢严格来说没有一种通用的方法来解决arp欺骗造成的问题最大的可能就是采用静态的ARP缓存表由于静态的ARP表不可以刷新那么伪造的ARP包将会被直接丢弃。但这样造成的问题就是整个网络中的所有机器都必须要建立一个静态的MAC表在大型网络中会增加交换机的负担造成效率下降。如果机器更换那么就要手工去更改MAC地址表很显然在大型网络中这种方式是不适用的。在这里需要注意的是windows下即使你建立了静态的MAC到IP的影射表但是在收到了强制更新的ARP包后依然会刷新机器的影射表一样会被sniffer到。高级交换机还提供了MAC绑定功能指定交换机某个端口和某个MAC绑定这种方法可以很有效的防止MAC克隆clone方式的窃听但是对于上述的arp 欺骗攻击效果不大。最可靠的方法就是采用第三方软件来解决Arpwatch是一个运行在Unix平台下的免费工具他可以检测到网络中所有MAC地址的变化一旦网络中的MAC地址有变化它就会发送一封email到指定地点。后记这篇小文写的很简短其实在交换网络中还有其他几种攻击方法比如MAC clone等而且交换网络中的sniffer方法还不止这一种我这里只是介绍最常见容易发生和编程实现的sniffer方法希望对大家有所帮助。本人水平有限如有错误请不吝指责 posted on 2011-10-26 10:22 linyawen 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/linyawen/archive/2011/10/26/2224828.html