WireShark 自帶工具 editcap 和 text2pcap 配合完成改包操作


一、拆包

  首先聲明這種方法比較復雜而且需要點技術水平,不建議菜鳥嘗試(可以使用WireEdit等其他工具編輯pcap包)其實在熟練這種方法后也可以很快的,但這種方法主要還是方便吧,不用下載其他什么軟件。(除了WireShark)

不過菜鳥也不會點進這篇技術文章吧。

 

先說主要思想

editcap和text2pcap是WireShark自帶的兩款功能強大的命令行程序

editcap是wireshark的命令行工具可以實現切割包和具體報文

text2pcap可以根據你導出來的字符數據重新轉化為數據報文

因此我們可以先對原始包切割,切出想要的報文幀

導出為數據字串

修改數據字串

再用text2pcap轉回報文,這樣就完成了修改工作。

 

接下來是實際操作過程,我將把我遇到的比較復雜的例子來講解,其他情況以此類推:

例子是一個巨幀TCP報文,人工實現IP分片功能。

打開CMD控制台窗口

轉到WireShark安裝目錄 cd C:\Program Files\Wireshark 找到editcap.exe和text2pcap.exe 如圖

 

接下來是官方文檔editcap.html和text2pcap.html,我只截有用到的部分。

 

 

 

首先切割文件,找到巨幀的那個報文序號,利用editcap來把pcap文件拆成三部分:巨幀報文之前的部分,巨幀報文一部分,巨幀之后部分。命令如下:

editcap -r C:\Users\Administrator\Desktop\LargePcap.pcapng C:\Users\Administrator\Desktop\Header.pcapng 1-31

editcap -r C:\Users\Administrator\Desktop\LargePcap.pcapng C:\Users\Administrator\Desktop\JuZhen.pcapng  32

editcap C:\Users\Administrator\Desktop\LargePcap.pcapng C:\Users\Administrator\Desktop\Tail.pcapng 1-32

這里的巨幀是第32條報文,長度為2974明顯大於以太網幀的1500,所以你必須要處理pcap包,才能使這個包符合實際的傳輸過程;命令中 -r 參數是保留指定報文,不加的話是剔除指定報文。

這里默認是pcapng格式,如果要轉格式加 -F(詳細見上面的說明);

把這個包拆成兩部分: 一個1514(MTU 可能不同)另一個1460。這里使用 -C 參數來剪報文內的數據。

 

 

editcap -C -1460:1460 C:\Users\Administrator\Desktop\JuZhen.pcapng C:\Users\Administrator\Desktop\result_1.pcapng

editcap -C 54:1460 C:\Users\Administrator\Desktop\JuZhen.pcapng C:\Users\Administrator\Desktop\result_2.pcapng

 

這個語句要注意的是 offset :length offset是偏移,length是裁剪長度;還有就是要知道命令是把指定的給去除掉 (PS:我在這繞了很久)。

 

二、改包

  打開result_1.pcapng和result_2.pcapng文件選中要改的報文,復制 -> as Hex Dump ,然后新建一個txt文件右鍵粘貼。

 

我把result_1.pcapng 和 result_2.pcapng 復制到 result_1.txt、result_2.txt中

接下來就是重中之重了 -------- 修改報文中的數據

同時打開result.pcapng 和 result.txt,在WireShark中找到要修改的字節,對照着txt文件的相應地方改成你要的數值就行了(要注意不要改動他導出的文件格式)

我這里的這個例子是要改動IP層的Total Length、Identification 和 Header CheckSum

以及TCP層的Sequence Number 和 Checksum

在txt中改掉對應的16進制,保存就完成了改包。

 

三、合包

  然后使用text2pcap來合包操作,兩條語句分別進行 txt Hex 轉 pcapng 網絡包

text2pcap C:\Users\Administrator\Desktop\result_1.txt C:\Users\Administrator\Desktop\1.pcapng

 

 text2pcap C:\Users\Administrator\Desktop\result_2.txt C:\Users\Administrator\Desktop\2.pcapng

生成1.pcapng 和 2.pcapng

 

  接下來是調整時間 ,使用 editcap -t 命令,由於不能使用精確時間來設置報文,只能 +偏移 或 -偏移來調正時間:

editcap -t -xxxx 1.pcapng

editcap -t -xxxx 2.pcapng

先查看 Header.pcapng 最后一條報文准確時間 和 Tail.pcapng 第一條報文時間,在根據要調整的報文時間進行加減

這里我就不寫例子了(注意要在 Header.pcapng 最后一條報文准確時間 和 Tail.pcapng 第一條報文時間范圍內)

 

最后是合並包部分,順序是  Header.pcapng <-  1.pcapng  <-  2.pcapng   <- Tail.pcapng

四、結束

放張結果圖,第32和33條報文是裁剪后的結果。

其實這種辦法也不是特別麻煩吧!!不是很麻煩。。。。吧,。麻煩。好吧其實搞到這里我也沒什么耐心了,這種方法我也沒找到什么優點,在最后我也只是想記錄一下,我掙扎的過程、學習的過程,僅此而已。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM