天天看點

Linux下如何過濾、分割以及合并 pcap 檔案Linux下如何過濾、分割以及合并 pcap 檔案

Linux下如何過濾、分割以及合并 pcap 檔案Linux下如何過濾、分割以及合并 pcap 檔案

在這篇文章中,我将介紹一些操作 pcap 檔案的工具,以及如何使用它們 。

<a target="_blank"></a>

wireshark,是最受歡迎的 gui 嗅探工具,實際上它帶了一套非常有用的指令行工具集。其中包括 editcap 與 mergecap。editcap 是一個萬能的 pcap 編輯器,它可以過濾并且能以多種方式來分割 pcap 檔案。mergecap 可以将多個 pcap 檔案合并為一個。 這篇文章就是基于這些 wireshark 指令行工具的。

如果你已經安裝過 wireshark 了,那麼這些工具已經在你的系統中了。如果還沒裝的話,那麼我們接下來就安裝 wireshark 指令行工具。 需要注意的是,在基于 debian 的發行版上我們可以不用安裝 wireshark gui 而僅安裝指令行工具,但是在 red hat 及 基于它的發行版中則需要安裝整個 wireshark 包。

debian, ubuntu 或 linux mint

$ sudo apt-get install wireshark-common

fedora, centos 或 rhel

$ sudo yum install wireshark

當安裝好工具後, 就可以開始使用 editca 與 mergecap 了。

通過 editcap, 我們能以很多不同的規則來過濾 pcap 檔案中的内容,并且将過濾結果儲存到新檔案中。

首先,以“起止時間”來過濾 pcap 檔案。 " - a &lt; start-time &gt; 和 " - b &lt; end-time &gt; 選項可以過濾出在這個時間段到達的資料包(如,從 2:30 ~ 2:35)。時間的格式為 “ yyyy-mm-dd hh:mm:ss"。

$ editcap -a '2014-12-10 10:11:01' -b '2014-12-10 10:21:01' input.pcap output.pcap

也可以從某個檔案中提取指定的 n 個包。下面的指令行從 input.pcap 檔案中提取100個包(從 401 到 500)并将它們儲存到 output.pcap 中:

$ editcap input.pcap output.pcap 401-500

使用 "-d &lt; dup-window &gt;" (dup-window可以看成是對比的視窗大小,僅與此範圍内的包進行對比)選項可以提取出重複包。每個包都依次與它之前的 &lt; dup-window &gt; -1 個包對比長度與md5值,如果有比對的則丢棄。

$ editcap -d 10 input.pcap output.pcap

周遊了 37568 個包, 在 10 視窗内重複的包僅有一個,并丢棄。

也可以将 &lt; dup-window &gt; 定義成時間間隔。使用"-w &lt; dup-time-window &gt;"選項,對比&lt; dup-time-window &gt; 時間内到達的包。

$ editcap -w 0.5 input.pcap output.pcap

檢索了 50000 個包, 以0.5s作為重複視窗,未找到重複包。

當需要将一個大的 pcap 檔案分割成多個小檔案時,editcap 也能起很大的作用。

将一個 pcap 檔案分割成資料包數目相同的多個檔案

$ editcap -c &lt;packets-per-file&gt; &lt;input-pcap-file&gt; &lt;output-prefix&gt;

輸出的每個檔案有相同的包數量,以 &lt; output-prefix &gt;-nnnn的形式命名。

以時間間隔分割 pcap 檔案

$ editcap -i &lt;seconds-per-file&gt; &lt;input-pcap-file&gt; &lt;output-prefix&gt;

如果想要将多個檔案合并成一個,用 mergecap 就很友善。

當合并多個檔案時,mergecap 預設将内部的資料包以時間先後來排序。

$ mergecap -w output.pcap input.pcap input2.pcap [input3.pcap . . .]

如果要忽略時間戳,僅僅想以指令行中的順序來合并檔案,那麼使用 -a 選項即可。

例如,下列指令會将 input.pcap 檔案的内容寫入到 output.pcap, 并且将 input2.pcap 的内容追加在後面。

$ mergecap -a -w output.pcap input.pcap input2.pcap

你是否使用過 pcap 工具? 如果用過的話,你用它來做過什麼呢?

原文釋出時間:2015-01-27

本文來自雲栖合作夥伴“linux中國”

繼續閱讀