#在這篇文章中,我將介紹一些操作 pcap 檔案的工具,以及如何使用它們 。
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 和 " - B 選項可以過濾出在這個時間段到達的資料包(如,從 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 " (dup-window可以看成是對比的視窗大小,僅與此範圍內的套件進行比較)選項可以提取重複套件。每個包都依次與它之前的 -1 個包對比長度與MD5值,如果有匹配的則丟棄。
$ editcap -D 10 input.pcap output.pcap
也可以將 定義成時間間隔。使用"-w "選項,對比 時間內到達的包。
$ editcap -w 0.5 input.pcap output.pcap
# 當需要將一個大的 pcap 檔案分割成多個小檔案時,editcap 也能扮演很大的角色。將一個 pcap 檔案分割成資料包數目相同的多個檔案
$ editcap -c (packets -per-[file]) (input -pcap-[file])(output -prefix)
輸出的每個檔案有相同的套件數量,以 -NNNN的形式命名。以時間間隔分割 pcap 檔
$ editcap -i (seconds -per-[file]) (input-pcap-[file]) (output-prefix)
# 如果想要將多個檔案合併成一個,用 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
在這篇指導中,我示範了多個 editcap、 mergecap 操作 pcap 檔案的範例。除此之外,還有其它的相關工具,如 reordercap用於將資料包重新排序,text2pcap 用於將 pcap 檔案轉換為文字格式, pcap-diff用於比較 pcap 檔案的異同,等等。當進行網路入侵測試及解決網路問題時,這些工具與套件注入工具非常實用,所以最好了解他們。
以上是Linux下如何操作 pcap 文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!