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上安装Abel&Cain软件
(1)双击桌面文件夹“利用Abel&Cain软件实现ARP欺骗”里面的“ca_setup_53494.exe”,点击“Next”。
选择安装路径,点击“Next”。
询问是否安装WinPap,WinPcap是底层的抓包工具,选择“install”。
在主机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欺骗。
被欺骗的主机MAC地址变成了欺骗的主机的MAC地址
2)思考怎样防止ARP欺骗。
防范:
①不要把网络的安全信任关系仅建立在IP基础上或MAC基础上,而是应该建立在IP+MAC基础上(即将IP和MAC两个地址绑定在一起)
②设置静态的MAC地址到IP地址对应表,不要让主机刷新设定好的转换表
③除非很有必要,否则停止使用ARP,将ARP作为永久条目保存在对应表中
④使用ARP服务器,通过该服务器查找自己的ARP转换器来响应其他机器的ARP广播,确保这台ARP服务器不被攻击
⑤使用proxy代理IP的传输
⑥使用硬件屏蔽主机,设置好路由,确保IP地址能到达合法的途径
⑦管理员应定期从响应的IP包中获得一个ARP请求,然后检查ARP响应的真实性
⑧管理员要定期轮询,检查主机上的ARP缓存
⑨使用防火墙连续监控网络