抓包工具Wireshark的使用

WireShark是很是流行的網絡封包分析軟件,功能十分強大。能夠截取各類網絡封包,顯示網絡封包的詳細信息。html

WireShark界面簡介java

  • 啓動WireShark的界面以下:express

  • 選擇網卡

    wireshark是捕獲機器上的某一塊網卡的網絡包,當你的機器上有多塊網卡的時候,你須要選擇一個網卡。windows

    點擊Caputre->Interfaces.. 出現下面對話框,選擇正確的網卡。而後點擊"Start"按鈕, 開始抓包。網絡

  • 窗口的主要組成部分app

    • Display Filter(顯示過濾器),  用於過濾
    • Packet List Pane(封包列表), 顯示捕獲到的封包, 有源地址和目標地址,端口號。 顏色不一樣,表明
    • Packet Details Pane(封包詳細信息), 顯示封包中的字段
    • Dissector Pane(16進制數據)
    • Miscellanous(地址欄,雜項)
  • 抓取包對應的OSI七層模型tcp

  • 抓取的TCP包的具體內容函數

  • 封包詳細信息工具

    封包列表的面板中顯示,編號,時間戳,源地址,目標地址,協議,長度,以及封包信息。 你能夠看到不一樣的協議用了不一樣的顏色顯示。
    你也能夠修改這些顯示顏色的規則,  View ->Coloring Rules. post


wireshark過濾語法總結

wireshark進行過濾時,按照過濾的語法可分爲協議過濾和內容過濾:

  • 對標準協議,既支持粗粒度的過濾如HTTP,也支持細粒度的、依據協議屬性值進行的過濾如
    tcp.port==53
    http.request.method=="GET"
  • 對內容的過濾,既支持深度的字符串匹配過濾如http contains "Server",也支持特定偏移處值的匹配過濾如
    tcp[20:3] == 47:45:54

wireshark有兩種過濾器:

  • 捕捉過濾器(CaptureFilters):用於決定將什麼樣的信息記錄在捕捉結果中。
  • 顯示過濾器(DisplayFilters):用於在捕捉結果中進行詳細查找。

捕捉過濾器在抓抱前進行設置,決定抓取怎樣的數據;顯示過濾器用於過濾抓包數據,方便stream的追蹤和排查。捕捉過濾器僅支持協議過濾,顯示過濾器既支持協議過濾也支持內容過濾。兩種過濾器它們支持的過濾語法並不同。
下面來詳細學習兩種過濾器

  • 捕捉過濾器--捕捉前依據協議的相關信息進行過濾設置
    1. 語法
      Protocol Direction Host(s) Value Logical Operations Other expression
    2. 字段詳解
      • Protocol(協議):
        可能值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.
        若是沒指明協議類型,則默認爲捕捉全部支持的協議。
        注:在wireshark的HELP-Manual Pages-Wireshark Filter中查到其支持的協議。
      • Direction(方向):
        可能值: src, dst, src and dst, src or dst
        若是沒指明方向,則默認使用 「src or dst」 做爲關鍵字。
        」host 10.2.2.2″與」src or dst host 10.2.2.2″等價。
      • Host(s):
        可能值: net, port, host, portrange.
        默認使用」host」關鍵字,」src 10.1.1.1″與」src host 10.1.1.1″等價。
      • Logical Operations(邏輯運算): 可能值:not, and, or.
        否(「not」)具備最高的優先級。或(「or」)和與(「and」)具備相同的優先級,運算時從左至右進行。
        「not tcp port 3128 and tcp port 23″與」(not tcp port 3128) and tcp port 23″等價。
        「not tcp port 3128 and tcp port 23″與」not (tcp port 3128 and tcp port 23)」不等價。
    3. 示例
      (host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8
      表示:捕捉IP爲10.4.1.12或者源IP位於網絡10.6.0.0/16,目的IP的TCP端口號在200至10000之間,而且目的IP位於網絡 10.0.0.0/8內的全部封包。
  • 顯示過濾器--對捕捉到的數據包依據協議或包的內容進行過濾
    • 協議過濾
    1. 語法
      Protocol.String1.String2 Comparison operator Value LogicalOperations Otherexpression
      string1和string2是可選的。依據協議過濾時,可直接經過協議來進行過濾,也能依據協議的屬性值進行過濾。
    2. 示例
      //按協議進行過濾
      snmp || dns || icmp //顯示SNMP或DNS或ICMP封包。
      
      //按協議的屬性值進行過濾
      ip.addr == 10.1.1.1
      ip.src != 10.1.2.3 or ip.dst != 10.4.5.6
      ip.src == 10.230.0.0/16	//顯示來自10.230網段的封包。
      tcp.port == 25	//顯示來源或目的TCP端口號爲25的封包。
      tcp.dstport == 25 //顯示目的TCP端口號爲25的封包。
      http.request.method== "POST" //顯示post請求方式的http封包。
      http.host == "tracker.1ting.com" //顯示請求的域名爲tracker.1ting.com的http封包。
      tcp.flags.syn == 0×02 //顯示包含TCP SYN標誌的封包。
  • 內容過濾
    1. 深度字符串匹配
      使用contains:Does the protocol, field or slice contain a value
      示例
      //顯示payload中包含"http"字符串的tcp封包。
      tcp contains "http"
      //顯示請求的uri包含"online"的http封包。
      http.request.uri contains "online"
    2. 特定偏移處值的過濾
      //16進制形式,tcp頭部通常是20字節,因此這個是對payload的前三個字節進行過濾
      tcp[20:3] == 47:45:54
      http.host[0:4] == "trac"
    3. 過濾中函數的使用(upper、lower)

      upper(string-field) - converts a string field to uppercase
      lower(string-field) - converts a string field to lowercase

      示例
      upper(http.request.uri) contains "ONLINE"

wireshark過濾支持比較運算符、邏輯運算符,內容過濾時還能使用位運算。 若是過濾器的語法是正確的,表達式的背景呈綠色。若是呈紅色,說明表達式有誤。

PS:

今天總結完這篇使用手冊後,寫了一個捕獲過濾器:

tcp src host 10.9.146.113

使用"Compile selected BPFs",但WireShark總是不經過,提示錯誤

'tcp' modifier applied to host

一直疑惑不解,我是按照語法來寫的,怎麼編譯不經過呢?!

最後各類查呀,才知道「對於tcp/udp協議只能監聽端口號,而ip協議只能監聽主機地址,tcp/udp位於傳輸層」!!

這是逼我這看TCP/IP協議呀!在查的過程當中又順帶知道了有同類tcpdump工具不能用於windows),而tcpdump工具是基於libpcap。

libpcap是一個網絡數據包捕獲函數庫,不少抓包工具都是基於它來開發的,WireShark也不例外,而在windows上WireShark是基於wincap的。

在「man tcpdump」的時候看到Expression是語法是pcap-filter,這個語法應該就是libcap的語法。

經過上面的總結,因而我決定須要看:《TCP/IP協議》、tcpdump工具、libcap。

相關文章
相關標籤/搜索