wireshark抓包工具实战

文章介绍了Wireshark工具的用途,包括在Windows和Linux上的下载安装,以及在以太网层、网络层和传输层的基本概念。重点讨论了TCP的三次握手和四次挥手过程,以及HTTP协议的请求和应答包解析。同时,文章还涉及了通过Wireshark过滤特定IP和端口的抓包方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考

网络抓包工具Wireshark下载安装&使用详细教程
ubuntu安装wireshark及抓包过程

一、关于Wireshark

Wireshark(前身 Ethereal)是一个网络包分析工具。该工具主要是用来捕获网络数据包,并自动解析数据包,为用户显示数据包的详细信息,供用户对数据包进行分析。

它可以运行在 Windows 和 Linux 操作系统上。可以使用该工具捕获并分析各类协议数据包,本文将讲解该工具的安装及基本使用方法。

二、下载及安装

Kali Linux 系统自带 Wireshark 工具,而 Windows 系统中默认没有安装该工具。因此,本节讲解如何在 Windows 系统中安装 Wireshark 工具。
官网:https://www.wireshark.org/

下载Wireshark-win64-4.0.6.exe

三、基本概念

每层类型

在这里插入图片描述
Frame:是物理层
Ethernet:以太网层
Internet:网络层
Transmission:是传输层

Ethernet以太网层(MAC地址)

协议

以太网层(MAC地址)包含目的地址(6字节)、源地址(6字节)、地址类型(2个字节)在这里插入图片描述

目的地址

我们目的ip是192.168.0.44,对应的mac地址是c8:d3:ff:74:7e:d1

我们在服务端通过ifconfig查询如下:
在这里插入图片描述

抓包如下:
在这里插入图片描述

Internet网络层

一个20个字节,

协议

在这里插入图片描述

报文

通过数据发现,网络传输都是大端

# 比如ip是
192.168.0.88
# 对应字节是
c0 a8 00 58
# 16进制转10进制
192 168 0 88

在这里插入图片描述

Transmission传输层

协议

在这里插入图片描述

三、tcp抓包

ip.addr == 192.168.0.44 and tcp.port == 8000

三次握手连接

在这里插入图片描述

四次握手断开

在这里插入图片描述
客户端发送FIN以及上次消息的ACK
其中服务器发送FIN和回复ACK合并发送,如果想要分开发送,可以在close(cfd)之前执行一次sleep(1)延时

http协议

ip.addr == 192.168.0.44 and tcp.port == 8000 and http

如下一共是两个请求,两个回复200 ok
在这里插入图片描述

请求协议包

在这里插入图片描述

请求行:GET /demo.html HTTP/1.1\r\n
空行:\r\n
数据:

代码解析

char method[256] = {0};
char path[256] = {0};
char protocol[256] = {0};
sscanf(buf, "%[^ ] %[^ ] %[^ \r\n]", method,path,protocol);

应答协议包

在这里插入图片描述

状态行:HTTP/1.1 200 OK\r\n
内容类型:
内容长度:
空行:\r\n
数据:

文件类型

if (strcmp(dot,".au") == 0)
	return "audio/basic";
if (strcmp( dot,".wav") == 0)
	return "audio/wav";
if (strcmp(dot,".avi") == 0)
	return "video/x-msvideo";
if (strcmp(dot,".mov") == 0 || strcmp(dot, ".qt") == 0)
	return "video/quicktime";
if (strcmp(dot,".mpeg") == 0 || strcmp(dot, ".mpe") == 0)
	return "video/mpeg";
if (strcmp(dot,".vrml") ==   srcmp(dot, ".wrl") ==0)
	return "model/vrml";
if (strcmp(dot,".midi")==0 strcmp(dot,".mid") == 0)
	return "audio/midi".
if (strcmp(dot,".mp3") ==0)
	return "audio/mpeg";
if (strcmp(dot,".ogg") == 0)
	return "application/ogg";
if (strcmp(dot,".pac") == 0)
	return "application/x-ns-proxy-autoconfig";
return "text/plain; charset=utf-8";
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值