Wireshark是在Linux、Windows和macOS上提供的世界級資料包分析器。它的過濾器是靈活和複雜的,但有時,違反直覺。我們會解釋你需要注意的“問題”。
Wireshark是開源世界的瑰寶之一。它是一個世界級的軟體工具,被專業人士和業餘愛好者用來調查和診斷網路問題。軟體開發人員使用它來精確定位和描述通訊例程中的錯誤。安全研究人員使用它來捕獲和取消抓取網路上的惡意活動。
典型的工作流是以捕獲模式執行Wireshark,因此它透過計算機上的一個網路介面記錄網路流量。網路資料包在被捕獲時實時顯示。然而,正是在捕獲後的分析中,網路中發生的細微細節才得以揭示。
捕獲的資料包稱為跟蹤。當捕獲完成後,跟蹤可以一個包一個包地逐步完成。您可以最詳細地檢查任何資料包,繪製裝置之間的網路“對話”,並使用過濾器從分析中包括(或排除)資料包。
Wireshark的過濾功能首屈一指,具有極大的靈活性和解析度。它們的語法有一些微妙之處,使得編寫一個過濾器並得到一個不符合您期望的結果變得很容易。
如果你不瞭解Wireshark中的過濾器是如何工作的,你就永遠不會脫離第一檔,限制軟體的功能。
安裝Wireshark時,系統會詢問使用非根帳戶的使用者是否應該能夠捕獲網路跟蹤。對這件事說不可能是個吸引人的主意。你可能不希望每個人都能看到網路上發生了什麼。但是,安裝Wireshark以便只有具有root許可權的使用者才能使用它意味著它的所有元件都將以提升的許可權執行。
Wireshark包含超過200萬行復雜的程式碼,它以最低級別與您的計算機互動。最佳安全實踐建議,應該儘可能少的程式碼以提升的許可權執行,特別是當代碼以如此低的級別執行時。
使用常規使用者帳戶執行Wireshark要安全得多。我們仍然可以限制誰有能力執行Wireshark。這需要一些額外的設定步驟,但這是最安全的方法。Wireshark的資料捕獲元素仍將以提升的許可權執行,但Wireshark的其餘部分將作為正常程序執行。
要在Ubuntu上開始安裝,請鍵入:
sudo apt-get install wireshark在軟呢帽上,鍵入:
sudo dnf install wireshark在Manjaro上,使用以下命令:
sudo pacman -Syu wireshark-qt在安裝過程中,您將看到下面的螢幕,建議您不要以root使用者身份執行Wireshark。按Tab鍵將紅色突出顯示移動到“<;確定>;”,然後按空格鍵。
在下一個螢幕上,按Tab鍵將紅色突出顯示移動到“”,然後按空格鍵。
要執行Wireshark,您必須是安裝期間建立的“Wireshark”組的成員。這允許您控制誰可以執行Wireshark。任何不在“wireshark”組的人都不能執行wireshark。
要將自己新增到“Wireshark”組,請使用以下命令:
sudo usermod -a -G wireshark $USER要使新的組成員身份生效,您可以登出並重新登入,或使用以下命令:
newgrp wireshark要檢視您是否在新組中,請使用groups命令:
groups您應該在組列表中看到“wireshark”。
您可以使用下面的命令啟動Wireshark。符號&;啟動Wireshark作為後臺任務,這意味著您可以繼續使用終端視窗。您甚至可以關閉終端視窗,Wireshark將繼續執行。
鍵入以下內容:
Wireshark &相關:如何在Linux上執行和控制後臺程序
出現Wireshark介面。列出了計算機中的網路介面裝置,以及一些內建的偽裝置。
介面旁邊的波浪線表示它是活動的,網路流量正在透過它。扁平線表示介面上沒有活動。此列表中的頂部專案是“enp0s3”,這是此計算機的有線連線,如預期的那樣,它顯示活動。
要開始捕獲資料包,我們右鍵單擊“enp0s3”,然後在上下文選單中選擇“start Capture”。
您可以設定過濾器以減少Wireshark捕獲的流量。在進行分析時,我們更喜歡捕捉一切,過濾掉任何我們不想看到的東西。這樣,我們就知道所發生的一切都在痕跡中。您不希望不經意間錯過一個網路事件,該事件解釋了由於捕獲過濾器而導致的您正在調查的情況。
當然,對於高流量網路,跟蹤可能很快變得非常大,因此在這種情況下,捕獲時進行過濾是有意義的。或者,也許你只是喜歡這樣。
請注意,捕獲過濾器的語法與顯示過濾器的語法略有不同。
上圖中突出顯示的圖示從左到右表示以下內容:
單擊紅方塊圖示將停止資料捕獲,以便您可以分析跟蹤中捕獲的資料包。資料包按時間順序顯示,並根據資料包的協議進行顏色編碼。突出顯示的資料包的詳細資訊顯示在Wireshark介面的兩個下方窗格中。
讓Wireshark為資料包的源和目標IP地址提供有意義的名稱是使讀取跟蹤更容易的一種簡單方法。為此,請單擊“檢視”>“名稱解析”,然後選擇“解析網路地址”
Wireshark將嘗試解析傳送和接收每個資料包的裝置的名稱。它不能識別每一個裝置,但它能識別的裝置將幫助你讀取跟蹤。
向左滾動顯示屏將在右側顯示更多列。info列顯示Wireshark可以從資料包中檢測到的任何資訊。在下面的示例中,我們看到一些ping請求和響應。
預設情況下,Wireshark會按追蹤資料包的順序顯示所有資料包。許多裝置同時來回傳送資料包。這意味著兩個裝置之間的單個會話可能會有來自其他裝置的資料包在它們之間交錯。
要檢查單個會話,可以透過協議將其隔離。每個資料包的協議顯示在協議列中。您將看到的大多數協議都屬於TCP/IP系列。您可以指定確切的協議或使用乙太網作為catchall。
右鍵單擊要檢查的序列中的任何資料包,然後單擊對話過濾器>乙太網。在下面的示例中,我們選擇了一個ping請求包。
由於Wireshark自動生成了一個過濾器,因此顯示的資料包序列之間沒有其他資料包。它顯示在過濾器欄中並以綠色突出顯示,這表示過濾器的語法是正確的。
要清除過濾器,請單擊過濾器欄上的“X”。
讓我們在過濾器欄中放置一個簡單的過濾器:
ip.addr == 192.168.4.20這將選擇IP地址為192.168.4.20的裝置傳送或接收的所有資料包。注意雙等號(==)之間沒有空格。
要檢視裝置(源)傳送的資料包,可以使用ip.src公司;要檢視到達裝置(目的地)的資料包,可以使用ip.dst公司,如下圖:
ip.dst == 192.168.4.20 && ip.src == 192.168.4.28請注意,使用雙符號和(&;)表示邏輯“和”。此篩選器查詢從192.168.4.28到達192.168.4.20的資料包。
剛接觸Wireshark過濾器的人通常認為這樣的過濾器可以捕獲兩個IP地址之間的所有資料包,但事實並非如此。
它實際做的是過濾所有進出IP地址192.168.4.20的資料包,而不管它們來自何處或傳送到何處。它對來自IP地址192.168.4.28的所有資料包執行相同的操作。更簡單地說,它過濾進出任一IP地址的所有流量。
你也可以在其他協議上尋找活動。例如,您可以鍵入此篩選器來查詢HTTP請求:
http.request要排除來自或傳送到裝置的資料包,請使用感嘆號(!)並將篩選器括在括號[()]中:
!(ip.addr == 192.168.4.14)此篩選器排除傳送到192.168.4.14或從192.168.4.14傳送的所有資料包。
這是違反直覺的,因為過濾器包含相等運算子(=)。您可能會希望鍵入以下篩選器:
ip.addr !=192.168.4.14然而,這是行不通的。
您還可以按協議在資料包中搜索字串。此篩選器搜尋包含字串“youtube”的傳輸控制協議(TCP)資料包:
tcp contains youtube尋找重傳的過濾器是檢查是否存在連線問題的有用方法。重傳是由於在初始傳輸過程中損壞或丟失而重新發送的資料包。太多的重新傳輸表示連線速度慢或裝置響應速度慢。
鍵入以下內容:
tcp.****ysis.retran**ission當一個裝置與另一個裝置接觸併發送SYN(同步)資料包時,兩個裝置之間的網路連線就會啟動。然後,接收裝置傳送ACK(確認)包。它透過傳送SYN包來指示是否接受連線。
SYN和ACK實際上是同一個包中的兩個標誌。原始裝置透過傳送ACK來確認SYN,然後這些裝置建立網路連線。
這稱為三方握手:
A -> SYN -> B A <- SYN, ACK <- B A -> ACK -> B在下面的截圖中,有人在電腦上“nostromo.本地與計算機“ubuntu20-04.local”建立安全Shell(SSH)連線。三方握手是兩臺計算機之間通訊的第一部分。注意,包含SYN包的兩行是用深灰色編碼的。
滾動顯示屏以顯示右側的列將顯示SYN、SYN/ACK和ACK握手資料包。
您將注意到兩臺計算機之間的資料包交換在TCP和SSH協議之間交替進行。資料包透過加密的SSH連線傳遞,但訊息包(如ACK)透過TCP傳送。我們將很快過濾掉TCP資料包。
當不再需要網路連線時,它將被丟棄。中斷網路連線的資料包序列是一個四路握手。
一方傳送FIN(finish)包。另一端傳送一個ACK來確認FIN,然後還發送一個FIN來表示它同意應該斷開連線。第一方傳送一個它剛剛接收到的FIN的ACK,然後拆除網路連線。
下面是四方握手的樣子:
A -> FIN -> B A <- FIN, ACK <- B A -> ACK -> B有時,原始的FIN在一個無論如何都要傳送的ACK包上,如下所示:
A -> FIN, ACK -> B A <- FIN, ACK <- B A -> ACK -> B這個例子就是這樣。
如果我們只想看到這個會話的SSH通訊量,我們可以使用指定該協議的過濾器。我們鍵入以下內容以檢視使用SSH協議進出遠端計算機的所有通訊量:
ip.addr == 192.168.4.25 && ssh這會過濾掉192.168.4.25之間除了SSH通訊以外的所有內容。
在篩選欄中鍵入篩選時,它將保持紅色,直到篩選語**確為止。當過濾器正確且完整時,它將變為綠色。
如果鍵入協議(如tcp、ip、udp或shh),後跟句點(.),則會出現一個選單。它將列出包含該協議的最新篩選器,以及該協議名稱的篩選器中可以使用的所有欄位。
例如,對於ip,您可以使用ip地址, ip.校驗和, ip.src公司, ip.dst公司, ip.id號, ip主機,還有幾十個。
使用以下篩選器模板作為篩選器的基礎:
我們已經在這裡介紹了顯示過濾器的一些指導原則和基本用途,當然,還有很多。
要了解Wireshark過濾器的全部範圍和功能,請務必檢視其線上參考資料。
... 回到主Shotcut視窗,您將看到匯入的檔案如何在左側窗格(播放列表)中列出,當前選定的檔案如何顯示在主視窗中。尋找播放器控制元件,您可以使用這些控制元件播放、暫停、在影片中來回移動,甚至可以使...
... Wireshark是最常用的網路分析工具之一。它的力量來自於向你展示你網路上的每一點流量——如果你不把它過濾下來只看到你需要的東西,它會讓你不知所措。 ...
...應用於層。這是一個巨大的節省時間的步驟。讓我們看看如何在多個圖層上使用智慧過濾器,並保持隨時進行編輯的能力。 ...
...是時候設定自動回覆和安排電子郵件了。我們將向您展示如何在Mozilla Thunderbird(跨平臺、免費、開源的桌面電子郵件客戶端)中實現這一點。 ...
...間就能習慣,但一點也不難。檢視上面的螢幕廣播,瞭解如何輕鬆上傳照片,包括應用過濾器。 ...
...以來越來越受歡迎。但如果您是Snapchat新手,您可能會對如何在Snapchat上使用過濾器感到困惑。然而,一旦你開始,過濾器可以證明上癮。 ...
...傳影片之前,您可能需要編輯您的GoPro影片。但是你應該使用哪個應用程式呢?由於GoPro工作室在2017年底不復存在,這一決定變得更加困難。 ...
...是故意橫著拍的。。。但是你拿錯了**,現在你需要知道如何旋轉影片並儲存它。別擔心。這是常有的事。 ...