主頁 > 知識庫 > 在Linux下操作pcap文件的各種方法整理

在Linux下操作pcap文件的各種方法整理

熱門標(biāo)簽:電話銷售團(tuán)隊(duì) 智能手機(jī) Mysql連接數(shù)設(shè)置 大數(shù)據(jù)分析 科大訊飛語音識別系統(tǒng) 呼叫中心 電銷機(jī)器人 呼叫外包

如果你是一個(gè)測試入侵偵測系統(tǒng)或一些網(wǎng)絡(luò)訪問控制策略的網(wǎng)絡(luò)管理員,那么你經(jīng)常需要抓取數(shù)據(jù)包并在離線狀態(tài)下分析這些文件。當(dāng)需要保存捕獲的數(shù)據(jù)包時(shí),我們一般會(huì)存儲(chǔ)為 libpcap 的數(shù)據(jù)包格式 pcap,這是一種被許多開源的嗅探工具以及捕包程序廣泛使用的格式。如果 pcap 文件被用于入侵測試或離線分析的話,那么在將他們注入網(wǎng)絡(luò)之前通常要先對 pcap 文件進(jìn)行一些操作。

在這篇文章中,我將介紹一些操作 pcap 文件的工具,以及如何使用它們 。
Editcap 與 Mergecap

Wireshark,是最受歡迎的 GUI 嗅探工具,實(shí)際上它帶了一套非常有用的命令行工具集。其中包括 editcap 與 mergecap。editcap 是一個(gè)萬能的 pcap 編輯器,它可以過濾并且能以多種方式來分割 pcap 文件。mergecap 可以將多個(gè) pcap 文件合并為一個(gè)。 這篇文章就是基于這些 Wireshark 命令行工具的。

如果你已經(jīng)安裝過 Wireshark 了,那么這些工具已經(jīng)在你的系統(tǒng)中了。如果還沒裝的話,那么我們接下來就安裝 Wireshark 命令行工具。 需要注意的是,在基于 Debian 的發(fā)行版上我們可以不用安裝 Wireshark GUI 而僅安裝命令行工具,但是在 Red Hat 及 基于它的發(fā)行版中則需要安裝整個(gè) Wireshark 包。

Debian, Ubuntu 或 Linux Mint

   

復(fù)制代碼
代碼如下:
$ sudo apt-get install wireshark-common

Fedora, CentOS 或 RHEL

   

復(fù)制代碼
代碼如下:
$ sudo yum install wireshark

當(dāng)安裝好工具后, 就可以開始使用 editca 與 mergecap 了。
pcap 文件過濾

通過 editcap, 我們能以很多不同的規(guī)則來過濾 pcap 文件中的內(nèi)容,并且將過濾結(jié)果保存到新文件中。

首先,以“起止時(shí)間”來過濾 pcap 文件。 " - A start-time > 和 " - B end-time > 選項(xiàng)可以過濾出在這個(gè)時(shí)間段到達(dá)的數(shù)據(jù)包(如,從 2:30 ~ 2:35)。時(shí)間的格式為 “ YYYY-MM-DD HH:MM:SS"。

   

復(fù)制代碼
代碼如下:
$ editcap -A '2014-12-10 10:11:01' -B '2014-12-10 10:21:01' input.pcap output.pcap

也可以從某個(gè)文件中提取指定的 N 個(gè)包。下面的命令行從 input.pcap 文件中提取100個(gè)包(從 401 到 500)并將它們保存到 output.pcap 中:

   

復(fù)制代碼
代碼如下:
$ editcap input.pcap output.pcap 401-500

使用 "-D dup-window >" (dup-window可以看成是對比的窗口大小,僅與此范圍內(nèi)的包進(jìn)行對比)選項(xiàng)可以提取出重復(fù)包。每個(gè)包都依次與它之前的 dup-window > -1 個(gè)包對比長度與MD5值,如果有匹配的則丟棄。

   

復(fù)制代碼
代碼如下:
$ editcap -D 10 input.pcap output.pcap

    遍歷了 37568 個(gè)包, 在 10 窗口內(nèi)重復(fù)的包僅有一個(gè),并丟棄。

也可以將 dup-window > 定義成時(shí)間間隔。使用"-w dup-time-window >"選項(xiàng),對比 dup-time-window > 時(shí)間內(nèi)到達(dá)的包。

   

復(fù)制代碼
代碼如下:
$ editcap -w 0.5 input.pcap output.pcap

    檢索了 50000 個(gè)包, 以0.5s作為重復(fù)窗口,未找到重復(fù)包。

分割 pcap 文件

當(dāng)需要將一個(gè)大的 pcap 文件分割成多個(gè)小文件時(shí),editcap 也能起很大的作用。

將一個(gè) pcap 文件分割成數(shù)據(jù)包數(shù)目相同的多個(gè)文件

   

復(fù)制代碼
代碼如下:
$ editcap -c packets-per-file> input-pcap-file> output-prefix>

輸出的每個(gè)文件有相同的包數(shù)量,以 output-prefix >-NNNN的形式命名。

以時(shí)間間隔分割 pcap 文件

   

復(fù)制代碼
代碼如下:
$ editcap -i seconds-per-file> input-pcap-file> output-prefix>

合并 pcap 文件

如果想要將多個(gè)文件合并成一個(gè),用 mergecap 就很方便。

當(dāng)合并多個(gè)文件時(shí),mergecap 默認(rèn)將內(nèi)部的數(shù)據(jù)包以時(shí)間先后來排序。

   

復(fù)制代碼
代碼如下:
$ mergecap -w output.pcap input.pcap input2.pcap [input3.pcap . . .]

如果要忽略時(shí)間戳,僅僅想以命令行中的順序來合并文件,那么使用 -a 選項(xiàng)即可。

例如,下列命令會(huì)將 input.pcap 文件的內(nèi)容寫入到 output.pcap, 并且將 input2.pcap 的內(nèi)容追加在后面。

   

復(fù)制代碼
代碼如下:
$ mergecap -a -w output.pcap input.pcap input2.pcap

總結(jié)

在這篇指導(dǎo)中,我演示了多個(gè) editcap、 mergecap 操作 pcap 文件的例子。除此之外,還有其它的相關(guān)工具,如 reordercap用于將數(shù)據(jù)包重新排序,text2pcap 用于將 pcap 文件轉(zhuǎn)換為文本格式, pcap-diff用于比較 pcap 文

標(biāo)簽:濟(jì)寧 安慶 普洱 婁底 連云港 丹東 三沙 廊坊

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《在Linux下操作pcap文件的各種方法整理》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266