1 ARP欺骗
在基于IP通信的内部网中,我们可以使用 ARP欺骗的手段,ARP欺骗 攻击的根本原理是因为计算机中维护着一个 ARP高速缓存,并且这个ARP高速缓存是随着计算机不断的发出ARP请求和收到ARP响应而不断的更新的,ARP高速缓存的目的是把机器的IP地址和MAC地址相互映射。你可以使用 arp命令来查看你自己的 ARP高速缓存。假设机器A:IP地址为 10.0.0.1,MAC地址为 20-53-52-43-00-01 ,机器B:IP地址为 10.0.0.2 ,MAC地址为20-53-52-43-00-02,机器C:IP地址为 10.0.0.3 ,MAC地址为20-53-52-43-00-03 。现在机器B向机器A发出一个 ARP Reply(协议没有规定一定要等ARP Request出现才 能发送ARPReply,也没有规定一定要发送过ARP Request才能接收ARPReply),其中的目的IP地址为10.0.0.1,目的MAC地址为20-53-52-43-00-01 ,而源IP地址为10.0.0.3,源MAC地址为20-53-52-43-00-02 ,好了,现在机器A更新了他的 ARP高速缓存,并相信了IP地址为10.0.0.3的机器的MAC地址是20-53-52-43-00-02 。当机器A发出一条FTP命令时---ftp10.0.0.3,数据包被送到了Switch,Switch查看数据包中的目的地址,发现MAC为20-53-52-43-00-02,于是,他把数据包发到了机器B上。你可以同时欺骗他们双方,完成中间人欺骗攻击 。 当然,在实际的操作中你还需要考虑到一些其他的事,比如某些操作系统在会主动的发送ARP请求包来更新相应的ARP入口等。
2. 交换机MAC地址表溢出
Switch之所以能够由数据包中目的MAC地址判断出他应该把数据包发送到那一个端口上是根据他本身维护的一张地址表。对于动态的地址表,并且地址表的大小是有上限的,可以通过发送大量错误的地址信息而使SWITCH维护的地址表“溢出”,从而使他变成广播模式来达到我们要sniff 机器A与机器C之间的通信的目的。
3. MAC地址伪造
伪造MAC地址也是一个常用的办法,不过这要基于你网络内的Switch是动态更新其地址表,这和ARP欺骗有些类似,只不过现在你是想要Switch相信你,而不是要机器A相信你。因为Switch是动态更新其地址表的,你要做的事情就是告诉Switch你是机器C。换成技术上的问题你只不过需要向Switch发送伪造过的数据包,其中源MAC地址对应的是机器C的MAC地址,现在Switch就把机器C和你的端口对应起来了。不过同时你需要DOS掉主机C。
4. ICMP路由器发现协议欺骗
这主要是由ICMP路由器发现协议(IRDP)的缺陷引起的,在Windows95、98、2000及SunOS、Solaris2.6等系统中,都使用了IRDP协议,SunOS系统只在某些特定的情况下使用该协议,而Windows95,Windows95b, Windows98, Windows98se, 和Windows2000都是默认的使用IRDP协议。IRDP协议的主要内容就是告诉人们谁是路由器,设想一下,一个攻击者利用IRDP宣称自己是路由器的情况会有多么的糟糕!所有相信攻击者的请求的机器把他们所有的数据都发送给攻击者所控制的机器
5. ICMP重定向攻击
所谓ICMP重定向,就是指告诉机器向另一个不同的路由发送他的数据包,ICMP重定向通常使用在这样的场合下,假设A与B两台机器分别位于同一个物理网段内的两个逻辑子网内,而A和B都不知道这一点,只有路由器知道,当A发送给B的数据到达路由器的时候,路由器会向A送一个ICMP重定向包,告诉A直接送到B那里就可以了。设想一下,一个攻击者完全可以利用这一点,使得A发送给B的数据经过他。