ARP协议学习
Dolphin,ChinaBJ,20131122
本文档是检验自己学习TCP/IP协议卷1:协议中关于ARP协议的学习情况。本文档包含以下四部分:1、简述ARP协议;2、ARP的分组格式;3、ARP Spoofing 实验 4、应用及防御方法。
1.简述ARP协议
ARP(Address Resolution Protocol)地址解析协议。两台主机相互通信过程中,在网络层上,是用32位的IP地址进行寻址;在数据链路层上,是通过48位的以太网地址来确定目的接口。ARP协议是提供IP地址到MAC地址的动态映射。
1.1 ARP的工作原理
两台主机进行通信时,主机A向主机B发送一个数据报文,在数据报文发送出去之前,主机A先在本地查看ARP缓存表,查看数据报文中目的IP地址相对应的MAC地址;若ARP缓存表中没有对应的记录,则主机A先发送一个广播包,询问这个IP的MAC地址是多少;对应IP的主机,也就是这里的主机B收到这个请求包之后,会给主机A发送一个ARP回应包,告诉它主机B的MAC地址;主机A收到这个回应包之后,便将该条IP-MAC记录添加进ARP缓存表中。在这个表中,每条动态添加的记录有效期为20分钟,而静态添加的记录则为永久。
2.ARP的分组格式
图1 ARP分组格式图
图2 ARP抓包信息
以太网头部中的前两个字段以太网目的地址和以太网源地址都是填入16进制的地址。
帧类型对于APR来说是0x0806,这是固定的值;
硬件类型表示硬件地址的类型,值为1表示以太网地址。协议类型字段表示要映射的协议地址类型,值为0x0800的类型为IP地址;
硬件地址长度与协议地址长度,以字节为单位;
操作码,1表示ARP请求,2表示ARP应答;
接下来的四个字段相信大家都很熟悉了,我就不做解释了。大家可以通过图2的抓包信息详细了解ARP的数据包。图2的抓包信息是用wireshark工具的抓包结果。
3.ARP Spoofing 实验
ARP Spoofing实验带有一定的***性,在此仅用于研究ARP协议,请勿乱用。该部分实验包括以下四个部分:1、实验环境 2、实验步骤 3、实验结果 4、结论
第1章
第2章
第3章
3.1 实验环境
硬件:主机两台,一台路由器
操作系统:WIN 7 和WIN XP
工具:XCAP v0.4.7、Wiresharkv1.10.3
主机名 | IP地址 | MAC地址 |
hostA | 172.16.16.10 | 00-CC-22-BB-66-EE |
hostB | 172.16.16.102 | 00:0C:29:BA:6C:E3 |
gw | 172.16.16.1 | 78-AA-00-BB-33-EE |
表1
3.2 实验步骤
1、用wireshark工具抓包
我们可以先用wireshark这个工具抓包,观察ARP数据包中每个字段的值,哪些是固定的,哪些是可变的,然后再构造我们需要的ARP包。如图3,是我们的抓包结果。
图3 wireshark抓包信息
2、构造ARP数据包
我们用XCAP这个工具来构造我们的ARP数据包。
序号 | 类型 | 源IP | 源MAC | 目的IP | 目的MAC | 操作码 |
1 | ARP请求包 | 172.16.16.1 | AA-AA-AA-AA-AA-AA | 172.16.16.102 | FF-FF-FF-FF-FF-FF | 1 |
2 | ARP回应包 | 172.16.16.1 | AA-AA-AA-AA-AA-AA | 172.16.16.102 | 00:0C:29:BA:6C:E3 | 2 |
表2
3、查看ARP缓存表
在windows系列操作系统中,点击开始→运行→输入cmd→输入arp -a 命令查看。如图4所示为主机B的ARP缓存表。
图4 主机B的ARP缓存表
4、发送ARP欺骗包
用XCAP发送我们已经构造好的ARP欺骗包。
5、再次查看ARP缓存表
用XCAP发送ARP欺骗包,发送一段时间之后,再次回到主机B查看ARP缓存,看网关的MAC地址是否已经被成功篡改。
3.3 实验结果
图5 第一组ARP测试结果
图6 第二组ARP测试结果
从以上结果可以看出,第一组构造的ARP欺骗包并没有发生作用,而第二组ARP欺骗包则成功篡改了主机B上的IP-MAC地址记录,将网关的MAC地址成功篡改为AA:AA:AA:AA:AA:AA 。当主机B接收到ARP回应包时,就会对自己的ARP缓存表进行更新,而不会管这个回应包是否是伪造的。
3.4 结论
主机收到ARP的回应包就会更新自己的ARP缓存表,而没有判断这个回应包是否是伪造的,从而导致可以利用发送ARP回应包进行ARP欺骗***。
4.应用及防御方法
第4章
4.1 应用
关于ARP***,常见的应用有以下几个:
1、盗号***首先运行ARP***,使你与游戏断开连接,在你重新连接的时候,采用键盘记录器或者其他方法将你的游戏帐号,密码给记录下来,并发送到指定的服务器上,从而盗取你的虚拟财产;
2、网管软件限制未经许可接入网络的主机与Internet相连。
3、进行信息嗅探,将目标的MAC地址更改为自己的MAC地址,从而捕获发往该目标主机的信息,进行信息收集。
4、进行“Man in the middle”***。
还有很多方面的应用,在此就不多说了。
4.2 防御
1、将常用的IP地址进行MAC绑定,即配置静态MAC,可用命令,arp -s 来完成;
2、安装ARP防火墙;
3、清除ARP缓存表(arp -d ),此方法治标不治本;
4、安装杀毒软件,定期更新病毒库,定期查杀病毒。
转载于:https://blog.51cto.com/1429223/1330344
相关文章:

数学,对人工智能开发者意味着什么
21世纪以来,全球化的加速和互联网的蓬勃发展,带来全球范围内电子数据的爆炸性增长,人类迈入了大数据时代。与此同时,计算机芯片的计算能力也持续高速增长。在数据和计算能力指数式增长的支持下,人工智能算法在应用中取…

检查网站是否可以正常访问
# -*- coding: utf-8 -*-import urllib.request import time opener urllib.request.build_opener() opener.addheaders [(User-agent, Mozilla/49.0.2)] #文件格式http://www.baidu.comfile open(E:/auto/url.txt) lines file.readlines() aa[] for line in lines: templ…

使用.NET自带的类实现DataGrid报表的打印。
using System;using System.Windows.Forms;using System.Drawing;using System.Drawing.Printing;using System.Data;using System.Collections;using DataLibrary; namespace ControlLibrary{ /// <summary> /// DataGrid打印 /// </summary> public class DataG…

各种 AI 数据增强方法,都在这儿了
来源 | 算法进阶责编 | 寇雪芹头图 | 下载于视觉中国数据、算法、算力是人工智能发展的三要素。数据决定了Ai模型学习的上限,数据规模越大、质量越高,模型就能够拥有更好的泛化能力。然而在实际工程中,经常有数据量太少(相对模型而言)、样本不…

ORACLE11g 前期安装环境配置
Linux系统可以拿来直接用的脚本哦#!/bin/bashservice iptables stop &> /dev/nulliptables -F service iptables save &> /dev/nullsed -i s/enforcing/disabled/ /etc/selinux/configsetenforce 0sed /tmpfs/d /etc/fstab &> /dev/nullecho tmpfs …

linux mysql 卸载,安装,測试全过程
Mysql卸载yum remove mysql mysql-server mysql-libs compat-mysql51rm -rf /var/lib/mysqlrm /etc/my.cnf查看是否还有mysql软件:rpm -qa|grep mysql有的话继续删除Mysql安装1>若本地没有安装包 能够考虑使用yum命令进行下载# yum -y install mysql-server# yum…

C#中获取程序当前路径的集中方法
string str1 Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名。 string str2Environment.CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。//备注 按照定义,如果该进程在本…

如何开启远程(win7win8)
如何开启远程连接点击我的电脑-属性-高级系统设置-远程-选中“允许远程连接到此计算机”-应用-确定。在局域网内,拥有固定IP的话,就很容易远程处理事情了。若经过此步骤还不能远程的话,则需要查看系统是否开启了远程服务。“我的电脑”--管理…

微软推出“ Group Transcribe”应用,多人多语言会议实时高准确度文字转录并翻译
近期,微软针对面对面对话和会议推出了免费实时语音到文字转录和翻译应用程序——Group Transcribe。一方面,Group Transcribe可以通过手机把会议的语音内容实时转录为文本,供与会者阅读和浏览。 另一方面,在实时交流过程中&#x…

STM32单片机外部中断配置讲解
2019独角兽企业重金招聘Python工程师标准>>> 单片机外部中断简介 所谓外部中断,就是通过外部信号所引起的中断,如单片机引脚上的电平变化(高电平、低电平)、边沿变化(上升沿、下降沿)等。51单片机有5个中断源,其中有两个是外部中断…

Android语音信号波形显示
简单地介绍了AudioRecord和AudioTrack的使用,这次就结合SurfaceView实现一个Android版的手机模拟信号示波器(PS:以前也讲过J2ME版的手机示波器)。最近物联网炒得很火,作为手机软件开发者,如何在不修改手机硬件电路的前提下实现与第…

科研费4年翻3倍,全球科研队伍突破8000人,滴滴致力打造出行领域核心技术
日前,十三届全国人大四次会议表决通过了《国民经济和社会发展第十四个五年规划和2035年远景目标纲要》(下称《规划》)。《规划》强调要坚持创新在我国现代化建设全局中的核心地位,把科技自立自强作为国家发展的战略支撑。 《规划…

c++ 继承访问控制初步
访问控制方式这里有篇很好的文章,其实内容也是总结cprimer上的内容 现在就按照这篇的文章举例进行学习. 思路 不同继承方式的影响主要体现在: 1、派生类成员对基类成员的访问控制。 2、派生类对象对基类成员的访问控制 三种继承方式 公有继承(public) 所有public和p…

Excel在.Net 环境下Web方式下驻留内存问题的解决
这段时间在VS 2003 的WebForm 方式下对Excel 进行操作,遇到一个最为头疼的问题就是对Excel操作完毕后Excel不能够正常关闭,系统退出后,Excel总是驻留在内存中。但是这段代码放到WinForm的程序中又没有问题。在网上进行了查找也没有找到有效可…

2.8 FSM之Moore和Mealy part3
来看看我们的Mealy机的设计吧~~。Mealy机的想法起源于:这里我们有输入,并且根据相应的输入我们的字符识别机能做出相应的应答也就是输出。所以我们为何不把输入和输出同时表达出来呢?这样我们就能把输出和抽象的状态分离出来。好处第一就是我…

对标GPT-3、AlphaFold,智源研究院发布超大规模智能模型系统“悟道1.0”
出品 | AI科技大本营(ID:rgznai100)3月20日,北京智源人工智能研究院发布我国首个超大规模智能模型系统“悟道1.0”。“悟道1.0”由智源研究院学术副院长、清华大学唐杰教授领衔,带领来自北京大学、清华大学、中国人民大学、中国科…

TCP Cluster for mqtt 技术实施方案
最前沿的网络技术,为你的网站带来国际化的用户体验和易用性,这一切只有Witmart.com能做到。

两台SQL Server数据同步解决方案
复制的概念复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式。使用复制技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。复制技…

一个用微软官方的OpenXml读写Excel 目前网上不太普及的方法。
新版本的xlsx是使用新的存储格式,貌似是处理过的XML。 传统的excel处理方法,我真的感觉像屎。用Oldeb不方便,用com组件要实际调用excel打开关闭,很容易出现死。 对于OpenXML我网上搜了一下,很多人没有介绍。所以我就这…

分析6千万条GitHub帖子,发现你的工作状态与表情符号强相关
作者 | 凌霄出品 | AI科技大本营(ID:rgznai100)新冠疫情使得远程办公的人数大幅度增加,然而,当越来越多的人远程工作时,人们的情绪和心理健康状态也难以通过日常面对面的交流来观察,雇主们也就无法获得员工…

软件定义网络 对我们有多重要?
软件定义网络(简称SDN)属于网络流量控制的下一个步骤。Tech Pro Research发布的调查报告正是以此为中心,旨在为我们展示企业如何使用SDN方案。 过去几年以来,以更为高效方式管理环境的需求正快速普及,这也使得网络领域的更高灵活性与控制手段…

SQL Server数据库六种数据移动方法
1. 通过工具DTS的设计器进行导入或导出DTS的设计器功能强大,支持多任务,也是可视化界面,容易操作,但知道的人一般不多,如果只是进行SQL Server数据库中部分表的移动,用这种方法最好,当然&#x…

[企业化NET]Window Server 2008 R2[3]-SVN 服务端 和 客户端 基本使用
1. 服务器基本安装即问题解决记录 √ 2. SVN环境搭建和客户端使用 2.1 服务端 和 客户端 安装 √ 2.2 项目建立与基本使用 √ 2.3 基本冲突解决,并版,tags 3. 数据库安装 4. 邮件服务器搭建 5. JIRA环境搭建和使用 6. CC.NET项目持续发布工具…

又一个Jupyter神器,操作Excel自动生成Python代码
来源 | Python数据科学(ID: PyDataScience)不得不说,Jupyter对于表的处理真的是越来越方便了,很多库可以直接实现可视化操作,无需写代码。但是这还不够,最近看到一个神器叫Mito,它真的是做到了无…

CIR:2020年全球数据中心应用AOC市场达$42亿
未来十年,QSFP和CXP将占有源光缆销售收入的大部分。到2020年,QSFP和QSFP28销售收入将分别达到7.27亿美元和7.41亿美元。 根据CIR(CommunicationsIndustryResearchers)的最新报告(《2015有源光缆市场:数据中心和高性能计算市场》),…

Visual C#创建资源文件
资源文件顾名思义就是存放资源的文件。资源文件在程序设计中有着自身独特的优势,他独立于源程序,这样资源文件就可以被多个程序使用。同时在程序设计的时候,有时出于安全或者其他方面因素的考虑,把重要东西存放在资源文件中&#…

给IIS添加CA证书以支持https
一、在IIS中生成Certificate Signing Request (CSR) 个人理解:生成CSR就是生成“私钥/公钥对”之后从中提取出公钥。 1. 打开IIS Manager,在根节点中选择Server Certificates(服务器证书),点击右侧的Create Certificat…

MathWorks的AI之路:面向工业场景,打通开发到部署的全链路
作者 | 阿司匹林 AI正在快速发展,并在更多的领域落地。对于MATLAB和Simulink的开发商MathWorks来说,把握AI的机会,显得尤为重要。 不少人对MATLAB等的印象依然停留在学校期间学习的高级线性代数解题器的阶段。然而,MATLAB在几年前…

《Android应用开发攻略》——1.3 从命令行创建 “Hello, World”应用程序
1.3 从命令行创建 “Hello, World”应用程序 Ian Darwin1.3.1 问题你想在不使用Eclipse ADT插件的情况下创建新的Android项目。1.3.2 解决方案使用Android开发工具包(Android Development Kit,ADK)中的android工具,利用creat proj…