1. 程式人生 > >wireshark 資料包分析技巧總結

wireshark 資料包分析技巧總結

轉載 http://shayi1983.blog.51cto.com/4681835/1558161

wireshark 過濾表示式的比較運算子一覽 (類 C 形式和對應的英語形式)

enighish           C-like           含義和例項

eq                 ==               等於       ip.src == 10.0.0.5

ne                 !=               不等於     ip.src != 10.0.0.5

gt                 >                大於       frame.len > 10

lt                 <                少於       frame.len < 128

ge                 >=               大於等於    frame.len ge 0x100

le                 <=               小於等於    frame.len <= 0x20

                                             

注意, ip.len le 1500 這裡的 "ip.len" 含義是,從網路層分組的 IP 頭部算起,加上傳輸層分段頭部,加上應用層資料,
總長度小於1500位元組,同理,"frame.len"需要從鏈路層乙太網幀頭開始計算;
預設情況下,wireshark 主介面最上方的資料包概況的 length 欄位,計算的是從鏈路層乙太網幀頭開始計算的大小,我們可以
通過 ip.len , tcp.len , udp.len 等來指定從資料包的哪一層開始計算大小並顯示


一個簡單的捕獲例項分析如下:

wKioL1QmXpqTcVVzAAmxcCybx5I522.jpg

【常用的捕捉過濾表示式】

僅捕獲來自或去往 192.168.1.0 網段中的資料包

1 net 192.168.1.0/24

注意,以 net 操作符開頭的過濾表示式不支援顯示過濾,僅支援捕獲時過濾並且只要是用於捕捉過濾表示式的關鍵字,都不能用於顯示過濾表示式,反之亦然

僅捕獲來自或去往 192.168.0.1 主機的資料包

1 host 192.168.0.1

僅捕獲來自 192.168.0.1 主機的資料包

1 src host 192.168.0.1

僅捕獲與  www.evil.com  的通訊中,非 HTTP 協議以及非 SMTP 協議的資料包

1 host www.evil.com and not (port 80 or port 25)

僅捕獲 TCP 協議,並且埠在 1501~1549 的資料包

1 tcp portrange 1501-1549

注意,關鍵字“portrange”僅支援 libpcap 0.9.1 以及更新版本,如果是 0.9.1 以前的版本,使用下面過濾表示式:

1 (tcp[0:2] > 1500 and tcp[0:2] < 1550) or (tcp[2:2] > 1500 and tcp[2:2] < 1550)

其中, 

tcp[0:2] 表示從 TCP 分段頭部的第一個位元組開始(0+1),總長度為2位元組(2)的位元組序列,而這就是源埠號

tcp[2:2] 表示從 TCP 分段頭部的第三個位元組開始(2+1),總長度為2位元組(2)的位元組序列,而這就是目的埠號

上面這種語法:

一,支援捕捉過濾與顯示過濾

二,支援匹配 IP 分組頭部,TCP分段頭部,UDP 使用者資料報頭部,ICMP 網際控制訊息協議資料包,乙太網資料幀,以及其它多種格式的資料包頭部結構中特定的欄位(位元組序列)

考慮如下過濾表示式

1 ip[8:1]==1

僅顯示 IP 從分組頭部的第九個位元組開始(8+1),總長度為1位元組(1),其“值”為 10進位制1 的資料包

檢視相關 RFC 文件對 IP 分組頭部結構的定義,其第九個位元組為 TTL(Time To Live),這將會顯示所有 IP 分組頭部的 TTL=1 的資料包

為什麼 TTL 的值如此重要?

我們知道,UNIX / Linux 平臺的 traceroute 工具,以及 windows 平臺的 tracert 工具,用來檢測並輸出與指定目標之間,經過的所有網路裝置或主機節點,

每經過一個節點,計算為一跳(hop),正常情況下,源主機發出的資料包,為了保證能順利到達目的主機,其 TTL 值應該在 40 以上,因為中間經過的每個節點會將收到的資料包 TTL 值減 1,然後判斷其值是否為 0,如果不為 0,則轉發該資料包給下一跳,如果為 0,直接丟棄這個資料包,然後給源主機回送一個 ICMP 型別為11(Time to live exceeded in transit,傳輸中 TTL 值耗盡)的資料包,

注意,

一,這個回送的 ICMP 包,其 IP 頭部的 TTL 值不可能為 1,至少也在40以上,否則當它被“前一跳”接收時,前一跳節點減去1後,判斷其為0,則直接丟棄,那麼這個通知 TTL值耗盡的資料包就不可能正確的回傳給源主機

二,這個回送的 ICMP 包,其 IP 頭部的源地址欄位,就是這個節點自身的 IP 地址

tracert / traceroute 工具正是利用了上述這兩個特性,向因特網上發出目標地址相同,但是每次 TTL 值 遞增1 的資料包,它首先發出的資料包 TTL=1,然後接收到的第一個節點將其減 1 後判斷,發現其為 0,於是丟棄這個資料包,向源主機返回 TTL 耗盡的 ICMP包,這個資料包的源地址欄位,洩漏了第一個節點的 IP 地址給源主機上的 tracert / traceroute 程序,後者向螢幕輸出相關 IP資訊,

同理,源主機發出的第二個資料包 TTL=2,第一個節點收到後減 1,判斷不為 0,於是轉發給“下一跳”,第二個節點收到後減 1,判斷為 0,丟棄,然後返回給源主機一個 TTL耗盡的 ICMP 包,其中帶有第二個節點的 IP 地址,於是源主機上的 tracert / traceroute 程序繼續向螢幕輸出相關資訊。。。。

多數情況下,地球上實際距離再遠的兩個主機,中間的節點數也不會超過 40,因此利用上述原理,tracert / traceroute 程序只需發出 10 或 20 個 TTL 分別為1~10 或者 1~20 的“探測”包,就可以向用戶展示中間經過的所有裝置列表

試想,我們執行 wireshark 的主機剛好位於第 5 個節點,那麼源主機發來的 TTL=5 的探測包,將在經過前面 “4 跳”後,到達我們的主機上,其 TTL=1,於是 wireshark 的 ip[8:1]==1 表示式可以用來捕獲探測本機是否存在的資料包,並且我們可以從捕獲的這個探測包的源 IP 地址,查詢到發出探測包的源主機的實體地址

當我們執行 wireshark 的 Linux 主機是作為源主機想要探測的目標的前端閘道器防火牆時,這點尤其重要我們可以將 wireshark 捕獲的 TTL=1 資料包的源 IP ,加入到 iptables 的入站鏈中並丟棄,或者設定成轉發給我們後臺的伺服器,但是不向源主機回送 TTL 耗盡的資料包,避免洩漏我們的閘道器防火牆 IP 地址 

回想一下你用使用 tracert / traceroute 的經驗,是不是曾經碰到過,中間“某一跳”的 IP 部分為     *       *        * 

就是這個道理

下面的截圖驗證了上面一堆廢話:

wKioL1Qs0riT0JvBAA9N0gSI7bU984.jpg

*****僅捕獲“單播”流量,如果你只想捕獲進出本機的資料包,使用下面的表示式可以幫助你排除本地網路中的“噪聲”———例如廣播和組播通告:

1 not broadcast and not multicast

*****不要被下面這個看起來很複雜的表示式嚇到,它的效果是僅捕捉使用 HTTP 的 GET 請求方法的資料包:

相關推薦

wireshark 資料分析技巧總結

轉載 http://shayi1983.blog.51cto.com/4681835/1558161 wireshark 過濾表示式的比較運算子一覽 (類 C 形式和對應的英語形式) enighish           C-like          

WireShark資料分析實戰》二、讓網路不再卡

TCP的錯誤恢復我是我們定位、診斷、並最終修復網路高延遲的最好工具。1.TCP重傳      重傳資料包是TCP最基本的錯誤恢復特性之一,它被設計用來對付資料包丟失。     資料包丟失可能有很多原因,包括出故障的應用程式、流量負載沉重的路由器,或者臨時性的服務中斷。資料包層

使用tcpdump+wireshark分析網路資料

最近和學弟在除錯一個GPRS通訊模組,需求是通過GPRS模組通過http協議傳送資料到伺服器,但是http協議一直失敗,伺服器返回400,通過查詢http狀態碼得知,http400錯誤是請求無效,因為GPRS模組沒有實現http協議的封裝,需要在TCP協議的基礎上,手動拼裝http格式的報文.所以初步猜測是h

Wireshark分析Yersinia 根據DHCP協議傳送的偽造資料攻擊(sending RAW packet)

抓包結果如下: 抓包與分析 幀號時間源地址目的地址高層協議包內資訊概況No.  Time   Source        Destination      Protocol    Info 5  1

wireshark網路抓取資料分析

第一次總結的文件不知到被我放到哪裡去了,找了很久沒有總結出來,於是只能再總結一次,之前也是一直在學習協議。資料包的分析對於瞭解網路,尤其是理解協議來說很重要。我只是分析了TCP/IP協議族的部分常見協議,自己記上一筆,防止放在電腦上又被我給弄沒了。。。 IP資料報格式

使用wireshark分析-抓實用技巧

目錄 使用wireshark抓包分析-抓包實用技巧 前言 自定義捕獲條件 輸入配置 輸出配置 命令列抓包 抓取多個介面

銳捷CCNA系列(二) Wireshark分析Ping過程

銳捷 CCNA 銳捷實戰 銳捷CCNA 數通 實訓目的 初步了解Wireshark的使用。 能分析Ping過程。 實訓背景 PING(Packet Internet Groper, 因特網包探索器),用於測試網絡是否連通的程序,在Windows、Linux、Unix下都是標配程序,Pi

(數據科學學習手劄19)R中基本統計分析技巧總結

misc 總結 4.6 內部 red margin adjust 條件 置信區間 在獲取數據,並且完成數據的清洗之後,首要的事就是對整個數據集進行探索性的研究,這個過程中會利用到各種描述性統計量和推斷性統計量來初探變量間和變量內部的基本關系,本篇筆者便基於R,對一些常用的數

wireshark分析rtmp協議,並提取出H264視頻流

tmp mage idt 進制 tro shark src 技術 wid 利用wireshark抓取rtmp流數據, 分析到rtmp流後,寫入過濾條件,如 tcp.stream eq 6導出tcp流保存16進制的數據為純文本格式一定要選擇 Hex轉儲,然後點擊 “Sava

FTP協議的粗淺學習--利用wireshark分析相關tcp連接

sha ftp命令 動向 c中 細胞 nsf ref 後退 圖片 一、為什麽寫這個 昨天遇到個ftp相關的問題,關於ftp匿名訪問的。花費了大量的腦細胞後,終於搞定了服務端的配置,現在客戶端可以像下圖一樣,直接在瀏覽器輸入url,即可直接訪問。 期間不會彈出輸入用戶名密

聊聊tcpdump與Wireshark分析

1 起因# 前段時間,一直在調線上的一個問題:線上應用接受POST請求,請求body中的引數獲取不全,存在丟失的狀況。這個問題是偶發性的,大概發生的機率為5%-10%左右,這個概率已經相當高了。在排查問題的過程中使用到了tcpdump和Wireshark進行抓包分析。感覺這兩個工具搭配起來

wireshark分析TCP三次握手、四次揮手以及TCP實現可靠傳輸的機制(轉)

關於TCP三次握手和四次揮手大家都在《計算機網路》課程裡學過,還記得當時高超老師耐心地講解。大學裡我遇到的最好的老師大概就是這位了,雖然他只給我講過《java程式設計》和《計算機網路》,但每次課幾乎都動手敲程式碼或者當場做實驗。好了不扯了,下面進入正題。      關

實現Telnet遠端登入,利用Wireshark分析

一、實驗環境 伺服器:windows server 2008 客戶機:windows 2007 網絡卡連線:NAT(Vmnet 8) 實現客戶機遠端登入伺服器 二、實驗步驟 1、設定IP地址 伺服器:windows server 2008 IP 地 址:192.168.10.1 子

計算機網路實驗(二)之Wireshark分析獲取URL列表(去重、排序、統計)

實驗要求 本試驗要求基於第一次實驗中訪問某官網主頁時所抓取到的資料包,用Python 3語言、Jupyter Notebook和Pyshark編寫程式碼進行協議分析所需的開發環境,編寫程式碼,以輸出的方式列出首頁以及其所包含的所有資源(至少包含如下型別

FTP協議的粗淺學習--利用wireshark分析相關tcp連線

一、為什麼寫這個 昨天遇到個ftp相關的問題,關於ftp匿名訪問的。花費了大量的腦細胞後,終於搞定了服務端的配置,現在客戶端可以像下圖一樣,直接在瀏覽器輸入url,即可直接訪問。 期間不會彈出輸入使用者名稱密碼來登入的視窗。 今天我主要是有點好奇,在此過程中,究竟是否是用匿名賬戶“anonymo

OpenVPN協議解析-握手資料分析

                學習一種協議的最好的方式就是研究它的資料包,這樣可以加深對協議的理解。對於研究過某種協議資料包的傢伙來講,他一定知道協議頭的哪個位置對應哪個欄位,雖然這對於理解協議為什麼這麼設計可能沒有太大的幫助,然而對於排查問題和實際實施是很有幫助的。既然很多人都對Richard Steve

Wireshark分析TCP.IP.UDP.ICMP報文格式

TCP 報文格式分析: TCP 報文段的報頭有 10 個必需的欄位和 1 個可選欄位。報頭至少為 20 位元組。 1)源埠(16位):標識傳送報文的計算機埠或程序。一個 TCP 報文段必須包括源埠號,使目的主機知道應該向何處傳送確認報文。 2)目的埠(16位):標識接收報文的目的主機的埠或程序。   由

基於wireshark分析TCP的三次握手

img src 建立 tab 安全 連接狀態 協議 處理 基於 在TCP/IP協議通訊過程中,采用三次握手建立連接,從而保證連接的安全可靠。 通常三次握手步驟如下: 1. 第1次握手:建立連接時,客戶端發送 SYN 包到服務器端,攜帶一個序列碼給服務器端用於確認,並進入

TCP協議基礎知識及wireshark分析實戰

TCP相關知識 應swoole長連線開發調研相關TCP知識並記錄。 資料封包流程 如圖,如果我需要傳送一條資料給使用者,實際的大小肯定是大於你傳送的大小,在各個資料層都進行了資料的封包,以便你的資料能完整的發給你想要的使用者。 乙太網的資料包的負載是1500位元組,IP包頭需要20個位元組,TCP

WireShark分析

簡述:本文介紹了抓包資料含義,有TCP報文、Http報文、DNS報文。如有錯誤,歡迎指正。 1、TCP報文 TCP:(TCP是面向連線的通訊協議,通過三次握手建立連線,通訊完成時要拆除連線,由