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圖標
數據流圖
將會話通信過程圖形可視化出來
統計/流量圖
