8.1 Wireshark定制
Wireshark的默認行為通常可以很好地滿足您的需求。但是,隨著您對Wireshark的熟悉,可以通過各種方式對其進行自定義,以更好地滿足您的需求。在本章中,我們探討:
- 如何使用命令行參數啟動Wireshark
- 如何著色數據包列表
- 如何控制協議解剖
- 如何使用各種首選項設置
8.1.1 從命令行啟動Wireshark
您可以從命令行啟動Wireshark,但也可以從大多數Window管理器中啟動。在本節中,我們將介紹從命令行啟動它。
Wireshark支持大量的命令行參數。要查看它們是什么,只需輸入命令wirehark -h。
*可從Wireshark獲得幫助信息。 *
Wireshark 3.3.0 (v3.3.0rc0-1101-ge38e2df5a2b2)
Interactively dump and analyze network traffic.
See https://www.wireshark.org for more information.
Usage: wireshark [options] ... [ <infile> ]
Capture interface:
-i <interface>, --interface <interface>
name or idx of interface (def: first non-loopback)
-f <capture filter> packet filter in libpcap filter syntax
-s <snaplen>, --snapshot-length <snaplen>
packet snapshot length (def: appropriate maximum)
-p, --no-promiscuous-mode
don't capture in promiscuous mode
-k start capturing immediately (def: do nothing)
-S update packet display when new packets are captured
-l turn on automatic scrolling while -S is in use
-I, --monitor-mode capture in monitor mode, if available
-B <buffer size>, --buffer-size <buffer size>
size of kernel buffer (def: 2MB)
-y <link type>, --linktype <link type>
link layer type (def: first appropriate)
--time-stamp-type <type> timestamp method for interface
-D, --list-interfaces print list of interfaces and exit
-L, --list-data-link-types
print list of link-layer types of iface and exit
--list-time-stamp-types print list of timestamp types for iface and exit
Capture stop conditions:
-c <packet count> stop after n packets (def: infinite)
-a <autostop cond.> ..., --autostop <autostop cond.> ...
duration:NUM - stop after NUM seconds
filesize:NUM - stop this file after NUM KB
files:NUM - stop after NUM files
packets:NUM - stop after NUM packets
Capture output:
-b <ringbuffer opt.> ..., --ring-buffer <ringbuffer opt.>
duration:NUM - switch to next file after NUM secs
filesize:NUM - switch to next file after NUM KB
files:NUM - ringbuffer: replace after NUM files
packets:NUM - switch to next file after NUM packets
interval:NUM - switch to next file when the time is
an exact multiple of NUM secs
Input file:
-r <infile>, --read-file <infile>
set the filename to read from (no pipes or stdin!)
Processing:
-R <read filter>, --read-filter <read filter>
packet filter in Wireshark display filter syntax
-n disable all name resolutions (def: all enabled)
-N <name resolve flags> enable specific name resolution(s): "mnNtdv"
-d <layer_type>==<selector>,<decode_as_protocol> ...
"Decode As", see the man page for details
Example: tcp.port==8888,http
--enable-protocol <proto_name>
enable dissection of proto_name
--disable-protocol <proto_name>
disable dissection of proto_name
--enable-heuristic <short_name>
enable dissection of heuristic protocol
--disable-heuristic <short_name>
disable dissection of heuristic protocol
User interface:
-C <config profile> start with specified configuration profile
-H hide the capture info dialog during packet capture
-Y <display filter>, --display-filter <display filter>
start with the given display filter
-g <packet number> go to specified packet number after "-r"
-J <jump filter> jump to the first packet matching the (display)
filter
-j search backwards for a matching packet after "-J"
-t a|ad|adoy|d|dd|e|r|u|ud|udoy
format of time stamps (def: r: rel. to first)
-u s|hms output format of seconds (def: s: seconds)
-X <key>:<value> eXtension options, see man page for details
-z <statistics> show various statistics, see man page for details
Output:
-w <outfile|-> set the output filename (or '-' for stdout)
--capture-comment <comment>
set the capture file comment, if supported
Miscellaneous:
-h, --help display this help and exit
-v, --version display version info and exit
-P <key>:<path> persconf:path - personal configuration files
persdata:path - personal data files
-o <name>:<value> ... override preference or recent setting
-K <keytab> keytab file to use for kerberos decryption
--display <X display> X display to use
--fullscreen start Wireshark in full screen
我們將依次檢查每個命令行選項。
首先要注意的是,wireshark本身發出命令將啟動Wireshark。但是,您可以根據需要包含任意數量的命令行參數。它們的含義如下(按字母順序排列):
-a <capture autostop condition>, –autostop <capture autostop condition>
指定一個標準,該標準指定Wireshark何時停止寫入捕獲文件。該標準的格式為test:value,其中test是以下之一:
- duration:value
數秒后停止寫入捕獲文件。
- filesize:value
捕獲文件的大小達到千字節大小(千字節為1000字節,而不是1024字節)后,停止寫入。如果將此選項與-b選項一起使用,則Wireshark將停止寫入當前捕獲文件,如果達到文件大小,則切換到下一個捕獲文件。
- files:value
在寫入文件數量后,停止寫入捕獲文件。
- packets:value
寫入值數量的數據包后,停止寫入捕獲文件。
-b <capture ring buffer option>
如果指定了最大捕獲文件大小,則此選項將使Wireshark以指定數量的文件在 “ring buffer”模式下運行。在 “ring buffer”模式下,Wireshark將寫入多個捕獲文件。它們的名稱取決于文件編號以及創建日期和時間。
當第一個捕獲文件填滿時,Wireshark將切換為寫入下一個文件,依此類推。使用files選項,還可以形成 “ring buffer”。這將填滿新文件,直到指定數量的文件為止,此時將丟棄第一個文件中的數據,以便可以寫入新文件。
如果指定了可選的持續時間,則即使當前文件沒有完全填滿,如果經過指定的秒數,Wireshark也會切換到下一個文件。
- duration:value
即使當前文件未完全填滿,值秒過后也要切換到下一個文件。
- filesize:value
大小達到千字節(其中千字節為1000字節,而不是1024字節)后,切換到下一個文件。
- files:value
在寫入文件數量(形成ring buffer)后,從第一個文件重新開始。
- packets:value
即使當前文件未完全填滿,也要在寫入值數量的數據包后切換到下一個文件。
- interval:value
時間是秒數的精確倍數時,請切換到下一個文件。
-B <capture buffer size>, –buffer-size <capture buffer size>
設置捕獲緩沖區大小(以MB為單位,默認為2MB)。捕獲驅動程序使用它來緩沖數據包數據,直到該數據可以寫入磁盤為止。如果在捕獲時遇到數據包丟失,請嘗試增加此大小。在某些平臺上不受支持。
-C <config profile>
從指定的配置文件開始。
-c <capture packet count>
此選項指定捕獲實時數據時要捕獲的最大數據包數。它將與該-k選項結合使用。
–capture-comment <comment>
如果文件格式支持,則將注釋字符串添加到捕獲文件。
-d <layer_type>==<selector>,<decode_as_protocol>
“解碼為”,有關詳細信息,請參見8.1.3.1 用戶指定的解碼。示例:
tcp.port == 8888,http
-D, –list-interfaces
打印Wireshark可以捕獲的接口列表,然后退出。對于每個網絡接口,將打印一個數字和一個接口名稱,并可能在其后顯示該接口的文本描述。可以將接口名稱或編號提供給-i標志,以指定要捕獲的接口。
這對于沒有命令列出它們的系統(例如Windows系統或缺少的UNIX系統ifconfig -a)很有用。該數字在界面名稱為GUID的Windows上尤其有用。
請注意,“可以捕獲”表示Wireshark能夠打開該設備進行實時捕獲。如果在您的系統上,必須從具有特殊特權的帳戶運行執行網絡捕獲的程序,那么,如果Wireshark是使用-D標志運行的,而不是從該帳戶運行的,則它將不會列出任何接口。
–display <DISPLAY>
設置要使用的X顯示器,而不是環境中定義的顯示器或默認顯示器。
–enable-protocol <proto_name>, –disable-protocol <proto_name>
啟用和禁用協議解剖。
–enable-heuristic <short_name>, –disable-heuristic <short_name>
啟用和禁用剖析啟發式協議。
-f <capture filter>
此選項設置捕獲數據包時要使用的初始捕獲過濾器表達式。
–fullscreen
全屏啟動Wireshark。
-g <packet number>
使用-r標志讀入捕獲文件后,轉到給定的數據包編號。
-h, –help
此選項要求Wireshark打印其版本和使用說明(如下所示)并退出。
-H
在實時數據包捕獲期間隱藏捕獲信息對話框。
-i <capture interface>, –interface <capture interface>
設置用于實時數據包捕獲的網絡接口或管道的名稱。
網絡接口名稱應與wireshark -D (上述)中列出的名稱之一匹配。wireshark -D也可以使用數字,如所報告。如果您正在使用UNIX, netstat -i,ifconfig -a或者ip link可能也工作列表界面的名稱,雖然不是所有的UNIX版本支持的-a標志 ifconfig。
如果未指定接口,則Wireshark會搜索接口列表,如果有任何非環回接口,則選擇第一個非環回接口,如果沒有非環回接口,則選擇第一個環回接口;否則,選擇第一個環回接口。如果沒有接口,Wireshark將報告錯誤,并且不會開始捕獲。
管道名稱應為FIFO(命名管道)的名稱或“-”,以從標準輸入中讀取數據。從管道讀取的數據必須采用標準的libpcap格式。
-J <jump filter>
使用該-r標志讀取捕獲文件后,跳至與過濾器表達式匹配的第一個數據包。過濾器表達式為顯示過濾器格式。如果找不到精確匹配,則選擇第一個數據包。
-I, –monitor-mode
如果可用,請以監視模式捕獲無線數據包。
-j
在選項后-J向后搜索要查找的第一個數據包時,請使用此選項。
-k
該-k選項指定Wireshark應該立即開始捕獲數據包。此選項需要使用-i參數來指定將發生數據包捕獲的接口。
-K <keytab file>
使用指定的文件進行Kerberos解密。
-l
如果在捕獲過程中數據包到達時自動更新了數據包列表窗格(由-S標志指定),則此選項將打開自動滾動 。
-L, –list-data-link-types
列出接口支持的數據鏈接類型,然后退出。
–list-time-stamp-types
列出可為接口和出口配置的時間戳類型。
-m <font>
此選項設置Wireshark顯示的大多數文本使用的字體名稱。
-n
禁用網絡對象名稱解析(例如主機名,TCP和UDP端口名稱)。
-N <name resolving flags>
為特定類型的地址和端口號打開名稱解析。該參數是一個字符串,可能包含以下字母:
- N
使用外部名稱解析器。
- d
從捕獲的DNS數據包啟用名稱解析。
- m
啟用MAC地址解析。
- n
啟用網絡地址解析。
- t
啟用傳輸層端口號重新標記。
- v
啟用VLAN ID解析。
-o <preference or recent settings>
設置首選項或最新值,覆蓋默認值和從首選項或最新文件讀取的任何值。標志的參數是形式為prefname:value的字符串,其中prefname是首選項的名稱(與preferences或recent文件中出現的名稱相同),而 value是應將其設置為的值。可以在單個命令行上給出-o <preference settings>的多個實例。
設置單個首選項的示例為:
wireshark -o mgcp.display_dissect_tree:TRUE
設置多個首選項的示例為:
wirehark -o mgcp.display_dissect_tree:TRUE -o mgcp.udp.callagent_port:2627
您可以從首選項文件中獲取所有可用首選項字符串的列表。有關詳細信息]請參見附錄B Wireshark文件和文件夾。
可以使用“ uat”覆蓋用戶訪問表,后跟UAT文件名和該文件的有效記錄:
wireshark -o “uat:user_dlts:"User 0 (DLT=147)","http","0","","0",""“
上面的示例將將libpcap數據鏈接類型為147的數據包分解為HTTP,就像在DLT_USER協議首選項中配置了它一樣。
-p, –no-promiscuous-mode
不要將接口置于混雜模式。請注意,由于某些其他原因,該接口可能處于混雜模式。因此,-p不能用于確保捕獲的唯一流量是發送到或從運行Wireshark的計算機發送的流量,廣播流量以及到該計算機接收的地址的多播流量。
-P <path setting>
通常會自動檢測到特殊路徑設置。這用于特殊情況,例如,從USB記憶棒上的已知位置啟動Wireshark。
該標準的格式為key:path,其中key是以下之一:
- persconf:path
個人配置文件的路徑,例如首選項文件。
- persdata:path
個人數據文件的路徑,它是最初打開的文件夾。初始化后,最近的文件將使該文件夾最后一次使用。
-r <infile>, –read-file <infile>
此選項提供Wireshark讀取和顯示的捕獲文件的名稱。此捕獲文件可以是Wireshark理解的格式之一。
-R <read (display) filter>, –read-filter <read (display) filter>
此選項指定從捕獲文件讀取數據包時要應用的顯示過濾器。該過濾器的語法與5.3.3 查看時過濾數據包討論的顯示過濾器的語法相同。與過濾器不匹配的數據包將被丟棄。
-s <capture snapshot length>, –snapshot-length <capture snapshot length>
此選項指定捕獲數據包時要使用的快照長度。Wireshark將僅捕獲每個數據包的快照字節數據。
-S
此選項指定Wireshark在捕獲數據包時將顯示數據包。這是通過在一個過程中捕獲并在單獨的過程中顯示它們來完成的。這與“捕獲選項”對話框中的“實時更新數據包列表”相同。
-t <time stamp format>
此選項設置在數據包列表窗口中顯示的數據包時間戳的格式。格式可以是以下之一:
- r
相對,它指定相對于捕獲的第一個數據包顯示的時間戳。
- a
絕對,指定要顯示所有數據包的實際時間。
- ad
帶日期的絕對值,它指定為所有數據包顯示實際的日期和時間。
- adoy
YYYY / DOY日期的絕對值,它指定所有數據包的實際日期和時間。
- d
Delta,指定時間戳相對于前一個數據包。
dd:增量,它指定時間戳相對于先前顯示的數據包。
- e
紀元,指定時間戳為自紀元以來的秒數(Jan 1, 1970 00:00:00)
- u
絕對,指定在UTC中顯示所有數據包的實際時間。
- ud
帶日期的絕對值,它指定要顯示UTC中所有數據包的實際日期和時間。
- udoy
YYYY / DOY日期的絕對值,它指定要顯示UTC中所有數據包的實際日期和時間。
-u <s | hms>
將時間戳顯示為秒(默認為“ s”)或小時,分鐘和秒(“ hms”)
-v, –version
該選項要求Wireshark打印出其版本信息并退出。
-v, –version
此選項設置用于保存捕獲的數據包的文件的名稱。對于標準輸出,可以為“-”。
-y <capture link type>, –link-type <capture like types>
如果使用從命令行開始捕獲-k,請設置要在捕獲數據包時使用的數據鏈接類型。報告-L 的值是可以使用的值。
–time-stamp-type <type>
如果使用從命令行開始捕獲-k,請設置要在捕獲數據包時使用的時間戳類型。報告 --list-time-stamp-types的值是可以使用的值。
-X <eXtension option>
指定要傳遞給Wireshark / Tshark模塊的選項。eXtension選項的格式為extension_key:value,其中extension_key可以是:
- lua_script:<lua_script_filename>
告訴Wireshark加載默認Lua腳本之外的給定腳本。
- lua_script:<lua_script_filename>
Wireshark將給定參數傳遞給num標識的lua腳本,該腳本 是lua_script命令的數字索引順序。例如,如果僅使用加載了一個腳本 -X lua_script:my.lua, then -X lua_script1:foo will pass the string foo to the my.lua script. If two scripts were loaded, such as -X lua_script:my.lua -X lua_script:other.lua 以這種順序加載了兩個腳本,則 -X lua_script2:bar 將把string bar 傳遞給第二個lua腳本,即other.lua。
- read_format:<file_type>
告訴Wireshark使用特定的輸入文件類型,而不是自動確定它。
- read_format:<file_type>
定義標準輸入接口的描述,而不是默認值:”Standard input”。
-Y <display filter>, –display-filter <display filter>
從給定的顯示過濾器開始。
-z <statistics-string>
獲取Wireshark來收集各種類型的統計信息,并將結果顯示在半實時更新的窗口中。有關當前實施的統計信息,請參閱Wireshark手冊頁。
8.1.2 數據包著色
Wireshark中非常有用的機制是數據包著色。您可以設置Wireshark,以便它將根據顯示過濾器為數據包著色。這使您可以強調您可能感興趣的數據包。
您可以在Wireshark Wiki著色規則頁面找到很多著色規則示例。
Wireshark中有兩種著色規則:僅在退出程序之前有效的臨時規則,以及保存在首選項文件中的永久規則,以便下次運行Wireshark時可用。
可以通過選擇一個數據包并按 Ctrl鍵和數字鍵之一。這將基于當前選定的對話創建一個著色規則。它將嘗試首先基于TCP,然后基于UDP,然后基于IP,最后基于以太網來創建會話篩選器。 在數據包詳細信息窗格中單擊鼠標右鍵時,也可以通過選擇Colorize with Filter →Color X菜單項來創建臨時過濾器。
要永久彩色化的分組中,View → Coloring Rules…。Wireshark將顯示“Coloring Rules”對話框, 如圖8.1“著色規則”對話框所示。
圖8.1。“著色規則”對話框
如果這是第一次使用“Coloring Rules”對話框,并且您使用的是默認配置配置文件,則應該看到默認規則,如上所示。
您可以通過單擊+按鈕來創建新規則。您可以通過單擊-按鈕刪除一個或多個規則。Copy按鈕將復制一條規則。
您可以通過雙擊規則名稱或過濾條件來編輯規則。在 圖8.1“著色規則”對話框中,正在編輯規則“校驗和錯誤”的名稱。單擊Foreground和Foreground按鈕將分別為前景色(文本)和背景色打開一個顏色選擇器圖8.2,“顏色選擇器”。
圖8.2。顏色選擇器
顏色選擇器的外觀取決于您的操作系統。顯示了macOS顏色選擇器。為選定的數據包選擇所需的顏色,然后單擊“OK。
圖8.3“在Wireshark中使用濾色器”顯示了Wireshark中使用的幾種濾色器的示例。請注意,幀詳細信息顯示已應用 “Bad TCP” 規則以及匹配的過濾器。
圖11.3 在Wireshark中使用濾色器
8.1.3 控制協議解剖
用戶可以控制協議的解剖方式。
每個協議都有自己的解剖器,因此解剖完整的數據包通常會涉及多個解剖器。當Wireshark嘗試為每個數據包找到正確的解剖器時(使用靜態“routes”和啟發式 “guessing”),在您的特定情況下,它可能會選擇錯誤的解剖器。例如,Wireshark不會知道您是否在不常見的TCP端口上使用通用協議,例如,在TCP端口800上而不是標準端口80上使用HTTP。
有兩種方法可以控制協議解剖器之間的關系:完全禁用協議解剖器或暫時轉移Wireshark調用解剖器的方式。
8.1.3.1 “Enabled Protocols” 對話框
啟用協議對話框可讓您啟用或禁用特定協議。默認情況下,大多數協議都是啟用的。禁用協議后,只要遇到該協議,Wireshark就會停止處理該數據包。
- tip
禁用協議將阻止顯示有關高層協議的信息。例如,假設您禁用了IP協議,并選擇了一個包含以太網,IP,TCP和HTTP信息的數據包。會顯示以太網信息,但不會顯示IP,TCP和HTTP信息-禁用IP會阻止它顯示上層協議。
要啟用或禁用協議選擇分Analyze → Enabled Protocols…。Wireshark將彈出 “Enabled Protocols” 對話框, 如圖8.4 “Enabled Protocols”對話框所示。
圖8.4。 “Enabled Protocols”對話框
要禁用或啟用協議,只需使用鼠標單擊復選框即可。請注意,在搜索框中輸入協議名稱的幾個字母會將列表限制為包含這些字母的那些協議。
您可以選擇以下操作:
Enable All
啟用列表中的所有協議。
Disable All
禁用列表中的所有協議。
Invert
切換列表中所有協議的狀態。
OK
保存并應用更改并關閉對話框,有關詳細信息,請參見附錄B Wireshark文件和文件夾。
Cancel
取消更改并關閉對話框。
8.1.3.1 用戶指定的解碼
“Decode As”功能使您可以暫時轉移特定的協議解剖。例如,如果您在網絡上進行了一些不常見的實驗,這可能會很有用。
解碼由于是通過選擇訪問Analyze → Decode As…。Wireshark將彈出“Decode As”對話框,如圖8.5“Decode As”對話框所示。
圖8.5。“Decode As”對話框
在此對話框中,您可以通過左側的編輯按鈕來編輯條目。
您也可以從數據包列表或數據包詳細信息的上下文菜單中彈出此對話框。然后它將基于當前選定的數據包包含一個新行。
如果您退出Wireshark或更改配置文件,除非您保存條目,否則這些設置將丟失。
+
為所選數據包添加新條目
-
刪除選定的條目。
Copy
復制所選條目。
Clear
清除用戶指定的解碼列表。
OK
應用用戶指定的解碼并關閉對話框。
Save
保存并應用用戶指定的解碼,然后關閉對話框。
Cancel
取消更改并關閉對話框。
8.1.4 首選項
您可以設置許多首選項。只需選擇 編輯Edit → Preferences…(Wireshark → Preferences…在MacOS)和Wireshark會彈出Preferences對話框,如圖 圖8.6,“首選項對話框”,與“用戶界面”頁面默認。左側是一棵樹,您可以在其中選擇要顯示的頁面。
- 該
OK按鈕將應用首選項設置并關閉對話框。 - 該
Cancel按鈕將恢復所有首選項設置為上次保存的狀態。
圖8.6。首選項對話框
Wireshark支持許多協議,這在“Protocols”窗格的一長串條目中有所體現。您可以通過展開“Protocols”并快速鍵入協議名稱的前幾個字母來跳至特定協議的首選項。
“Advanced” 窗格將使您可以查看和編輯Wireshark的所有首選項,類似于Firefox和Chrome網絡瀏覽器中的about:config和chrome:flags。
圖8.7。高級首選項
您可以通過在“Search” 條目中鍵入文本來搜索首選項。您還可以在命令行上將首選項名稱傳遞給Wireshark和TShark。例如,gui.prepend_window_title可用于區分Wireshark的不同實例:
$ wireshark -o “gui.prepend_window_title:Internal Network” &
$ wireshark -o “gui.prepend_window_title:External Network” &
8.1.5 配置配置文件
配置配置文件可用于配置和使用多于一組的首選項和配置。選擇Edit → Configuration Profiles…菜單項或按Shift+Ctrl+A 或者 Shift+?+A(macOS)和Wireshark將彈出“配置配置文件”對話框, 如圖8.8“配置配置文件對話框”所示。也可以單擊狀態欄的“Profile” 部分,以彈出帶有可用配置配置文件的菜單。
存儲在每個配置文件中的配置文件包括:
首選項(首選項)(8.1.4 首選項)
捕獲過濾器(cfilter)(5.3.6 定義和保存過濾器)
顯示過濾器(dfilter)(5.3.6 定義和保存過濾器)
著色規則(濾色器)(8.1.2 數據包著色)
禁用的協議(disabled_protos)(8.1.3.1 “Enabled Protocols” 對話框)
用戶可訪問表:
- 自定義HTTP標頭(custom_http_header_fields)
- 自定義IMF標頭(imf_header_fields)
- 自定義LDAP AttributeValue類型(custom_ldap_attribute_types)
- 顯示過濾器宏(dfilter_macros)(8.1.7 顯示篩選器宏)
- ESS類別屬性(ess_category_attributes)(8.1.8 ESS 類別屬性)
- MaxMind數據庫路徑(maxmind_db_paths)(8.1.9 MaxMind 數據庫路徑)
- K12協議(k12_protos)(8.1.18 Tektronix K12xx / 15 RF5 協議表)
- 對象標識符名稱和相關語法(8.1.11 對象標識符)
- PRES用戶上下文列表(pres_context_list)(8.1.12 PRES 用戶上下文列表)
- SCCP用戶表(sccp_users)(8.1.13 SCCP 用戶表)
- SNMP企業特定的陷阱類型(snmp_specific_traps)(8.1.16 SNMP 企業特定陷阱類型)
- SNMP用戶(snmp_users)(8.1.17 SNMP 用戶表)
- 用戶DLT表(user_dlts)(8.1.19 用戶 DLT 協議表)
- IKEv2解密表(ikev2_decryption_table)(8.1.10 IKEv2 解密表)
- Protobuf搜索路徑(protobuf_search_paths)(8.1.20 Protobuf 搜索路徑)
- Protobuf UDP消息類型(protobuf_udp_message_types)(8.1.21 Protobuf UDP 消息類型)
更改后的解剖器分配(decode_as_entries),可以在 “Decode As…” 對話框(8.1.3.1 用戶指定的解碼)中進行設置。
最近的一些設置(最近),例如主窗口中的窗格大小( 3.1 主視窗),數據包列表中的列寬(3.4.1 “Packet List” 窗格),查看菜單(3.2.3 “View” 菜單)和“文件打開”對話框中的最后一個目錄。
所有其他配置都存儲在個人配置文件夾中,并且是所有配置文件共有的。
圖8.8。配置配置文件對話框
Search for profile …
可以通過在搜索框中輸入部分個人資料名稱來過濾個人資料列表。
Type selection
在顯示的”All profiles”中過濾”Personal profiles” 和 “Global profiles”。
- Personal profiles -這些資料存儲在用戶的配置目錄中
- Global profiles-這些是Wireshark提供的配置文件
New (+)
創建一個新的配置文件。創建的配置文件的名稱為“新配置文件”并突出顯示,以便您更輕松地進行更改。
Delete (-)
刪除選定的配置文件。這包括此配置文件中使用的所有配置文件。可以同時選擇和刪除多個配置文件。無法刪除 “Default” 配置文件或全局配置文件。刪除 “Default” 配置文件將重置此配置文件。
Copy
復制所選的配置文件。這將復制列表中當前選擇的配置文件的配置。創建的配置文件的名稱與復制的配置文件的名稱相同,并帶有文本“(copy)”并突出顯示,以便您更輕松地進行更改。
Import
概要文件可以從zip歸檔文件導入,也可以直接從目錄結構導入。名稱已存在的配置文件以及名為”Default”的配置文件將被跳過。
Export
可以將配置文件導出到zip歸檔文件。導出過程中將跳過全局配置文件以及默認配置文件。可以在列表中單獨選擇配置文件,并且只會導出所選的配置文件。
OK
該按鈕保存所有更改,應用所選配置文件并關閉對話框。
Cancel
關閉此對話框。這將丟棄未保存的設置,不會添加新的配置文件,也不會刪除已刪除的配置文件。
Help
顯示此幫助頁面。
8.1.6 用戶表
用戶表編輯器用于管理Wireshark中的各種表。其主對話框的工作原理與8.1.2 數據包著色工作原理非常相似。
8.1.7 顯示篩選器宏
顯示過濾器宏是一種為復雜過濾器創建快捷方式的機制。例如,定義一個名為tcp_conv的顯示過濾器宏,其文本為
(ip.src == $1 and ip.dst == $2 and tcp.srcport == $3 and tcp.dstport == $4)
or (ip.src == $2 and ip.dst == $1 and tcp.srcport == $4 and tcp.dstport == $3)
將允許使用類似
${tcp_conv:10.1.1.2;10.1.1.3;1200;1400}
而不是輸入整個過濾器。
如 8.1.6 用戶表所述,可以通過用戶表管理顯示過濾器宏,方法是從菜單中選擇Analyze → Display Filter Macros。用戶表具有以下字段:
Name
宏的名稱。
Text
宏的替換文本使用$ 1,$ 2,$ 3 …作為輸入參數。
8.1.8 ESS類別屬性
Wireshark使用此表將ESS安全類別屬性映射到文本表示形式。通常在XML SPIF中找到要放入此表中的值,該XML SPIF用于定義安全性標簽。
該表是用戶表,具有以下字段:
Tag Set
代表類別標簽集的對象標識符。
Value
代表類別的值(標簽和證書值)。
Name
值的文字表示形式。
8.1.9 MaxMind數據庫路徑
如果您的Wireshark副本支持MaxMind的MaxMindDB庫,則可以使用它們的數據庫將IP地址與國家/地區,城市,自治系統編號和其他信息進行匹配。有些數據庫可供注冊用戶免費使用,而另一些則需要支付許可費用。有關更多信息,請參見MaxMind網站。
MaxMind數據庫的配置是用戶表,如8.1.6 用戶表所述,具有以下字段:
Database pathname
這指定了包含MaxMind數據文件的目錄。任何以.mmdb結尾的文件將被自動加載。
為您的數據文件的位置是你的,但/usr/share/GeoIP and /var/lib/GeoIP上常見的Linux和C:\ProgramData\GeoIP, C:\Program Files\Wireshark\GeoIP可能是在Windows不錯的選擇。
Wireshark的早期版本支持MaxMind的原始GeoIP Legacy數據庫格式。它們的配置類似于上面的MaxMindDB文件,除了GeoIP文件必須以Geo開頭并以.dat結尾。它們不再受支持,MaxMind于2018年4月停止分發GeoLite Legacy數據庫。
8.1.10 IKEv2解密表
如果提供了必要的信息,Wireshark可以解密IKEv2(Internet密鑰交換版本2)數據包的加密有效載荷。請注意,您只能使用此功能解密IKEv2數據包。如果要解密IKEv1數據包或ESP數據包,請分別使用ISAKMP協議首選項下的Log Filename設置或ESP協議首選項下的設置。
這由用戶表處理,具有以下字段:
Initiator’s SPI
IKE_SA的發起者的SPI。該字段采用不帶“ 0x”前綴的十六進制字符串,并且長度必須為16個十六進制字符(代表8個八位字節)。
Responder’s SPI
IKE_SA的響應者的SPI。該字段采用不帶“ 0x”前綴的十六進制字符串,并且長度必須為16個十六進制字符(代表8個八位字節)。
SK_ei
用于對從發起方到響應方的IKEv2數據包進行加密/解密的密鑰。該字段采用不帶“ 0x”前綴的十六進制字符串,并且其長度必須滿足所選加密算法的要求。
SK_er
用于對從響應者到發起者的IKEv2數據包進行加密/解密的密鑰。該字段采用不帶“ 0x”前綴的十六進制字符串,并且其長度必須滿足所選加密算法的要求。
Encryption Algorithm
IKE_SA的加密算法。
SK_ai
用于計算從響應者到發起者的IKEv2數據包完整性校驗和數據的密鑰。該字段采用不帶“ 0x”前綴的十六進制字符串,并且其長度必須滿足所選完整性算法的要求。
SK_ar
用于計算從發起方到響應方的IKEv2數據包完整性校驗和數據的密鑰。該字段采用不帶“ 0x”前綴的十六進制字符串,并且其長度必須滿足所選完整性算法的要求。
Integrity Algorithm
IKE_SA的完整性算法。
8.1.11 對象標識符
許多使用ASN.1的協議都使用對象標識符(OID)來唯一標識某些信息。在許多情況下,它們在擴展機制中使用,以便可以定義新的對象標識符(和關聯的值),而無需更改基本標準。
雖然Wireshark具有許多OID及其關聯值的語法的知識,但可擴展性意味著可能會遇到其他值。
Wireshark使用此表允許用戶定義Wireshark不知道的對象標識符的名稱和語法(例如,私有定義的X.400擴展名)。它還允許用戶覆蓋Wireshark確實知道的對象標識符的名稱和語法(例如,將名稱“ id-at-countryName”更改為“ c”)。
該表是用戶表,具有以下字段:
OID
對象標識符的字符串表示形式,例如“ 2.5.4.6”。
Name
解剖對象標識符時,Wireshark應該顯示的名稱,例如(“ c”);
Syntax
與對象標識符關聯的值的語法。這必須是Wireshark已經知道的語法之一(例如“ PrintableString”)。
8.1.12 PRES用戶上下文列表
當捕獲不包含帶有對話的呈現上下文定義列表的PRES包時,Wireshark使用此表將呈現上下文標識符映射到給定的對象標識符。
該表是用戶表,具有以下字段:
Context Id
一個整數,表示與此關聯有效的表示上下文標識符。
Syntax Name OID
代表抽象語法名稱的對象標識符,該名稱定義了在該關聯上進行的協議。
8.1.13 SCCP用戶表
Wireshark使用此表將特定協議映射到SCCP的特定DPC / SSN組合。
該表是用戶表,具有以下字段:
Network Indicator
一個整數,代表該關聯對其有效的網絡指示符。
Called DPCs
代表此關聯有效的dpc的整數范圍。
Called SSNs
代表此關聯有效的ssns的整數范圍。
User protocol
通過該關聯進行的協議
8.1.14 SMI(MIB和PIB)模塊
如果您的Wireshark副本支持libSMI,則可以在此處指定MIB和PIB模塊的列表。COPS和SNMP解剖器可以使用它們來解析OID。
Module name
模塊的名稱,例如IF-MIB。
8.1.15 SMI(MIB和PIB)路徑
如果您的Wireshark副本支持libSMI,則可以在此處指定一個或多個指向MIB和PIB模塊的路徑。
Directory name
模塊目錄,例如/usr/local/snmp/mibs。Wireshark會自動為您的系統使用標準的SMI路徑,因此通常無需在此處添加任何內容。
8.1.16 SNMP企業特定陷阱類型
Wireshark使用此表將特定陷阱值映射到陷阱PDU中的用戶定義的描述。包詳細信息特定陷阱元素中顯示了說明。
該表是用戶表,具有以下字段:
Enterprise OID
代表生成陷阱的對象的對象標識符。
Trap Id
表示特定陷阱代碼的整數。
Description
在數據包詳細信息中顯示的描述。
8.1.17 SNMP用戶表
Wireshark使用此表來驗證身份驗證和解密加密的SNMPv3數據包。
該表是用戶表,具有以下字段:
Engine ID
如果給出該條目,則僅用于引擎ID為this的數據包。此字段采用格式為0102030405的十六進制字符串。
Username
這是用戶名。當單個用戶為多個不同的SNMP引擎使用多個密碼時,將采用匹配兩者的第一個條目,如果您需要捕獲所有engine-id(空),則該條目應為最后一個。
Authentication model
要使用的身份驗證模型(“ MD5”或“ SHA1”)。
Password
驗證密碼。使用\ xDD表示不可打印的字符。必須以\ xDD字符序列形式輸入十六進制密碼。例如,十六進制密碼010203040506必須輸入為 \ x01 \ x02 \ x03 \ x04 \ x05 \ x06。該\字符必須被視為不可打印的字符,也就是說,它必須輸入\ x5C或\ x5c。
Privacy protocol
使用哪種加密算法(“ DES”或“ AES”)。
Privacy password
隱私密碼。使用\ xDD表示不可打印的字符。必須以\ xDD字符序列形式輸入十六進制密碼。例如,十六進制密碼010203040506必須輸入為\ x01 \ x02 \ x03 \ x04 \ x05 \ x06。該\ 字符必須被視為不可打印的字符,也就是說,它必須輸入\ x5C或\ x5c。
8.1.18 Tektronix K12xx / 15 RF5協議表
泰克K12xx / 15 rf5文件格式使用幫助程序文件(* .stk)來標識特定接口使用的各種協議。Wireshark不會讀取這些stk文件,它使用一個表來幫助其識別要使用的最低層協議。
Stk文件到協議的匹配由用戶表處理,具有以下字段:
Match string
stk文件名的部分匹配,則第一個匹配獲勝,因此,如果您有一個特定的情況而一個普通的情況,則該特定情況必須首先出現在列表中。
Protocol
這是封裝協議的名稱(數據包數據中的最低層),可以是協議的名稱(例如mtp2,eth_witoutfcs,sscf-nni),也可以是封裝協議和“應用程序”協議的名稱在它上面用冒號分隔(例如sscop:sscf-nni,sscop:alcap,sscop:nbap等)
8.1.19 用戶DLT協議表
當pcap文件使用用戶DLT(147至162)之一時,Wireshark使用此表來了解要為每個用戶DLT使用哪種協議。
該表是用戶表,具有以下字段:
DLT
用戶之一。
Payload protocol
這是有效負載協議的名稱(數據包數據中的最低層)。(例如,“ eth”代表以太網,“ ip”代表IPv4)
Header size
如果存在頭協議(在有效負載協議之前),則可告知此頭的大小。值為0將禁用標頭協議。
Header protocol
要使用的頭協議的名稱(默認使用“數據”)。
Trailer size
如果有一個拖車協議(在有效載荷協議之后),它將告知該拖車是什么尺寸。值為0將禁用尾部協議。
Trailer protocol
要使用的尾部協議的名稱(默認使用“數據”)。
8.1.20 Protobuf搜索路徑
協議緩沖區(Protobuf)消息的 二進制有線格式不是自描述協議。例如,varintprotobuf數據包中的線路類型可以轉換為協議緩沖區語言的 int32,int64,uint32,uint64,sint32,sint64,bool或enum字段類型 。應該為Wireshark配置協議緩沖區語言文件(* .proto),以根據消息,枚舉和字段定義正確分解protobuf數據。
您可以在Protobuf協議首選項中指定protobuf搜索路徑。例如,如果您使用路徑定義了一個原型文件,d:/my_proto_files/helloworld.proto 并且其中helloworld.proto包含一行,import "google/protobuf/any.proto"; 因為使用的any是正式的protobuf庫的類型。的真正路徑 any.proto是d:/protobuf-3.4.1/include/google/protobuf/any.proto。您應將d:/protobuf-3.4.1/include/和d:/my_proto_files路徑添加到protobuf搜索路徑中。
protobuf搜索路徑的配置是用戶表,具有以下字段:
Protobuf source directory
這指定了包含protobuf源文件的目錄。例如, d:/protobuf-3.4.1/include/和d:/my_proto_files在Windows,或 /usr/include/和/home/alice/my_proto_files在Linux / UNIX的。
Load all files
如果啟用此選項,則當Wireshark啟動或protobuf搜索路徑首選項更改時,Wireshark將在此目錄及其子目錄中加載所有* .proto文件。請注意,d:/protobuf-3.4.1/include/不應將配置為profbuf官方或第三個庫路徑(例如)的源目錄設置為加載所有文件,否則可能會導致不必要的內存占用。
8.1.21 Protobuf UDP消息類型
如果某些端口上UDP的有效負載是Protobuf編碼的,則Wireshark使用此表來了解應使用哪種Protobuf消息類型來解析指定UDP端口上的數據。
UDP端口到Protobuf消息類型映射的配置是用戶表,具有以下字段:
UDP Ports
UDP端口的范圍。格式可以是“ 8000”或“ 8000,8008-8088,9080”。
Message Type
Protobuf消息類型,應解析為指定udp端口上的數據。消息類型允許為空,這意味著Protobuf可以像普通線型一樣在指定的UDP端口上分解數據,而無需精確的定義。
提示:您可以創建自己的解剖器來調用Protobuf解剖器。如果您的解剖器是用C語言編寫的,則可以通過data call_dissector_with_data()函數的參數將消息類型傳遞給Protobuf解剖器。如果您的解剖器是用Lua編寫的,則可以通過將消息類型傳遞給Protobuf解剖器pinfo.private["pb_msg_type"]。的格式data和pinfo.private["pb_msg_type"]是
“message,” message_type_name
例如:
message,helloworld.HelloRequest
the helloworld is package name, HelloRequest is message type.
Wireshark中文使用教程(用戶版)
推薦文章: