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、Windows98、Windows2000及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的数 据经过他。