zoukankan      html  css  js  c++  java
  • 【网络攻防】ARP欺骗实验

    实验概述

    ARP欺骗是一类地址欺骗类病毒,属于木马病毒,自身不具备主动传播的特性,不会自我复制。但是由于其发作的时候会不断向全网发送伪造的ARP数据包,导致网络无法正常运行,严重的甚至可能带来整个网络的瘫痪。此外,黑客还会通过这种攻击手段窃取用户密码,如盗取QQ密码、盗取各种网络游戏密码和账号、盗窃网上银行账号,给用户造成了很大的不便和巨大的经济损失。因此,它的危害比一些蠕虫病毒还要厉害。
    电脑感染ARP病毒后的表现为:网速时快时慢,极其不稳定,局域网内频繁性区域或整体掉线,重启计算机或网络设备后恢复正常;网上银行、游戏及QQ账号的频繁丢失。随着加密技术的不断提高,ARP病毒在盗取用户账号、密码时遇到了很大的难度。于是又出现了一类新的ARP病毒,该类ARP病毒保留了ARP病毒的基本功能,即向全网发送伪造的ARP欺骗广播,将自身伪装成网关。在此基础上,对用户发出的HTTP请求访问进行修改,在其中插入恶意网址链接,用户在不知情的情况下点击这些链接时,木马病毒就会利用系统漏洞种植到用户电脑中,从而使用户电脑感染病毒。

    实验目的

    1. 掌握ARP协议的基本概念及其缺陷
    2. 认识到ARP欺骗的危害
    3. 掌握ARP欺骗的两种工作原理
    4. 掌握ARP欺骗时表现出的基本特征
    5. 掌握ARP欺骗的防范策略
    6. 学会在现实环境中解决ARP攻击

    实验原理

    一、什么是ARP协议

    ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。我们知道在局域网中,网络以“帧”的形式传输数据。一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址,目标主机的MAC地址理应就包含在数据帧中。显然在双方通信之初,发送方是无法知道目标MAC地址的,它的获得就是通过地址解析这个过程。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

    二、ARP协议的工作原理

    ARP数据包根据接收对象不同,可分为两种:
    1. 广播包(Broadcast)。广播包目的MAC地址为FF-FF-FF-FF-FF-FF,网络设备如交换机接收到广播包后,会把它转发给局域网内的所有主机。
    2. 非广播包(Non-Broadcast)。非广播包后只有指定的主机才能接收到。
    ARP数据包根据功能不同,也可以分为两种:

    1. ARP请求包(ARP Request):作用是用于获取局域网内某IP对应的MAC地址。
    2. ARP回复包(ARP Reply):作用是告知别的主机,本机的IP地址和MAC是什么。
      广播的一般都是ARP请求包,非广播的一般都是ARP回复包。
      我们通过一个案例简单分析一下。假设局域网内有以下两台主机,主机名、IP地址、MAC地址分别如表 12.1.1所示:
      表1 两台主机的IP地址及MAC地址
      表1
      当主机A需要与主机B进行通讯时,它会先查一下本机的ARP缓存中,有没有主机B的MAC地址。如果有就可以直接通讯。如果没有,主机A就需要通过ARP协议来获取主机B的MAC地址。具体做法是主机A会形成一个ARP请求,以物理广播地址在本子网上广播,并等待目的主机的应答。这个请求包含发送方的IP地址、物理地址以及目标主机的IP地址。
      当主机B接收到来自主机A的“ARP广播-请求”数据包后,它会先把主机A的IP地址和MAC地址对应关系保存/更新到本机的ARP缓存表中,然后它会给主机A发送一个“ARP非广播-回复”数据包,当主机A接收到主机B的回复后,它会把主机B的IP地址和MAC地址对应关系保存/更新到本机的ARP缓存表中,之后主机A和B就可以进行通讯了。图 1显示了两台网络设备的ARP表。
      图 1 两台设备的ARP表
      图 1 两台设备的ARP表

    从上述局域网主机通讯过程可以看出,主机在两种情况下会保存、更新本机的ARP缓存表:
    1. 接收到“ARP广播-请求”包时
    2. 接收到“ARP非广播-回复”包时
    通过以上分析我们可以看出,ARP协议是没有身份验证机制的,局域网内任何主机都可以随意伪造ARP数据包,ARP协议设计天生就存在严重缺陷。ARP欺骗的过程基本思路是PC03首先向PC02发送了一个ARP数据包,作用相当于告诉PC02:“我是10.0.0.1,我的MAC地址是03-03-03-03-03-03”,接着他也向GateWay也发送了一个ARP数据包,作用相当于告诉GateWay:“我是10.0.0.2,我的MAC地址是03-03-03-03-03-03”。欺骗成功后,主机PC02与GateWay之间的数据流向,以及它们各自的ARP缓存表就变成如图 2所示:

    图 2 ARP欺骗后的网络设备保存的ARP表
    图 2 ARP欺骗后的网络设备保存的ARP表

    三、ARP欺骗的防范策略

    ARP欺骗木马只需成功感染一台电脑,就可能导致整个局域网都无法上网,严重的甚至可能带来整个网络的瘫痪。
    1、 清空ARP缓存
    点击“开始”按钮->选择“运行”->输入“arp -d”->点击“确定”按钮,然后重新尝试上网,如能恢复正常,则说明此次掉线可能是受ARP欺骗所致。
    2 、个人主机ARP绑定
    通过执行“arp -s 210.31.197.94 00-03-6b-7f-ed-02”,临时绑定主机IP与MAC地址。或者,通过建立一批处理文件,绑定IP和MAC。方法如下:

    @echo off
    arp -d
    arp -s IP MAC
    

    每次开机,计算机都会执行一次静态ARP地址绑定,从而较好地防范ARP欺骗。如果能在机器和路由器中都进行绑定,效果会更好。
    3 采用适当的杀毒与防范软件
    诺顿、卡巴斯基、瑞星等杀毒软件均可查杀此类病毒。蓝盾防火墙、蓝盾UTM、ARP防火墙、风云防火墙等,都是针对性较强的防ARP欺骗攻击软件,可以起到防范甚至追踪ARP攻击源的作用。

    实验环境

    ARP攻击源向服务器发送带有虚假MAC地址信息的ARP包给服务器(靶机),导致服务器收到错误的网路信息(实验拓扑图如下)。

    图 3 实验拓扑图
    图 3 实验拓扑图

    备注:开启靶机windows和linux,在linux终端运行工具ettercap,对windows靶机进行攻击(linux终端运行:ettercap -G)。

    实验步骤

    1. 打开ARP攻击源,在终端中输入ifconfig –a,可以查看攻击源的IP地址、广播地址、子网掩码等攻击源的相关网络信息。(图 4)

    图 4 ARP攻击源相关网络信息
    图 4 ARP攻击源相关网络信息

    1. 在终端中输入ipconfig /all,可以查看靶机的IP地址、广播地址、子网掩码等靶机的相关网络信息。(图 5)
      在windows靶机网络设置中添加DNS:8.8.8.8,并测试靶机能上网后才进行以下实验。

    图 5 靶机相关网络信息
    图 5 靶机相关网络信息

    1. 在靶机终端中输入“ping   172.16.2.254”,可以查看网关的畅通与否。此时再次输入“ping  172.16.2.10”, 可以看到网关可以ping通本网段的其他机器。这里以某一学生的靶机为例子。

    图 6查看网关的畅通与否
    图 6查看网关的畅通与否

    打开浏览器IE,并输入百度的主页网址,结果表明网络畅通(图 7)。

    图 7 网络畅通
    图 7 网络畅通

    1. 在ARP攻击源的linux终端中,输入“sudo ettercap –G”,登录ettercap软件(图8)。

    图 8 登录ettercap
    图 8 登录ettercap

    1. 依次点击:Sniff>Unified sniffing>Network interface中选择当前的网卡(图 9、图 10)。

    图 9 点击sniff
    图 9 点击sniff

    图 10 选择当前网卡
    图 10 选择当前网卡

    1. 扫描该网段的所有主机的相关信息,并显示主机列表。(图 11、图 12、图 13、图 14)

    图 11 选择Scan for hosts
    图 11 选择Scan for hosts

    扫描完成后

    图 12扫描所有主机的相关信息
    图 12扫描所有主机的相关信息

    即可查看扫描到的主机列表:

    图 13 选择Hosts list
    图 13 选择Hosts list

    图 14查看扫描到的主机列表
    图 14查看扫描到的主机列表

    1. 向目标框中添加网关IP和靶机的IP,并执行ARP欺骗:
      选择网关IP MAC 添加 > add to target 1

    图 15 add to target 1
    图 15 add to target 1

    添加目标ip,也就是要欺骗的ip,添加到target 2,如下图 16:

    图 16添加目标ip
    图 16添加目标ip

    跳转到当前的目标,也就是点击targets->current targets,如下图 17:

    图 17跳转到当前的目标
    图 17跳转到当前的目标

    开始Arp欺骗,选择Mitm->Arp poisoning..,进行欺骗,如下图 18:

    图 18选择Mitm->Arp poisoning
    图 18选择Mitm->Arp poisoning

    勾上,点击OK 开始欺骗。

    图19 开始ARP欺骗
    图19 开始ARP欺骗

    1. 回到靶机的终端中,再依次输入“ping –n 5 172.16.2.254”和“ping –n 5 www.baidu.com”,发现网关地址和百度网址都ping不通,打开浏览器IE,并输入百度的主页网址,结果表明此时网络不通畅(图 20、图 21)。

    图20 网关地址无法ping通
    图20 网关地址无法ping通

    图21 网络不通畅
    图21 网络不通畅

    1. 退出 ARP欺骗攻击,在靶机cmd中清理一下ARP缓存“arp -d”,再次测试查看靶机的网络情况(图 22、图 23)

    图22 退出ARP欺骗攻击
    图22 退出ARP欺骗攻击

    图23 查看靶机网络情况
    图23 查看靶机网络情况

    可以看到由于ARP欺骗攻击,会造成靶机的网络瘫痪,由此可见,防范ARP欺骗攻击对于保护自身网络安全的重要性。

    思考总结

    1. ARP协议有哪些缺陷?
    2. ARP欺骗的两种工作原理分别是什么?
    3. ARP欺骗发生时,所表现出的基本特征是什么?
    4. 如何防范ARP欺骗?
  • 相关阅读:
    linux 文件系统管理三部曲之二:创建文件系统
    linux 文件系统管理三部曲之一:磁盘分区
    Django 链接MySQL及数据操作
    redis事务
    redis配置文件详解
    redis中hash数据类型
    redis的基础知识
    redis两种持久化方式RDB和AOF
    git命令
    .gitignore中添加的某个忽略文件并不生效
  • 原文地址:https://www.cnblogs.com/minuy/p/12978408.html
Copyright © 2011-2022 走看看