wireshark學習 5 命令列模式

2021-08-22 15:11:35 字數 2873 閱讀 8724

了解命令列的特點

只要我們在計算機中安裝了wireshark,那麼在其安裝目錄中就可以找到tshark這款工具:

alt text

它的下方名為tshark.html的檔案就是這款工具的幫助資訊。注意這款工具並不是通過直接在這裡雙擊執行的,而是需要通過cmd命令列切換到wireshark的安裝目錄,然後再通過相應的命令來使用這款工具。或者直接將tshark加入環境變數就可以直接使用。

而我之所以要以一節課來論述這款工具,是因為我們在實際的分析中,為了得到精準的分析結果,往往需要通過編寫指令碼程式來實現我們的目的。比如假設我們想要統計某乙個捕獲檔案中由於某一條件導致的停滯共有多少毫秒,那麼顯然僅僅通過wireshark生成的圖形進行統計是不精確的。而傳統的做法就需要把符合該條件的資料報篩選出來,逐段統計停滯的時間。如果捕獲檔案不複雜,那麼統計的速度還會比較快,可是一旦出現複雜的網路狀況,那麼這種純手工的方式就明顯力不從心了。

遇到這種情況,我們就需要使用指令碼程式來輔助我們的分析,可是wireshark本身並沒有提供這樣的功能,因此我們就需要利用tshark這款命令列工具來引入相應的指令碼程式。指令碼程式的編寫不是我們課程的討論範圍,但是依舊有必要討論tshark的基本用法,其實它就是相當於wireshark的命令列版本。與圖形介面相比,命令列存在著一些先天的優勢:

可以使用諸如awk或者grep這樣的工具來輔助分析。這一點就是圖形介面無法實現的。而有些高手之所以說tshark的功能比wireshark強大,往往就是由於這個原因。這裡所說的awk可以將檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。而grep可以用於字串的查詢。但是這些工具一般需要在linux系統中才能實現。這裡我可以給大家展示一下tshark與grep的使用。我使用的是kali linux 1.0.7的作業系統,利用如下命令搜尋lab5-1.pcapng中含有get字串的資料報:

alt text

上述命令的意思是,使用tshark來讀取lab5-1這個檔案的內容,並且使用grep這款工具來匹配檔案中是否包含有get字元的資料報。可以看到,結果已經清晰地顯示出來了。

編輯命令雖然比較費時,但是編輯好之後可以反覆使用,甚至可以寫成乙個程式供以後使用。如果大家經常需要進行效能調優的操作,那就可以寫一段程式來完成,這會比直接使用wireshark要快得多。而進行效能調優主要是對summary(概述資訊)、service response time(服務響應時間)以及expert info composite(專家資訊整合)的內容進行分析。

比如summary可以通過capinfos進行查詢(注意我已經將lab5-1.pcapng放在了wireshark目錄中):

alt text

而如果想要獲取service response time的情況,則需要視不同的協議而定。比如對於nfs(網路檔案系統)協議可以使用以下命令:

alt text

上述命令中的-n表示禁止所有位址名字解析(預設為允許所有);-q設定為標準輸出(常用於統計);-z表示設定統計引數。

而對於cifs協議,只要把上述命令中的雙引號裡面的內容改為「smb,srt」即可:

alt text

tshark輸出的分析文字大多可以直接寫入分析報告裡面,而wireshark卻無法生成這樣的報告。比如,我想統計每一秒裡面cifs操作的service response time,那麼可以執行以下命令:

alt text

如果將這個結果匯入到excel裡面,就可以生成各種報表。

和其它軟體一樣,命令列往往比圖形介面快得多。比如現在有乙個捕獲檔案,裡面有眾多的資料報,但是我只對ip位址為74.125.23.102的資料報感興趣,如果使用wireshark操作的話,需要首先開啟捕獲檔案,再利用ip.addr==74.125.23.102進行篩選,最後儲存結果。其實這三個步驟還是比較費時的。可是如果使用tshark就只需要以下一條命令就可以了:

tshark –r lab5-1.pcapng –y 「ip.addr==74.125.23.102」 –w lab5-4.pcapng

這樣,生成的lab5-4.pcapng檔案中就會只包含有ip位址為74.125.23.102的資料報了。

由於以上4點優勢,乙個網路工程師可能在上手tshark之後,很快就會捨棄wireshark了。雖然我們這個系列的課程是教大家使用wireshark,但是當大家掌握了足夠多的經驗的時候,其實完全可以捨棄wireshark的友好介面,轉而使用更加高效,卻更加複雜的tshark。

步驟3:了解命令列的常用功能

除了上述給大家演示的幾種功能之外,這裡再給大家講解幾個命令列的常用功能。如果想統計重傳的狀況,則需要用到tcp.analysis.retransmission命令:

alt text

如果想檢視亂序的情況,則只需要將retransmission改為out_of_order即可。

我們在之前的課程中討論過會話視窗,那麼我們利用tshark也可以方便地檢視會話資訊。利用」conv,***」就可以做到。其中的***可以是tcp、udp或者ip。比如檢視tcp的會話資訊:

alt text

大家可以將命令列的結果與wireshark的會話視窗進行對比,看看是否一致。

最後,如果我們遇到了乙個非常大的捕獲檔案,使用tshark無法開啟該怎麼辦?那麼此時就需要將該檔案切分成多個,可以利用editcap來實現:

editcap lab5-1.pcapng output.pcapng –i 4

上述命令可以把lab5-1.pcapng這個檔案以4秒為間隔進行拆分。

實驗結果分析與總結

我在這次的課程中講了一些我們還沒有學習的關於協議的知識。也許大家看完本次的課程並不能夠馬上理解其中的內容。不過沒關係,其實本次課程的內容就是希望大家在學完整個系列的課程後,再回頭來看的。那時大家再看這些內容,就會有一種豁然開朗的感覺,也許大家就會喜歡上命令列這種方式進行分析。而命令列也是博大精深,更多的內容是需要大家自己去研究的,我在這裡所演示的不過是冰山一角。

Wireshark 命令列捕獲資料

在 wireshark 程式目錄中,包含兩個命令列捕獲工具。這兩個工具分別是 dumpcap 和 tshark。當不能以圖形介面方式捕獲資料時,可以在命令列使用 dumpcap 或 tshark 程式實施捕獲。一 使用 dumpcap 捕獲資料 執行 dumpcap h 可以檢視引數詳情。1 執行 ...

wireshark命令列抓包

一般情況下用介面抓包就行了,但不能抓太久,吃記憶體 特殊情況下 比如不知道什麼時候會出現問題,或者出現問題再抓包已經來不及了 用命令列抓就不需要擔心上述問題了 1.安裝wireshark,我這邊裝的是wireshark win64 1.10.7.exe 2.到wireshark安裝目錄,輸入 dum...

命令列學習

接觸cocos2d html5 v2.1.5有段時間了,最近又出了個cocos2d js 3.0的版本,看了下要執行工程的話需要用到命令列的指令,覺得這個東西還是有點用處的。雖然以前接觸過,但是沒好好的去學習,今天就找度娘聊聊命令列指令!一。萬用字元 和?表示乙個字串 只代表乙個字元 例如 dir ...