wireshark抓包原理
wireshark界面
哪种网络情况能抓到包
本机环境
直接抓包本机网卡的进出流量
集线器环境
从集线器上抓到其他电脑发送过来的包
流量防洪、同一冲突(理论分析,集线器已经比较老了)
交换机环境
端口镜像
(将pc2和pc3上的流量拷贝一份到pc1上)
ARP欺骗
MAC泛洪
抓包的底层架构是怎么样的
Win-/libpcap
Wireshark抓包时依赖的库文件
Capture
抓包引擎,利用libpcap/WinPcap从底层抓取网络数据包,libpcap/WinPcap提供了通用的抓包接口,能从不同类型的网络接口抓包。
Wiretap
格式支持,从抓包文件中读取数据包,支持多种文件格式
Core
核心引擎,通过函数调用将其他模块连接在一起,起到联动调度的作用。
GTK1/2
图像处理工具,处理用户的输入输出显示
wireshark进阶调试
过滤器设置
抓包过滤器
语法说明
BPF语法
基于libpcap/wincap库
类型Type
host/net/port
方向Dir
src/dst
协议Proto
ether/ip/tcp/udp/http/ftp
逻辑运算符
&& || !
举例说明
src host 192.168.1.1 && dst port 80 //抓取源地址为192.168.1.1,目的为80端口的流量包
host 192.168.1.1 || host 192.168.1.2 //抓取192.168.1.1和192.168.1.2的流量包
!broadcast //不要抓取广播包
实验演示
//过滤MAC地址案例
ether host ac:b5:7d:55:8d:c7
ether src host ac:b5:7d:55:8d:c7
ehter dst host ac:b5:7d:55:8d:c7
//过滤IP地址案例
host 192.168.1.1
src host 192.168.1.1
dst host 192.168.1.1
//过滤端口案例
port 80
!port 80
dst port 80
src port 80
//过滤协议案例
arp
icmp
//综合过滤案例
host 192.168.1.100 && port 8080
显示过滤器
语法说明
比较操作符
== != > < >= <=
逻辑操作符
```and or xor not ``
IP地址
ip.addr ip.src ip.dst
端口过滤
tcp.port
tcp.srcport
tcp.dstport
tcp.flag.syn
tcp.flag.ack
协议过滤
arp
ip
icmp
udp
tcp
bootp
dns
实验演示
过滤IP地址
ip.addr == 192.168.1.1
ip.src == 192.168.1.1
ip.dst == 192.168.1.1
ip.src == 192.168.1.1 and ip.dst == 58.231.123.143
过滤端口示例
tcp.port == 80
tcp.srcport == 80
tcp.dstport == 80
tcp.flag.syn == 1
过滤协议案例
arp
tcp
udp
not http
not arp
综合过滤案例
ip.src == 192.168.1.100 and tcp.dstport == 80
ip.addr == 192.168.1.168 and udp.port == 4000
wireshark高级功能
数据流追踪
将TCP/UDP/SSL等数据流进行重组并完整呈现出来(TCP流、UDP流、SSL流)
专家信息说明
统计摘要说明
统计/捕获文件属性
协议分层统计
网络节点和会话统计
网络会话
统计通信会话之间接收和发送的数据包和字节数,通过这个工具可以找出网络中哪个会话(IP地址和端口号)最占用带宽
网络节点
数据包长度
统计数据流量中包长度的分布
图标分析
IO图标
对网络中的吞吐流量进行实时图形显示
路径:统计/IO图标
数据流图
将会话通信过程图形可视化出来
统计/流量图