linux下发各种协议包及其详细分析

编程入门 行业动态 更新时间:2024-10-18 12:32:55

linux下发各种<a href=https://www.elefans.com/category/jswz/34/1771197.html style=协议包及其详细分析"/>

linux下发各种协议包及其详细分析

申明:本实验在一个虚拟机环境下完成,ip分别为192.168.26.1和192.168.26.132。

 

一、 以太帧格式的分析

1. 抓取方法描述

 

Ø 在192.168.26.132浏览网页产生数据包;

Ø 通过wireshark抓取数据包;

Ø 分析以太帧格式;

 

2. 记录抓取的过程

Ø 打开wireshark,开始抓包;

 

 

Ø 访问;

 

 

Ø 停止抓包;

 

 

Ø 得到很多包,以这一个包为例进行分析;

 

 

3. 抓取数据的内容

 

 

4. 抓取数据的格式解释(可直接在抓取数据的内容旁边标注)

 

l 源MAC地址:00:0c:29:8d:df:77

l 目的MAC地址:00:50:56:e2:2e:3d

l 类型:Type: IP (0x0800)

l 以太帧类型:ethernet II;

 

l 长度:437;

l 校验和:0x01a6;

 

 

5. 补充说明(如果有需要补充的内容写在这)

在以太网链路上的数据包称作以太帧。以太帧起始部分由前导码和帧开始符组成。后面紧跟着一个以太网报头,以MAC地址说明目的地址和源地址。帧的中部是该帧负载的包含其他协议报头的数据包(例如IP协议)。以太帧由一个32位冗余校验码结尾。它用于检验数据传输是否出现损坏。

以太帧有很多种类型。不同类型的帧具有不同的格式和MTU值。

① 以太网第二版[note 3] 或者称之为Ethernet II 帧,DIX帧,是最常见的帧类型。并通常直接被IP协议使用。

② Novell的非标准IEEE 802.3帧变种。

③ IEEE 802.2 逻辑链路控制 (LLC) 帧。

④ 子网接入协议(SNAP)帧。

在本例中,显然是第一种以太帧:

 

 

二、 ARP协议的分析

1. 抓取方法描述

Ø 利用linux下开源工具nping发送arp包;

Ø 同时用wireshark抓包,得到arp请求包,arp应答包,无故arp包;

Ø 分析数据包各字段内容;

Ø 向主机192.168.26.1发送伪造的arp报文,使其不能上网。

 

2. 记录抓取的过程

Ø 在192.168.26.132上使用nping命令构造一个arp请求包请求192.168.26.1的mac地址;

 

 

Ø 利用wireshark抓包,观察可以看到发出去的广播数据包得到回应;

 

 

Ø 同理,利用nping发送无故arp包观察结果;

 

 

Ø 使用wireshark抓包,可以看到wireshark抓到并提示为无故arp包(Gratuitous ARP for 192.168.26.132);

 

 

3. 抓取数据的内容

 

 

4. 抓取数据的格式解释(可直接在抓取数据的内容旁边标注)

l 分别指出ARP请求数据包和应答数据包中各个字段的内容

l 指出ARP请求报文和应答报文的发送方式

Ø ARP请求报文 

 

ARP请求报文 以广播方式发送,硬件类型(hardware type)是以太网(1)。协议类型(protocol  type)为0x0800,表示使用ARP的协议类型为IPV4。硬件地址长度(hardware size)为6。协议地址长度(protocol size)为4,操作类型(opcode)为1,表示报文类型为ARP请求。发送方硬件地址(sender  MAC  address)为00:0c:29:8d:df:77。发送方IP地址(sender  IP  address)为192.168.26.132。目的硬件地址(target  MAC  address)为ff:ff:ff:ff:ff:ff。目的IP地址(target  IP  address)为192.168.26.1。 

Ø ARP应答报文 

 

ARP应答报文 以单播播方式发送,硬件类型为以太网。协议类型为IP(0x0800)。硬件地址长度为6,协议地址长度为4,操作类型为2,表示为ARP应答报文。发送方硬件地址为00:50:56:c0:00:08,发送方IP地址为192.168.26.1。目的硬件地址为00:0c:29:8d:df:77,目的IP地址为192.168.26.132。

 

5. 请说明你是如何伪造ARP报文使某台计算机不能上网的,以及是否成功?

这次实验的环境是虚拟机局域网中的3台主机,IP地址分别为192.168.26.1,192.168.26.130,192.168.26.132,操作系统分别为windows7,windows server 2003,linux,mac地址分别为00:50:56:c0:00:08,00-0c-29-56-45-aa,00-0c-29-8d-df-77,路由器IP为192.168.26.2,mac地址为00-50-56-e2-2e-3d。

  




Ø 在192.168.26.130上面启动路由功能;

  

Ø 清除192.168.26.132上面的arp缓存,然后建立192.168.26.1的正常映射;

 

 

Ø 利用arpspoof工具欺骗192.168.26.132,指定192.168.26.1的mac地址为00-0c-29-8d-df-77;

 

 

Ø 再次查看192.168.26.132上面的arp缓存表,可以明显的看到192.168.26.1的mac地址映射为00-0c-29-8d-df-77; 

 

6. 补充说明(如果有需要补充的内容写在这)

ARP请求报文中在发送方硬件地址字段填上本机的物理地址,在发送方IP地址字段填入本机的协议地址,在目的协议地址字段填入准备解析的目的主机IP地址,以广播方式在以太网上发送。在ARP应答报文中,目的主机将收到的ARP请求报文中的发送方硬件地址和IP地址放入目的硬件地址和目的协议地址,在发送方硬件地址和发送方协议地址中分别填入自己的硬件地址和协议地址,在以太网上单播发送。

 

三、 IP协议的分析

1. 抓取方法描述

Ø 利用sendip工具发送ipv4包

Ø 使用wireshark抓包并分析数据

 

2. 记录抓取的过程

Ø 命令行输入sendip -v -p ipv4 -d  “11054208” 192.168.26.1;

 

Ø Wireshark抓到数据包;

 

 

3. 抓取数据的内容(包括分片的、未分片的、带各种选项字段的)

Ø 链路层具有最大传输单元MTU这个特性,它限制了数据帧的最大长度,不同的网络类型都有一个上限值。以太网的MTU是1500。如果IP层有数据包要传,而且数据包的长度超过了MTU,那么IP层就要对数据包进行分片操作,使每一片的长度都小于或等于MTU。我们假设要传输一个数据包,以太网的MTU为1500字节,一般IP首部为20字节。如果数据部分过大,就会出现分片现象。

Ø 发送一个长度为42字节的ip数据包,未分片;

IP首部包含了分片和重组所需的信息:

Identification:发送端发送的IP数据包标识字段都是一个唯一值,该值在分片时被复制到每个片中。
R:保留未用。
DF:Don't Fragment,“不分片”位,如果将这一比特置1 ,IP层将不对数据报进行分片。
MF:More Fragment,“更多的片”,除了最后一片外,其他每个组成数据报的片都要把该比特置1。
Fragment Offset:该片偏移原始数据包开始处的位置。偏移的字节数是该值乘以8。

另外,当数据报被分片后,每个片的总长度值要改为该片的长度值。

 

Ø 我们使用最常用的windows下的ping工具来向192.168.26.132发送一个3000字节的ip包,可以看到ip包被分片;

 

 

Ø 带路由记录的ip数据包

 


 

Ø 带路由时间戳的ip数据包

 

 

 

4. 抓取数据的格式解释(可直接在抓取数据的内容旁边标注)

l 分别指出IP数据包中各个字段的内容

普通ip数据包:

 

分片ip数据包:

 

 

5. 补充说明

TCP/UDP/ICMP 数据包时,都必须以IP 包进行封装,然后才可以发出去。本节我们将以TCP数据包为例进行讲述。

 

四、 ICMP协议的分析

1. 抓取方法描述

Ø 利用nping工具发送icmp数据包;

Ø 使用wireshark抓包并分析数据;

Ø Nping --icmp 可以指定具体的代码,分别发包抓包;

 

2. 记录抓取的过程

Ø 命令行输入nping --icmp 192.168.26.1;

  

Ø Wireshark抓到数据包;

  

3. 抓取数据的内容(包括各种差错报告报文和查询报文)

Ø Code=0,响应应答(ECHO-REPLY);

 

Ø Code=3, 终点不可达;


Ø Code=4, 源点抑制;

 


为了节省篇幅,下面的不再截图,道理相同;

Ø Code=5,改变路由;

Ø Code=8,响应请求;

Ø Code=11,  超时;

Ø Code=12,参数问题; 

Ø Code=13,时间戳请求; 

Ø Code=14,时间戳应答; 

Ø Code=17,地址掩码请求; 

Ø Code=18,地址掩码应答; 

 

 

4. 抓取数据的格式解释(可直接在抓取数据的内容旁边标注)

l 分别指出ICMP数据包中各个字段的内容

ICMP报文格式非常简单,有类型,代码,校验和,参数和信息5个部分组成;

 

 

 

5. 哪些选项的ICMP报文无法扑捉到应答,分析其原因

 

 

6. 补充说明(如果有需要补充的内容写在这)

类型代码有:

0 响应应答(ECHO-REPLY)

3 终点不可达

4 源点抑制

5 重定向(改变路由)

8 响应请求(ECHO-REQUEST)

11 超时

12 参数问题

13 时间戳请求

14 时间戳应答

15 信息请求(*已作废)

16 信息应答(*已作废)

17 地址掩码请求

18 地址掩码应答

其中代码为15、16的信息报文已经作废。

 

 

更多推荐

linux下发各种协议包及其详细分析

本文发布于:2024-02-17 19:06:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1695160.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:协议   详细   linux

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!