wirshark詳解
一、wirshark安裝
1.安裝包下載
- 方法一:
官網下載最新版本:不建議網速太慢
方法二 三只適用於windows系統 - 下載方法二:
騰訊或者360 的軟件管家中直接搜索(騰訊的基本和官網是同步的)
方法三:
如果你沒有那些,我這裏給你提供3.2.2安裝文件 提取碼:t0t1
二、抓包及抓包過濾器設置
1.wrishark抓包設置
2. 捕獲過濾器語法:
↑↑↑↑↑↑↑↑點擊這裏有實例詳解↑↑↑↑↑↑↑↑↑↑
Wireshark捕獲過濾器是用libpcap過濾語言編寫的,這個我們使用的不多,我將有專門一篇博客介紹這個的用法,我們常用的也就過濾ip和端口,下面我們簡單的介紹:
語法:
捕獲過濾器採用由連詞(和/或)連接的一系列基本表達式的形式,可選地在前面加上not
[not] primitive [and|or [not] primitive…]
這個是我們必須要會的
實例 | 含義 |
---|---|
tcp port 23 and host 192.168.0.100 | 捕獲主機和192.168.0.100之間的telnet通信 |
tcp port 23 and not src host 192.168.0.100 | 捕獲所有源不是192.168.0.100的tcp 23端口流量 |
——————————————————————————————————————
-
[src|dst] host
可以篩選主機IP地址或名稱。您可以選擇在原語之前加上關鍵字src | dst,以指定您僅對源地址或目標地址感興趣。如果不存在,則將選擇指定地址作爲源地址或目標地址出現的數據包。 -
ether [src|dst] host
允許您過濾以太網主機地址。您可以選擇在關鍵字ether和host之間包含關鍵字src | dst, 以指定您僅對源地址或目標地址感興趣。如果不存在,則將選擇在源地址或目標地址中出現指定地址的數據包。 -
gateway host
可以篩選將主機用作網關的數據包。也就是說,以太網源或目標是主機,但源IP和目標IP地址都不是host -
[src|dst] net [{mask }|{len }]
過濾網絡號,抓取你感興趣的網絡號 -
[tcp|udp] [src|dst] port
用於篩選TCP和UDP端口號。可以選擇在此原語之前加上關鍵字src | dst和tcp | udp ,可以指定僅對源或目標端口以及TCP或UDP數據包感興趣。關鍵字tcp | udp必須出現在src | dst之前。 -
less|greater
過濾指定長度的數據包 -
ip|ether proto 對以太網協議過濾
實例:
ether proto 0x0806
抓取以太網的arp報文(ether表示以太網頭部,proto表示以太網頭部proto字段值爲0x0806)
- ether|ip broadcast|multicast
允許過濾以太網或IP廣播或多播
——————————————————————————————————
這是wrishark給我們的一些直接選用的抓包過濾規則,我們常規使用已經夠了,也可以自定義添加
根據上面我們設置完成後 ,我們繼續
三、顯示過濾器設置
1.簡單比較表達式
英文符號 | 數學符號 | 含義 | 實例 |
---|---|---|---|
eq | == | 等於 | ip.src==192.168.0.1 |
ne | ! = | 不等 | ip.src!=192.168.0.1 |
gt | > | 大於 | frame.len > 20 |
lt | < | 小於 | frame.len < 128 |
ge | >= | 大於等於 | frame.len ge 0x100 |
le | <= | 小於等於 | frame.len <= 0x20 |
contains | 無符號 | sip.To contains “a1762” | |
matches | ~ | 包含 | http.host matches "tianyao.(com |
bitwise_and | & | 且 | tcp.flags & 0x02 |
注意:
- 英文符號和數學符號可以混合使用;
- 整數都可以使用十進制,八進制或十六進制表達;
- mac地址可以用 “:” “- ” “.”三種連接符號任意一種表示,如eth.dst == ff-ff-ff-ff-ff-ff
- ip地址也可以寫一段 如顯示192.168.1 C類網絡中的所有數據包:ip.addr == 192.168.1.0./24
- IPV6我們也有類似寫法:ipv6.addr == ::1
**實例解釋說明:**上表看明白的可以忽略忽略
實例 | 說明 |
---|---|
ip.src==192.168.0.1 | 顯示源IP是192.168.0.1 |
ip.src!=192.168.0.1 | 不顯示源IP是192.168.0.1 |
frame.len > 20 | 顯示frame長度大於20 的包 |
frame.len <128 | 顯示frame長度小於128 的包 |
sip.To contains “a1762” | SIP To-header 頭部中包含“ a1762”的所有數據包 |
http.host matches "tianyao.(com | site)" 顯示http協議host頭部包含tianyao.com或者tianyao.site的包 |
frame.len ge 0x100 | 顯示frame長度大於等於256的包(0x100 ,十六進制,相當於256) |
tcp.flags & 0x02 | 顯示包含tcp.flags字段且設置爲0x02(SYN位置)的數據包 |
2.組合表達式
英文符號 | 數學符號 | 含義 | 實例 |
---|---|---|---|
and | && | 與 | ip.src==10.0.0.5 and tcp.flags.fin |
or | II | 或 | ip.scr= =10.0.0.5 or ip.src= =192.1.1.1 |
xor | ^^ | 異或 | tr.dst[0:3]= =0.6.29 xor tr.src[0:3] = = 0.6.29 |
not | ! | 非 | not llc |
3.切片運算
在標籤後,您可以放置一對用逗號分隔的範圍說明符列表的方括號[]。
eth.src [0:3] == 00:00:83
使用n:m格式指定單個範圍。在這種情況下,n是起始偏移量,m是指定範圍的長度。
eth.src [1-2] == 00:83
上面的示例使用nm格式指定單個範圍。在這種情況下,n是開始偏移,m是結束偏移。
eth.src [:4] == 00:00:83:00
上面的示例使用:m格式,它採用從序列開頭到偏移m的所有內容。相當於0:m
eth.src [4:] == 20:20
上面的示例使用n:格式,該格式包含從偏移量n到序列末尾的所有內容。
eth.src [2] == 83
上面的示例使用n格式指定單個範圍。在這種情況下,將選擇序列中偏移量爲n的元素。這相當於n:1。
eth.src [0:3,1-2,:4,4:,2] ==
00:00:83:00:83:00:00:83:00:20:20:83
注意:
顯示過濾器
{80 443 8080}中的tcp.port
相當於
tcp.port = = 80 || tcp.port = = 443 || tcp.port = = 8080
但是,顯示過濾器
{443 4430…4434}中的tcp.port
不等於
tcp.port == 443 || (tcp.port> = 4430 && tcp.port <= 4434)
這是因爲當任何字段與過濾器匹配時比較運算符都將滿足,因此,源端口爲56789且目標端口爲端口80的數據包也將與第二個過濾器匹配,因爲它56789 >= 4430 && 80 <= 4434爲true。相反,隸屬運算符針對範圍條件測試單個字段。
四、預告
進一步講解wrishark使用,我將使用wrishark分析TCP\IP協議棧。分13篇,更新完成整個TCP/IP協議分析
序號 | 名稱 |
---|---|
1 | Ethernet協議分析 |
2 | ARP協議分析 |
3 | IP協議分析 |
4 | ICMP協議分析 |
5 | DHCP協議分析 |
6 | DNS協議分析 |
7 | TFTP協議分析 |
8 | TCP協議分析 |
9 | Tlnet協議分析 |
10 | SSH協議分析 |
11 | HTTP協議分析 |
12 | FTP協議分析 |
13 | SMTP協議分析 |