wireshark抓包工具的工作原理,特点和应用场合是啥?

wireshark抓包工具的工作原理,特点和应用场合是啥?

WireShark是一个网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。WireShark使用WinPCAP作为接口,直接与网卡进行数据报文交换

官网:https://www.wireshark.org/

WireShark可以分析图片

通常先从统计下手,如协议分级、会话等

了解哪些机器发送的包最多、流量最大,之后具体分析,多利用统计功能

http.request.method == POST -->可以查看页面密码

网络管理员:使用WireShark检测网络问题

网络安全工程师:使用WireShark检查资讯安全相关问题

开发者:使用WireShark为新的通讯协议排错

普通使用者:使用WireShark学习网络协议的相关知识

有些人:"居心叵测"的用来寻找敏感信息

网络特征,谁和谁通信、网络载体

ARP协议

ICMP协议

TCP协议

UDP协议

DNS协议

HTTP协议

可另存为pcap格式的数据包:

调整布局:

可自定义,也可新加

列可移动,列数据也可居中

打开浏览器访问百度:

访问完成后点击停止抓包即可:

数据包太多,根据条件自己筛选:

筛选TCP的数据包:(只支持小写)

筛选arp的数据包:

筛选udp的数据包:

oicq以及dns都是基于udp的传输层之上的协议

扩展:客户端向 DNS 服务器查询域名,一般返回的内容都不超过 512 字节,用 UDP 传输即可。不用经过三次握手,这样 DNS 服务器负载更低,响应更快。理论上说,客户端也可以指定向 DNS 服务器查询时用 TCP,但事实上,很多 DNS 服务器进行配置的时候,仅支持 UDP 查询包。

筛选192.168.137.1的数据包:

host 192.168.137.1

筛选某个MAC地址:

ether host 00:0c:29:09:69:54

筛选http的数据包:

筛选dns的数据包:

筛选源地址是192.168.137.100的数据包:

src host 192.168.137.100

筛选目的地址是192.168.137.100的数据包:

dst host 192.168.137.100

筛选80端口的数据:

port 80

筛选源端口是80的数据:src port 80

筛选目的端口是80 的数据:dst port 80

不想抓取某台主机:!host 192.168.137.100

只抓取192.168.137.100的数据并且端口为80的数据:host 192.168.137.100 && port 80

只抓取192.168.137.100的数据或者端口为80的数据:host 192.168.137.100 || port 80

筛选源地址是192.168.137.100或目的地址是192.168.137.100

ip.src_host == 192.168.137.100 or ip.dst_host == 192.168.137.100

筛选源地址是192.168.137.1并且目的地址是192.168.137.100

ip.src_host == 192.168.137.1 and ip.dst_host == 192.168.137.100

筛选所有与192.168.137.100通信的主机:ip.addr == 192.168.137.100

协议分析的时候需要关闭混淆模式,避免一些干扰的数据包存在

地址解析协议(英语:Address Resolution Protocol,缩写:ARP)是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议,它在 IPv4 中极其重要。ARP 是通过网络地址来定位 MAC 地址。

使用nmap产生arp协议:nmap -sn 192.168.137.11

广播请求,单播回应

分析第一个请求包:

查看 Address Resolution Protocol (request) ARP 请求包内容:

Address Resolution Protocol (request) -->ARP 地址解析协议 request 表示请求包

Hardware type: Ethernet (1) -->硬件类型

Protocol type: IPv4 ( 0x0800 ) -->协议类型

Hardware size: 6 -->硬件地址,字节

Protocol size: 4 -->协议长度

Opcode:_ request ( 1 ) -->操作码,该值为 1 表示 ARP 请求包

Sender MAC address: VMware_06:10:b1 (00:0c:29:06:10:b1) -->源 MAC 地址

Sender IP address: 192.168.137.100 -->源 IP 地址

Target MAC address: 00:00:00_ 00: 00:00 (00: 00: 00 :00: 00:00) -->目标 MAC 地址

Target IP address: 192.168.137.1 -->目标 IP 地址

分析第二个数据包ARP的应答数据包:

查看 Address Resolution Protocol (reply) ARP 请求包内容:

Address Resolution Protocol (reply) -->ARP 地址解析协议 reply 表示回复包

Hardware type: Ethernet (1) -->硬件类型

Protocol type: IPv4 ( 0x0800 ) -->协议类型

Hardware size: 6 -->硬件地址

Protocol size: 4 -->协议长度

Opcode:_ reply ( 2 ) -->操作码,该值为 2 表示 ARP 回复包

Sender MAC address: VMware_c0:00:08 (00:50:56:c0:00:08) -->源 MAC 地址

Sender IP address: 192.168.137.1 -->源 IP 地址

Target MAC address: VMware_06:10:b1 (00: 0c: 29 :06: 10:b1) -->目标 MAC 地址

Target IP address: 192.168.137.100 -->目标 IP 地址

可以看到应答包补全了自己的MAC地址,目的地址和源地址做了替换

两个数据包的请求和过程:

192.168.137.1 广播:谁有 192.168.137.1 的 MAC 地址?

192.168.137.1 应答:192.168.137.1 的 MAC 地址是 xxxxxxxxxxx

ping http://baidu.com -c 1 -->只ping一次

代理:TCP协议,ping:ICMP协议,所以ping不能走代理

ICMP协议分析请求包:

ICMP协议分析应答包:

请求包和应答包的填充数据是相同的,如果不同,代表可能被篡改了

工作过程:

本机发送一个 ICMP Echo Request 的包

接收方返回一个 ICMP Echo Reply,包含了接受到数据拷贝和一些其他指令

通过xshell远程连接来捕获完整的TCP三次握手

TCP Durp ACK:报文丢失,重传

SYN=1 表示发送一个链接请求。这时 Seq 和ACK 都是 0

服务端收到 SYN 连接请求返回的数据包 SYN=1,ACK=1 表示回应第一个 SYN 数据包

四次挥手

HTTP协议是TCP的上层协议,所以筛选TCP的数据会包含HTTP协议的数据包

curl -I http://baidu.com -->只返回头部信息

第一步:我们我们发送了一个 HTTP 的 HEAD 请求

第二步:服务器收到我们的请求返回了一个 Seq/ACK 进行确认

第三步:服务器将 HTTP 的头部信息返回给我们客户端 状态码为 200 表示页面正常

第四步:客户端收到服务器返回的头部信息向服务器发送 Seq/ACK 进行确认

发送完成之后客户端就会发送 FIN/ACK 来进行关闭链接的请求

模式场景:修改主机TTL值为1,临时修改内核参数:echo "1" > /proc/sys/net/ipv4/ip_default_ttl

TTL : 数据报文的生存周期。

默认 linux 操作系统值:64,每经过一个路由节点,TTL 值减 1。TTL 值为 0 时,说明目标地址不可达并返回:Time to live exceeded

作用: 防止数据包,无限制在公网中转发。我们测试结果

我们可以看到提示我们 Time to live exceeded 这表示超过生存时间

我们判断和目标之间经过多少个网络设备是根据目标返回给我们的 TTL 值来判断的,因为我们发送的数据包是看不到的

尝试抓包:

第一个包:发送了一个ping请求包:TTL=1

之后192.168.137.1返回数据包:超过数据包生存时间,数据包被丢弃

可以发现目标地址发生了改变,这证明了数据包在网 络中已经到达了下一个网络设备才被丢弃

目标返回给我们的 TTL 值为 47,这表示我们的 TTL 值需要大于 64-47=17才可以访问http://baidu.com

TTL:为0,代表目标地址不可达,超时

MTR:可以检测我们到达目标网络之间的所有网络设备的网络质量

apt install -y mtr -->需要安装

apt http://baidu.com -->检测到达http://baidu.com所有节点的通信质量,红色代表丢包,问号代表可能有防火墙

链接:like you:WireShark 抓包及常用协议分析

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。