5分鐘徹底掃除TCP/IP協議學習障礙-wirshark使用詳解

在這裏插入圖片描述

一、wirshark安裝

1.安裝包下載

二、抓包及抓包過濾器設置

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協議分析
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章