转载请注明来源:https://www.cnblogs.com/hookjc/

本机IP:192.168.0.1 (c0 a8 00 01)
本机MAC:00-50-56-c0-00-01

目标IP:192.168.0.2 (c0 a8 00 02)
目标MAC:00-0c-29-0b-42-7e

1、  Ping 目标主机192.168.0.2时,本机发送的ARP数据包为
00000000 : ff ff ff ff ff ff 00 50 56 c0 00 01 08 06 00 01
00000010 : 08 00 06 04 00 01 00 50 56 c0 00 01 c0 a8 00 01
00000020 : 00 00 00 00 00 00 c0 a8 00 02

以太网数据包发送目的地:ff ff ff ff ff ff(全网)
以太网数据包发送源:00 50 56 c0 00 01(本机)
以太网数据包数据包内容类型:08 06(ARP数据包)
ARP数据包类型:00 01(Request)
数据内容:告诉IP为c0 a8 00 02的目标主机,本机的IP为c0 a8 00 01,MAC为
00 50 56 c0 00 01,请更新,并将你的MAC发送给我。

目标主机回应本机的ARP数据包为
00000000 : 00 50 56 c0 00 01 00 0c 29 0b 42 7e 08 06 00 01
00000010 : 08 00 06 04 00 02 00 0c 29 0b 42 7e c0 a8 00 02
00000020 : 00 50 56 c0 00 01 c0 a8 00 01

以太网数据包发送目的地:00 50 56 c0 00 01
以太网数据包发送源: 00 0c 29 0b 42 7e
以太网数据包数据包内容类型:08 06(ARP数据包)
ARP数据包类型:00 02(Reply)
数据内容:告诉MAC为    00 50 56 c0 00 01 的主机,你的IP和MAC我已经收到,我的MAC和IP为00 0c 29 0b 42 7e 和c0 a8 00 02,请保存更新。

2、  修改系统IP时(未发生IP冲突的情况下),发送的ARP数据包为
00000000 : ff ff ff ff ff ff 00 0c 29 0b 42 7e 08 06 00 01
00000010 : 08 00 06 04 00 01 00 0c 29 0b 42 7e c0 a8 00 03
00000020 : 00 00 00 00 00 00 c0 a8 00 03

以太网数据包发送目的地:ff ff ff ff ff ff(全网)
以太网数据包发送源:00 0c 29 0b 42 7e(本机)
以太网数据包数据包内容类型:08 06(ARP数据包)
ARP数据包类型:00 01(Request)
数据内容:告诉IP为c0 a8 00 03的主机,本机的MAC和IP为00 0c 29 0b 42 7e 和c0 a8 00 03。由于网络内没有c0 a8 00 03 主机,所以此数据包将不会有回应,此时,局域网交换机将会刷新缓存,使你的IP和MAC对应起来。

3、  修改系统IP时(发生IP冲突的情况下),发送的ARP数据包为
00000000 : ff ff ff ff ff ff 00 0c 29 0b 42 7e 08 06 00 01
00000010 : 08 00 06 04 00 01 00 0c 29 0b 42 7e c0 a8 00 01
00000020 : 00 00 00 00 00 00 c0 a8 00 01

以太网数据包发送目的地:ff ff ff ff ff ff(全网)
以太网数据包发送源:00 0c 29 0b 42 7e
以太网数据包数据包内容类型:08 06(ARP数据包)
ARP数据包类型:00 01(Request)
数据内容:告诉IP为c0 a8 00 01的主机,本机的MAC和IP为00 0c 29 0b 42 7e 和c0 a8 00 01。由于网络内已经有c0 a8 00 01 主机,将会发生冲突。这时将收到ARP Reply数据包。

接收的ARP数据包为
00000000 : 00 0c 29 0b 42 7e 00 50 56 c0 00 01 08 06 00 01
00000010 : 08 00 06 04 00 02 00 50 56 c0 00 01 c0 a8 00 01
00000020 : 00 0c 29 0b 42 7e c0 a8 00 01

以太网数据包发送目的地:00 0c 29 0b 42 7e
以太网数据包发送源:00 50 56 c0 00 01
以太网数据包数据包内容类型:08 06(ARP数据包)
ARP数据包类型:00 02(Reply)
数据内容:告诉MAC为00 0c 29 0b 42 7e的主机,本机的MAC和IP为00 50 56 c0 00 01和 c0 a8 00 01。这时MAC 为42 7e c0 a8 00 01的主机收到这个包后,并知道他的IP与其它主机冲突了。

4、  伪造ARP数据包
向目标MAC发送伪造的ARP Reply,告知一个假的信息,达到欺骗的目的。
本机真实IP为:192.168.0.1(c0 a8 00 01)
本机真实MAC为:00-50-56-c0-00-01
伪造的MAC为:11-11-11-11-11-11

欺骗目标:
IP为:192.168.0.2(c0 a8 00 02)
MAC:00-0c-29-0b-42-7e

伪造的数据包如下:
Packet length: 60
00000000 : 00 0c 29 0b 42 7e 11 11 11 11 11 11 08 06 00 01
00000010 : 08 00 06 04 00 02 11 11 11 11 11 11 c0 a8 00 01
00000020 : 00 0c 29 0b 42 7e c0 a8 00 02(剩余部分用0填补)

来源:python脚本自动迁移

ARP数据包分析的更多相关文章

  1. 01、WireShark——ARP 协议包分析

     1. 什么是ARP ARP(Address Resolution Protocol)协议,即地址解析协议.该协议的功能就是将 IP 地 址解析成 MAC 地址. ARP(Address Resolu ...

  2. WireShark——ARP 协议包分析

     1. 什么是ARP ARP(Address Resolution Protocol)协议,即地址解析协议.该协议的功能就是将 IP 地 址解析成 MAC 地址. ARP(Address Resolu ...

  3. 《Wireshark数据包分析实战》 - http背后,tcp/ip抓包分析

    作为网络开发人员,使用fiddler无疑是最好的选择,方便易用功能强. 但是什么作为爱学习的同学,是不应该止步于http协议的,学习wireshark则可以满足这方面的需求.wireshark作为抓取 ...

  4. WireShark数据包分析数据封装

    WireShark数据包分析数据封装 数据封装(Data Encapsulation)是指将协议数据单元(PDU)封装在一组协议头和尾中的过程.在OSI七层参考模型中,每层主要负责与其它机器上的对等层 ...

  5. 可视化数据包分析工具-CapAnalysis

    可视化数据包分析工具-CapAnalysis 我们知道,Xplico是一个从pcap文件中解析出IP流量数据的工具,本文介绍又一款实用工具-CapAnalysis(可视化数据包分析工具),将比Xpli ...

  6. snmp数据包分析

    今天看了一下snmp数据包的报文格式,用wireshark抓了两个数据包来分析. 先说说snmp get-request的书报包格式吧,get-next-request,get-response,se ...

  7. tcprstat源码分析之tcp数据包分析

    tcprstat是percona用来监测mysql响应时间的.不过对于任何运行在TCP协议上的响应时间,都可以用.本文主要做源码分析,如何使用tcprstat请大家查看博文<tcprstat分析 ...

  8. firebug登陆之数据包分析

    登陆之数据包分析 工具: python-urllib2   |  firefox+firebug或者chrome,用浏览器打开登陆页面之后,按F12键会默认打开开发者工具或者启动firebug,点击n ...

  9. Wireshark数据包分析(一)——使用入门

    Wireshark简介: Wireshark是一款最流行和强大的开源数据包抓包与分析工具,没有之一.在SecTools安全社区里颇受欢迎,曾一度超越Metasploit.Nessus.Aircrack ...

随机推荐

  1. 在pycharm中创建py文件——创建你的第一个项目

    开启编程第一步   创建一个项目 创建项目了xdm,敲黑板了哈 首先打开你的pycharm,点击New Project新建项目 就会进入到配置你这个项目所要用到的环境,这里我们用python列举 在L ...

  2. 使用tomcat搭建HTTP文件下载服务器

    使用tomcat搭建HTTP文件下载服务器, 有时我们的应用或者服务需要去外网下载一些资源, 但是如果在内网环境或者网络不好的情况下, 我们可以在内网提供文件下载服务, 将预先下载好的资源放在某个地方 ...

  3. .NetCore下构建自己的服务配置中心-手动造轮子

    本人主要利用IdentityServer4以及SignalR来实现,IdentityServer4作为认证,SignalR来交互配置,这里一些代码可能就是部分提出来,主要介绍实现原理及方法 实现配置中 ...

  4. git clone 失败 ,提示 fatal: unable to access 'https://github.com/xxx.git/': OpenSSL SSL_read: Connection was reset, errno 10054

    怎么解决? 把原来的指令 $ git clone https://github.com/cen-xi/express.git 改成 $ git clone git://github.com/cen-x ...

  5. let var const 区别

    let es6 语法 let是作用域是块级的,即{}内的范围 如果未声明变量就使用的话,报错ReferenceError,而var则会报错undefined(不存在变量提升) 只要块级作用域内存在le ...

  6. Linux上天之路(七)之Vim编辑器

    vim 是 "vimsual interface IMproved"的简称,它可以执行输出.删除.查找.替换.块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他 ...

  7. SpringBoot学习笔记四之后台登录页面的实现

    注:图片如果损坏,点击文章链接: https://www.toutiao.com/i6803542216150090252/ 继续之前完成的内容,首先创建一个常量类 常量类的内容 服务器端渲染 前后端 ...

  8. Angularjs实现下拉列表排序

    <select class="form-control underline" ng-model="reportform.score" ng-options ...

  9. POJ 1664 放苹果 (递推思想)

    原题链接:http://poj.org/problem?id=1664 思路:苹果m个,盘子n个.假设 f ( m , n ) 代表 m 个苹果,n个盘子有 f ( m , n ) 种放法. 根据 n ...

  10. Java 中如何实现线程间通信

    世界以痛吻我,要我报之以歌 -- 泰戈尔<飞鸟集> 虽然通常每个子线程只需要完成自己的任务,但是有时我们希望多个线程一起工作来完成一个任务,这就涉及到线程间通信. 关于线程间通信本文涉及到 ...