利用Abel_Cain软件实现ARP欺骗
实验目的1.理解ARP协议;
2.了解Abel&cain软件的使用;
3.利用Abel&cain软件在局域网中进行ARP欺骗。
预备知识ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
局域网中的主机1与主机2通信,主机1会先发送ARP请求包(请求包中有2的IP地址),2发送ARP响应包给1,1获得主机A的MAC地址,1利用MAC地址给2传输数据。这里主机A通过使用Abel&cain软件,主动给目标B发送ARP回应包(数据包中携带IP为网关的IP,MAC是A主机的MAC),让目标B更新自己的ARP缓存表。更新后B本地ARP表中网关的MAC地址就是主机A的MAC地址,在主机B看来网关就是A,达到欺骗局域网中某个特定目标的目的。
实验环境网络拓扑见下图,局域网中的两台电脑A、B,主机A(安装Abel&cain软件)是发起ARP的攻击者,B是ARP被欺骗方。通过对B进行ARP欺骗,让B认为A就是网关:
主机A:winxp IP地址:10.1.1.39
主机B:win2003 IP地址:10.1.1.231
实验步骤一在主机A上安装Abel&Cain软件
(1)双击桌面文件夹“利用Abel&Cain软件实现ARP欺骗”里面的“ca_setup_53494.exe”,点击“Next”。
(2)点击“Next”。
(3)选择安装路径,点击“Next”。
(4)点击“Next”。
(5)点击“finish”。
(6)询问是否安装WinPap,WinPcap是底层的抓包工具,选择“install”。
(7)弹出下图界面,点击“Next”。
(8)点击“Next”。
(9)点击“Agree”。
(10)点击“install”。
(11)安装完毕,finish,会在桌面上生成“Cain”快捷方式。
实验步骤二
在主机A上对主机B进行ARP欺骗
(1)双击启动Abel&cain软件,点击configure,手动选网卡。
点击sniffer选项卡。
(2)先点击左上角按钮,启用sniffer,然后在空白区右键选择“Scan Mac Addresses”,扫描局域网中的主机。
(3)下图选择默认,点击“OK”。
(4)下图显示了局域网中的主机情况。
(5)点击左下角“ARP”选项,然后点击红色方框空白区域,此时左上角的“+”图标会变深色,点击“+”图标。
(6)在窗口左边显示了局域网中的主机和网关,我们点击ARP被欺骗主机(即主机B,IP:10.1.1.231)。
(7)在右侧部分,我们点击10.1.1.90(即网关),点击“OK”。左侧部分表示对哪一个主机进行欺骗,在这里我们选择10.1.1.231(即主机B);右侧部分表示Abel&cain进行伪造的主机,在这里我们选择网关即运行Abel&cain的主机(这里是A)要冒充网关。对B(10.1.1.231)进行ARP欺骗,欺骗的结果是主机B会认为网关是运行Abel&cain软件的主机(即主机A)。在右侧部分选择的主机,就是Abel&cain进行伪造的对象。
(8)点击左上角的图标,开始对主机B(10.1.1.231)进行欺骗。
(9) 我们先在主机B上ping一下主机A,然后在cmd窗口输入“arp -a”。此时,在主机B看来,网关的MAC地址就是主机A的MAC地址了。主机B会把A作为网关,如下图所示。
主机B发往外界的数据包,会经过主机A,至此就完成了对主机B的ARP欺骗。
实验步骤三在主机A上对主机B进行DNS欺骗
(1)在ARP欺骗的基础上,我们进入dns欺骗。
(2)首先在主机B上ping tools.hetianlab.com,此时解析到10.1.1.254
(3)打开tools.hetianlab.com/,可以看到apache的默认主页。
(4)访问tools.hetianlab.com/tools,可以看到一些工具。
(5)然后进入主机A,来到ARP欺骗界面。
(6)在空白区域右击,选择“Add to list”。“DNS Name Requested”表示对方(主机B)输入的url,下面的IP栏表示要将对方输入的url解析成的IP。这里我们输入的是“10.1.1.39”。
(7)我们在10.1.1.39上搭建了一个web服务器,并且有配置tools.hetianlab.com的域名,可以在配置文件C:\xampp\xampp\apache\conf\extra\httpd-vhosts.conf 里可以看到。
在主机B*问“tools.hetianlab.com”时,会自动跳转到10.1.1.39指定的服务器页面上。该页面是模仿的百度首页。
(8)此时Abel&cain的状态如下图。
(9)在主机B上ping tools.hetianlab.com,可以看到,此时该域名已经指向了10.1.1.39
(10)访问“tools.hetianlab.com”,查看结果。
(11)而如果此时再访问tools.hetianlab.com/tools,会提示404。
(12)如果做一个WEB认证的钓鱼网站,当对方登陆某WEB认证网站的时候发送的WEB认证信息将转到你的钓鱼网站上。这个问题就大了,建议加强安全意识,提高安全措施。
实验步骤四在主机A上查看主机B的http数据包
(1)进入左下角的“Passwords”项,点击左侧“HTTP”,就可以监视主机B在进行HTTP请求时输入的用户名密码情况。
(2)我们在主机B上,访问 tools.hetianlab.com/login.php(在没有开始DNS欺骗之前,访问该页面会提示404)
(3)这里我们输入用户名:username,密码:pass,点击“登陆”。在主机A上即可看到输入情况,但这里不保证用户输入的是正确的用户名和密码,这里只是拿到了用户名输入的数据而已。对于我们这里伪造的“tools.hetianlab.com”我们拿到的用户名、密码是明文,但大部分其他网站数据是加过密的,如126邮箱等。
1)怎样发现局域网中存在的ARP欺骗。
ARP欺骗仅存在于局域网中,局域网是依赖MAC地址作为源地址、目的地址来传输数据帧的。由于网络层通过IP地址传输数据包,因此在局域网传输数据过程中需要将IP地址转为对应的MAC地址用于数据帧传输,负责这项工作的就是ARP协议。在IP地址转MAC地址时首先查找本机的ARP缓存,如果找不到请求的目标IP对应的MAC地址,则广播ARP request包请求解析该IP对应的MAC地址,局域网中所有的设备均能收到到该广播包,当某设备发现该包的目的IP是自己时,便发送ARP reply包回答对方自己的MAC地址。局域网中每一个ARP包(无论request、还是reply),都包含源IP地址、源MAC地址、目的IP地址、目的MAC地址。改变源IP地址、源MAC地址或目的IP地址、目的MAC地址间的对应关系也就实现了ARP欺骗。而在局域网中任意构造一个ARP包都可以更新PC端腁RP缓存。这样就导致局域网ARP欺骗很容易实现,检查ARP欺骗存在的关键也就在于检查ARP缓存中的IP-MAC对应关系是否正确。
2)思考怎样防止ARP欺骗。
实际网络中存在多样的欺骗方式,但都是通过广播精心构造的ARP包来修改PC端ARP缓存中的IP-MAC对应关系,只是选择了修改“源IP地址、源MAC地址、目的IP地址、目的MAC地址”其中某项实现欺骗目的
1、PC端:
如果是windows系统在cmd模式下,执行arp-a,显示当前系统ARP缓存表,检查缓存中的IP-MAC对应关系是否正确,正常情况下IP-MAC是一一对应的。另外可先使用arp-d清除当前ARP缓存表,再开始观察是否存在ARP欺骗的情况。如果是unix/linux客户端,使用/etc/arp -a检查ARP缓存信息。
2、网络设备端:
通过show arp命令检测ARP缓存信息。如果某MAC地址对应多个IP地址,则说明该MAC地址的PC正在广播ARP欺骗包(如果某设备存在多IP地址,这种情况是正常的)。另一种恶意欺骗是该MAC地址在局域
网中根本就不存在。