当前位置:   article > 正文

wireshark抓包工具实战_抓包工具wireshark

抓包工具wireshark

参考

网络抓包工具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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

Transmission传输层

协议

在这里插入图片描述

三、tcp抓包

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

三次握手连接

在这里插入图片描述

四次握手断开

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

http协议

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

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

请求协议包

在这里插入图片描述

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

代码解析

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

应答协议包

在这里插入图片描述

状态行:HTTP/1.1 200 OK\r\n
内容类型:
内容长度:
空行:\r\n
数据:
  • 1
  • 2
  • 3
  • 4
  • 5

文件类型

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";
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/41136
推荐阅读
  

闽ICP备14008679号