Wireshark抓包分析(ARP TCP DNS HTTP)

news2024/9/20 16:31:09

目录

一、ARP

二、DNS

三、TCP

TCP的总过程:

​TCP三次握手:

 TCP四次挥手:

 四、HTTP


一、ARP

1.ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。

我们要抓ARP 同网段内的访问网关的情况。

先cmd执行 arp -a 命令,从ARP表中查看本网段内有哪些主机

然后 arp -d 清空ARP表

cmd执行 arp -a,验证ARP表已被清空(ARP的自主学习)

2.Ping本网段内任意主机

1)cmd执行下面这条命令获取局域网内所有主机:

命令的意思是:ping 10.200.1.xxx到 10.200.1.255 之间的所有IP,注意将IP地址改成自己的网段。

for /L %i IN (1,1,254) DO ping -w 2 -n 1 10.200.1.%i

ipconfig -all 查看本机IP及MAC地址:

全部ping网段 或者ping网关或某个ip

3.过滤ARP协议的数据包

显示过滤器中输入:arp,过滤ARP协议的数据包。

两个数据包,第一个包是ARP请求包,第二个包是ARP响应包。

先看第一个数据包,源地址(Source字段)是我自己的MAC地址(8d:e4:71)。
目标地址(Destination字段)是 Broadcast,就是广播的意思。
Info 字段,是对当前动作的描述。

总结一下第一个数据包做了什么:
我的电脑,发送了一个广播,广播的内容是 “谁是10.200.1.8?告诉10.200.1.36”
10.200.1.36是我电脑的IP,意思就是:呼叫10.200.1.8,收到请回复我。

第二个数据包的目的地址(Destination 字段)是我电脑的MAC地址

结合 Info 字段的信息,总结一下第二个数据包做了什么:
有个主机,向我的电脑发送了一个信息,信息的内容是 “10.200.1.36 是 c0-25-a5-8d-e4-71”
这个主机把MAC地址告诉了我的电脑。

结论:

ARP地址解析协议就像一个队内语音,他会向局域网内所有主机广播请求,索要目标IP的MAC地址;知道的主机就会响应具体的MAC地址。

4.数据包内容分析

接下来我们根据包的数据分析一下,这两个包是怎么做的:

1)第一个包的数据:

  • 第一处:ARP后面的括号里是 request,说明这是个请求包
  • 第二处:源IP、源MAC、目标IP都有值,目标MAC却全是0,意思就是告诉他们:我不知道这个IP的MAC地址。

2)第二个包的数据:

  • 第一处:ARP后面的括号里是 reply,说明这是个响应包
  • 第二处:源IP、源MAC、目标IP、目标MAC都有值,接收方可以从这里获取IP对应的MAC地址。

5.ARP自主学习

再次使用 arp -a 查看ARP表

可以发现,表中添加了我们刚才 ping 的IP,以及对应的MAC地址,这就是ARP的学习能力:解析成功的MAC地址会被临时缓存,以节约资源。

第六步:再次访问
1)Wireshark开启抓包,重新访问这个主机

2)查看ARP请求包的目的MAC地址

由于是第二次访问,ARP表中已经缓存了MAC地址,所以这次ARP请求不再广播,而是直接从ARP表中获取。

二、DNS

        DNS是一个应用层协议,基于TCP/IP传输,一般的DNS报文传输层是UDP报文。查询的时候一般请求DNS服务器的53端口号。

        启动wireshark,在浏览器输入www.xiaomi.com,访问小米的官网。(ps:网址会自动跳转到www.mi.com,这是因为小米官网做了域名重定向。)

 ping www.xiaomi.com 

 

 请求报文:

172.16.7.1(DNS服务器地址)

响应报文: 

可以看到,经过DNS查询,得到了IP地址123.125.103.192 和111.202.1.202

三、TCP

        传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 [1]  定义。

wireshark数据包详细栏每个字段对应的分层。

TCP的总过程:

TCP三次握手:

TCP三次握手示意图 

 

 

1)第一次握手

可以看到,客户端发起一个SYN请求,初始序列号为0

2)第二次握手

服务端返回SYN+ACK,并且包含服务端的一个初始序列号seq=0,同时返回一个确认号ack=1

 3) 第三次握手

客户端返回一个ACK,并且返回一个确认号ack=1,并且将自己的序列号seq更新为1

  到此,TCP三次握手就结束了。客户端与服务端之间已经成功建立起连接。

 TCP四次挥手:

 TCP四次挥手示意图

 第一次挥手:客户端发起一个FIN,表示客户端希望断开连接。

 第二次挥手:服务端返回一个ACK,表示对客户端断开请求的应答。

 第三次挥手:服务端发起一个FIN,表示服务端希望断开连接。

 第四次挥手:客户端返回一个ACK,表示对服务端断开请求的应答。

 1)第一次挥手

        客户端发起一个FIN请求(表示客户端希望断开连接),

序列号seq=1,应答号ack=1。注意这里的应答是上一次数据通信过程中的应答。

2)第二次

        服务端返回一个ACK(表示对客户端断开请求的应答) 

应答号ack=2,序列号seq=1

 3)第三次挥手

         服务端返回一个ACK(表示对客户端断开请求的应答)+FIN(表示服务端希望发起断开请求)

应答号ack=2,序列号seq=1      

4)第四次挥手

         客户端返回一个ACK(表示对服务端断开请求的应答)

应答号ack=2,序列号seq=2

附:

访问www.xiaomi.com的TCP总过程: 

 四、HTTP

         超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。

HTTP报文由三部分组成,开始行、首部行和实体主体,如图。

在请求报文中,开始行就是请求行。

以超星学习通为例吧:

因为现在大部分网站都是用https加密了。

超星

鲨鱼抓包:

 200的响应码:

小米的 mi.com:

 TLS协议Client Hello

 服务端发出的Server Hello

 到此,TLS的握手过程就结束了,后面可以加密传输消息了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/660135.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(学习日记)2023.06.15

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

0003-TIPS-2020-hxp-kernel-rop : bypass-KPTI-with-trampoline

KPTI KPTI描述内容摘录自ctf wiki KPTI 机制最初的主要目的是为了缓解 KASLR 的绕过以及 CPU 侧信道攻击。 在 KPTI 机制中,内核态空间的内存和用户态空间的内存的隔离进一步得到了增强。 内核态中的页表包括用户空间内存的页表和内核空间内存的页表。 用户态的页…

minikube 试炼

点我进入 minikube 试炼 今天我们先来尝试使用一下 minikube ,可以进入到 https://kubernetes.io/zh/docs/tutorials/hello-minikube/ 页面上直接感受,或者通过如下指令,将 minikube 放入我们的服务器上面进行使用 简单安装 minikube Linu…

在Centos Stream 9上Docker的实操教程(六) - Docker Compose容器编排详解

在Centos Stream 9上Docker的实操教程 - Docker Compose容器编排详解 前言什么是Docker-Compose下载安装和卸载使用仓库安装手动安装卸载 docker compose常用命令项目实战构建SpringBoot项目编写Dockerfile文件编写Docker-Compose.yml文件 运行测试相关注意事项结语 前言 在了…

使用Pyinstall将PyQT5工程打包成.exe应用程序(包含图标一同打包)

1.首先安装pyinstaller。 pip install pyinstaller 2.PyQT5制作程序中使用到的ico等一系列图标文件&#xff0c;要先经过.qrc文件转成.py文件后&#xff0c;才可跟随打包文件一同打包。 首先创建一个.qrc文件&#xff0c;将图片文件全部写进去&#xff0c;例如: <RCC>&…

selenium 调用本地浏览器插件

本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删!selenium 使用本地浏览器插件 环境 win10Python3.9selenium 4.10查看chrome配置文件路径 地址栏输入 ​​…

Python 请求分页

文章目录 什么是 Python 中的分页带有下一个按钮的 Python 分页没有下一个按钮的 Python 分页无限滚动的 Python 分页带有加载更多按钮的分页 在本文中&#xff0c;我们将了解分页以及如何克服 Python 中与分页相关的问题。 读完本文后&#xff0c;我们将能够了解 Python 分页以…

TensorHouse仓库介绍

目录 1 TensorHouse介绍 2 说明性例子 3模型列表 4基本组件 5方法 6参考 7后续计划 1 TensorHouse介绍 代码仓库&#xff1a;GitHub - ikatsov/tensor-house: A collection of reference machine learning and optimization models for enterprise operations: marketi…

插入排序-C语言实现

&#x1f970;前言 &#x1f354;在学数据结构的第一节课就知道了数据结构课程是要管理并且学会操作数据&#xff0c;当然操作数据首先想到的就是数据的排序&#xff0c;排过顺序的数据的使用价值才够大。前面我们学习了顺序表也学习了链表等等&#xff0c;这些就是储存数据的方…

哲学家就餐问题

哲学家就餐问题是一个著名的一类同步问题&#xff0c;在并发编程领域&#xff0c;常用来解释线程同步的问题。 问题描述&#xff1a;五位哲学家围坐在一张圆桌旁&#xff0c;每个哲学家面前有一碗米饭和一只筷子。这五个哲学家都是苦于无法同时持有两只筷子&#xff0c;因为只…

Autosar软件组件-Application Layer介绍和SWC(Software Component)类型

参考前文Autosar-软件架构,可知整个架构从上到下分层依次为:应用层(Application Software Layer),运行时环境(Runtime Environment,RTE),基础软件层(Basic Software Layer,BSW),微控制器(Microcontroller)。 Application Layer由各种AUTOSAR Software Componen…

【备战秋招】每日一题:华东师范大学保研机试-2022-整数排序

为了更好的阅读体检&#xff0c;可以查看我的算法学习博客华东师范大学保研机试-2022-整数排序 题目内容 输入若干个int类型整数&#xff0c;将整数按照位数由大到小排序&#xff0c;如果位数相同&#xff0c;则按照整数本身从小到大排序。 例如, 输入:10 -3 1 23 89 100 9…

【第四次】21级计科计算机组成原理课外练习

【第四次】21级计科计算机组成原理课外练习 一、判断题二、单选题三、多选题四、填空题五、程序填空题 一、判断题 1-1 设机器数字长8位&#xff08;含1位符号位&#xff09;&#xff0c;若机器数BAH为原码&#xff0c;算术右移一位得到的结果为 9D H 。 T F 1-2 ALU中采用双…

spring 反射,BigDecimal,自定义注解的使用(aop)

反射 利用反射调用它类中的属性和方法时&#xff0c;无视修饰符。 获取Class类的对象&#xff08;三种方式&#xff09; Class.forName(“全类名”) &#xff08;推荐使用&#xff09;类名.class对象.getClass() 反射获取构造方法Constructor<?>[] getConstructors()…

Android 逆向之脱壳实战篇

作者&#xff1a;37手游安卓团队 前言 这篇文章比较干&#xff0c;比较偏实战&#xff0c;看之前建议先喝足水&#xff0c;慎入。 在学脱壳之前&#xff0c;我们先来复习一下&#xff0c;什么时候是加固&#xff1f; 加固本质上就是对 dex 文件进行加壳处理&#xff0c;让一些…

信号三大阶段之储存信号

目录 一、 信号三大阶段 二、信号储存相关概念 三、 理解概念 四、信号储存原理 五、信号集操作函数 一、 信号三大阶段 二、信号储存相关概念 实际执行信号的过程被称为信号递达&#xff08;Delivery&#xff09;。信号从产生到递达之间的状态被称为信号未决&#xff08;…

【Linux】初步认识Linux系统

Linux 操作系统 主要作用是管理好硬件设备&#xff0c;并为用户和应用程序提供一个简单的接口&#xff0c;以便于使用。 作为中间人&#xff0c;连接硬件和软件 常见操作系统 桌面操作系统 WindowsmacOsLinux 服务器操作系统 LinuxWindows Server 嵌入式操作系统 Linux …

从零搭建一台基于ROS的自动驾驶车-----1.整体介绍

系列文章目录 北科天绘 16线3维激光雷达开发教程 基于Rplidar二维雷达使用Hector_SLAM算法在ROS中建图 Nvidia Jetson Nano学习笔记–串口通信 Nvidia Jetson Nano学习笔记–使用C语言实现GPIO 输入输出 Autolabor ROS机器人教程 文章目录 系列文章目录前言一、小车底盘二、激…

Redis入门(三)

第5章 Redis的相关配置(redis.conf) 1&#xff09;计量单位说明,大小写不敏感 # 1k > 1000 bytes # 1kb > 1024 bytes # 1m > 1000000 bytes # 1mb > 1024*1024 bytes # 1g > 1000000000 bytes # 1gb > 1024*1024*1024 bytes # # units are case insensiti…

如何安装Apache服务

目录 什么是Apache 第一步 关闭防火墙和安全机制 第二步 系​统​上​定​义 SELinux 最​高​级​别 第三步 导入对应的依赖包并解包 第四步 安装依赖环境 第五步 移动相关文件 第六步 编译安装 第七步 编译 第八步 备份配置文件 第九步 优化执行路径 第十步 添加…