報文捕獲分析工具Wireshark簡介

本文是我的專欄《wireshark從入門到精通》中的開篇,本專欄準備跟大家介紹一下報文捕獲分析工具wireshark,包括wireshark的一些原理性知識以及關聯基本知識點(會陸續介紹一些實用背景知識點,這些知識點在TCP/IP等書籍中很少被提及,但是對於我們理解原理非常重要),一些最實用的使用技巧,報文批量增刪改查方法,wireshark lua 插件編寫等內容,分爲初級,中級,高級三個部分,如下:

基礎部分:

  • 報文捕獲分析工具Wireshark簡介
  • 報文格式-PCAP文件淺析
  • Wireshark捕獲過濾器和顯示過濾器
  • 流,對話等一些基本概念
  • Wireshark中的名字解析
  • Wireshark中實用的設置和使用技巧彙總
  • 通過Wireshark快速掌握SSL(TLS)協議

中級部分:

  • Wireshark配置解密HTTPS報文及其原理
  • Wireshark配置顯示IP地理位置信息及其原理
  • Wireshark中多種亂碼場景淺析
  • Wireshark自帶的命令行工具使用
  • Tshark命令行批量捕獲分析報文
  • Tshark命令行實現批量切流
  • Wireshark分析訪問一個網站的協議過程

高級部分:

  • Wireshark 源碼概覽
  • Wireshark lua 插件簡介和安裝
  • Wireshark lua 插件批量查詢報文
  • Wireshark lua 插件批量修改報文
  • Wireshark lua 插件實現切流操作
  • Wireshark lua 插件實現新增協議解釋器
  • Wireshark lua 插件還原報文中的圖片和視頻
  • Python 調用Wireshark lua 插件方法

上述是我總結工作中經常使用到的一些內容,可能會在撰寫專欄的過程中進行微調。本專欄目的在於讓讀者快速的掌握wireshark這款工具的使用和一些背景知識,因爲很多的書籍和手冊要麼面面俱到,沒有突出重點,要麼原理沒有進行解釋,不利於學習。根據我這些年的從業經驗,相信通過本次專欄的學習,能夠讓讀者解決絕大多數和wireshark相關問題,同時明白背後的一些原理。在介紹wireshark這款軟件之前,有必要明確一些概念,如下:

  • 1,什麼是抓包
  • 2,什麼是報文
  • 3,爲什麼要分析報文
  • 4,爲什麼使用wireshark
  • 5,wireshark能夠幹什麼

1,什麼是抓包
抓包就是抓取網絡中傳輸的實際數據。例如我們訪問百度的網址,百度服務器給我們傳輸圖片,文字等信息。對於用戶來說,所看到的就是圖片,文字這些直觀的東西。但是之於實際在網絡中的傳輸來說,要進行一系列的協商,最基本的要明確通信雙方的地址,包括IP地址、端口地址等等。因此在實際傳輸的數據就會包括相應的地址,端口等諸多信息,這些信息就是由網絡協議來規定的。因此實際傳輸過程中,不僅僅包括圖片這些內容數據信息,還包括協議規定的一系列信息。Wireshark作用之一就是將這些協議信息連同圖片文字等數據內容一起進行捕獲(捕獲位置就是指定網卡,即數據的出入口),我們稱之爲抓包。由此可見有了協議數據之後,就可以分析這些協議規則了。

2,什麼是報文
上述過程中wireshark捕獲的所有數據,最初是存儲在內存中,最終會按照一定的格式存儲到硬盤上,所得到的存儲文件就是報文文件。在平時工作中,爲了方便通常簡稱某某報文。TCP/IP卷一中的報文往往是一片報文的簡稱,比如TCP報文段,表示的是單次TCP交互的內容,通常是小於1460個字節數據。對於新手來說,不同場景下對於報文的稱呼可能會導致一些困惑,需要注意。對於wireshark來說,默認的是.pcap或者.pcapng格式的報文。對於這種格式的報文,後面會有單獨的一章分析其格式,因爲wireshark UI界面中顯示了報文格式的相關一些數據,需要使用者知道其來源。當然報文格式還包括.cap.gz,.dmp等等多種形式,不同的抓包軟件存儲的報文格式也會有所差異。文件格式的差異往往是文件頭的不同,每一種文件都有自己的TLV格式。除此之外,報文中的協議數據和內容數據都是一樣的。

3,爲什麼要分析報文

  • (1),剛纔說了報文中包含計算機網絡協議的數據,分析這些通信數據,有助於我們理解計算機網絡協議的原理,使得我們去學習計算機網絡協議的時候更加的容易,而不是僅僅停留在理論層次。我就是在工作中反覆的分析真實場景數據,纔對學校期間那些晦澀難懂的概念恍然大悟.。如果你有實際分析觀察過TCP PUSH標誌位的使用場景,你一定能夠切實的理解該此標誌位。
  • (2),當然像我從事的DPI行業,分析報文的特徵數據,分析惡意流量,分析用戶行爲特徵,分析網絡擁塞狀況,還原報文中視頻以及圖片,都需要藉助wireshark進行分析。
  • (3),還有一些運維的工作,甚至對實時性比較高的遊戲行業,也往往會用到此類工具輔助分析流量。
    由此可見,一款工具對於我們來說是非常的重要,同時學習wireshark不僅僅是一款工具的學習,其實也是計算機網絡協議等原理的學習。

4,爲什麼要使用wireshark
類似的報文分析工具有很多,例如sniffer,fiddler等等。不得不說這些軟件都有其應用的領域,也有其優勢。但是綜合來說wireshark具有如下幾大優點,使得其一直以應用最爲廣泛的報文捕獲和分析工具。

  • (1)、支持協議數量龐大,最新版本數量2000+(我的是2.4版本,版本比較低,協議也在1900+),涵蓋了目前應用場景下的絕大多數公有協議,選擇視圖->內部->支持的協議,可得圖1:
    在這裏插入圖片描述
    圖1
  • (2)、強大的過濾器功能,提供了協議本身所能提供的信息以及大量的擴展信息字段,選擇右上角的過濾器,如圖2。
    在這裏插入圖片描述
    圖2
  • (3)、C,Lua插件功能。由於很多的私有協議,wireshark沒法支持,這個時候就可以利用wireshark提供的插件使用其對已有基礎協議的解析功能。當然對於lua插件的更多內容將在高級部分重點加以介紹。
  • (4)、開源,可以直接在github上搜索。正是由於其開源,一些主推協議的廠商會及時的更新wireshark上的協議解析,使其支持最新版本。例如quic協議是google主推的一個協議,由於該協議目前一直在不斷的演進,每一次的協議draft,wireshark基本都會跟進對應的協議解析。像很多的工具可能現在都不支持quic協議的解析,畢竟quic目前還是draft,沒有正式的成爲標準。
  • (5)、提供了tshark命令行工具,方便對報文進行批處理,處理運行速度快,因爲解碼報文,協議解析等方面主要是c語言編寫的,效率高。
  • (6)、wireshark 對於Linux以及Windows都支持。
    以上的種種優勢,使得wireshark在很多的應用場景下都有被用到。

5,wireshark能夠幹什麼
在前面部分其實以及說明了wireshark的作用。包括協議分析,網絡故障定位,報文批量增刪改查,報文數據(文字,圖片,視頻,文件等)還原,私有協議插件的編寫等等。基本上和通信數據相關的問題,都會使用到該軟件。

二,wirshark下載安裝
由於wireshark對於Linux以及Windows都支持,因此安裝需要分兩個平臺。
1,windows下較爲簡單,和所有其他軟件安裝類似,直接到官網下載安裝即可。需要注意的是安裝時候需要勾選上winpcap,這個是windows下用於抓取網卡數據的必要組件。
2,多數Linux安裝源的wireshark版本較老,無法跟上協議的更新速度,有的甚至不支持lua插件的運行,因此建議採用源碼下載,編譯安裝,源碼路徑見這裏 。linux安裝軟件的步奏就是三步,如下:

./configure
make
make install

遇到依賴提示安裝對應的依賴即可,我在centos7上成功安裝wireshark2.6版本。實際上在linux上成功的運行lua插件還有很多的配置,我在後續腳本插件部分會有更詳細的說明。

本節就是簡單的介紹了wireshark以及一些簡單的概念,希望在接下來的學習中,你能有所收穫。

本文爲CSDN村中少年原創文章,未經允許不得轉載,博主鏈接這裏

發佈了134 篇原創文章 · 獲贊 196 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章