我们最好拿个图来说明吧:如下拓扑图:
如上图:c1,c2,c3处在同一局域网下,也就是他们属于同一子网。C1的ip地址:192.***.1.1,C2的ip地址:192.168.1.2,C3的ip地址:192.***.1.3.那么我为了说明全部的原理的过程,假设交换机上的mac地址表已被清某公司。好了我们开始吧:
当主机C1想和主机C2进行通信,由于局域网是使用的是以太网链路,所以c1想和c2进行通信,那么就必须知道c2的数据链路层地址mac。大家得明白这一点,只有c1知道了c2的mac地址,它才发数据包。现在的问题就是c1如何获得c2的mac地址呢?对,是ARP协议(地址解析协议),c1通过广播发送arp请求包请求ip地址为c2ip地址对应的mac地址。当交换机收到这个arp请求包该如何处理呢?还记得交换机的三大功能么?(1)某公司公司mac地址(2)mac地址的过滤和转发(3)提供冗余能力。所以交换机收到请求包,首先查看cam表中是否有对应的以c1的mac地址为源,以c2mac地址为目的的条目,如果没有的话,则会将包中的源C1 mac地址写入自己的cam表中,并向除了收到此数据包的所有端口洪泛这个数据包,主机C2和c3都可以收到请求数据包,都会查看数据包的内容,c2发现通过查看目的ip地址,发现这个包就是给我的,于是就通过单播发给c1(因为c1发的数据包包括了自己mac地址,所以c2不需要进行arp),交换机收到这个包后,将c2的mac地址写入cam表中,然后将包通过单播发送给c1,这时c1和c2就可以进行通信 了,此时交换收到c1发的数据包直接按照cam表中的对应mac条目转发。
我们假设一下,若交换机的cam表已满,那么过来的非条目的数据包该如何呢?答案是向除了收到数据包的哪个端口全网洪泛,所以如果位于局域网的中的主机C3大量伪造mac地址,并发送出去,那么交换机中的cam表中被填满,新的条目代替了旧的条目。那么交换机再次收到新的包,就会洪泛,那么攻击者只要开启抓包工具,就能获取到局域网中某公司公司主机的通信信息。
讲到这里,大家应该明白了,安全很重要,所以一般交换机都会做端口安全,来防止攻击。
解下来,我们就做一个攻击的实例吧,想必大家都很期待吧,某公司公司。好的,我们先自己搭个攻击的实验环境:
如下图:
我们所用到的环境就是这个环境,首先我们开启VMware某公司公司机,开启windowsxp系统和linux系统,分别将ip地址设在同一个局域网,选用VMnet作为网卡,这些想必大家都会设置,下来我想把本计算机上的GNS的以太路由器开启了telnet服务,并将它连进我们的局域网中,怎么做?GNS中有一个很好的功能就是云,就是它可以连接到VMnet网卡上,这样就处于同一局域网了。步骤如下:
画黄色部分的为了让你看怎么设,接下来我们在使用CRT登录R1,开启配置telnet
配置命令如下:
line vty 0 4
login local
username wang password 0 cisco
配置好,我们应该两台某公司公司机上是不是能telnet
现在局域网是没有任何问题了,为了使实验做的更具有严密性,我们首先在攻击者打开dsniff这个监听工具,然后再XP上去telnet到路由器上,看sniffer会不会抓到包呢?
我们发现,没有抓到包,大家应该知道为什么没有抓到吧(前提条件你必须ping一下) ,现在我们开始在攻击者这边开启图形化界面,多使用几个终端,去使用macof工具进行Mac地址洪泛攻击。
正在攻击,等一会我们在进行,telnet(记得要打开dsniff)
看吧,已经得到了密码了某公司公司
好了就讲到这么多了