Apakah ada alat untuk membagi file paket capture (dalam format pcap) menjadi file terpisah untuk setiap koneksi TCP? (selain skrip shell yang ditanam di rumah yang mungkin perlu dijalankan dua kali selama penangkapan ...). Sesuatu seperti wireshark 'follow TCP stream' tetapi untuk baris perintah (saya khawatir wireshark akan menghabiskan banyak memori saat menampilkan tangkapan paket 700 MB)
Saya melihat tcpflow tetapi tampaknya menghasilkan file yang jauh lebih besar daripada file pcap asli dan mereka tampaknya tidak dalam format pcap.
linux
command-line-interface
tcp
pcap
Andre Holzner
sumber
sumber
Jawaban:
Anda juga dapat menggunakan PcapSplitter yang merupakan bagian dari paket PcapPlusPlus . Itu tidak persis apa yang Anda butuhkan (yang membagi file PCAP dengan koneksi TCP atau UDP), ini multi-platform dan tidak memiliki batasan pada jumlah koneksi dalam file asli (sehingga Anda dapat menggunakannya untuk membagi besar file pcap yang mengandung ribuan koneksi atau bahkan lebih). Tautan di atas adalah untuk kode sumber, tetapi jika Anda ingin biner yang dikompilasi - di sini adalah tautan untuk binari yang saya buat untuk beberapa platform
EDIT: rupanya versi baru PcapPlusPlus dirilis dan berisi binari PcapSplitter untuk banyak platform (Windows, Ubuntu 12.04 / 14.04, Mac OSX Mavericks / Yosemite / El Captian). Saya pikir lebih baik menggunakan binari ini daripada tautan yang saya berikan sebelumnya. Anda dapat menemukannya di sini
sumber
Anda dapat menggunakan
tcpdump
untuk mengekstrak bagian-bagian pcap yang Anda inginkan ... misalkan Anda sedang mencari paket dalam koneksi soket antara TCP / 55777 pada satu host dan TCP / 80 pada yang lain. File sumber Anda adalahbigfile.pcap
, yang merupakan kumpulan sniffer dari banyak sesi HTTP ke host web yang dimaksud ...Itu akan menarik semua paket ke dan dari TCP / 55777
bigfile.pcap
dan menyalinnyasession.pcap
.sumber
-s0
ada efek ketika digunakan bersama-r
?Sedikit berlebihan, tetapi menggunakan
tshark
(dikirimkan bersamawireshark
), Anda dapat melakukannya denganzsh
:Yang menghasilkan file bernama seperti
1509466312.202450000-10.0.0.1-58892-10.0.0.2-80.pcap
(berdasarkan paket pertama yang terlihat untuk setiap koneksi).sumber
tcpflow adalah apa yang Anda inginkan - membagi pcaps menjadi satu file per sesi TCP
http://www.circlemud.org/jelson/software/tcpflow/
sumber
Tampaknya ada alat ini yang mungkin berfungsi (saya belum menggunakannya secara pribadi)
http://www.netresec.com/?page=SplitCap (berbasis windows)
sumber
terinspirasi oleh @sch di sini adalah versi bash:
nama file akan seperti itu:
stream number__time__source IP__port__destination IP__port.pcap
tr -d '\r'
adalah untuk pengguna windows, karena tshark di windows menghasilkan CR LF.Edit :
solusi dengan tshark ini sangat lambat tapi pasti. SplitCap sangat cepat tetapi ketika ada kesalahan dalam beberapa paket itu crash, sementara tshark hanya memberi tahu Anda tentang kesalahan tetapi melanjutkan:
dan akhirnya ada PcapSplitter yang super cepat juga tetapi membutuhkan driver winpcap, itu tidak bekerja dengan driver npcap di windows.
Tetapi ada solusi untuk SplitCap: menggunakan pcapfix saya dapat memperbaiki paket yang rusak maka SplitCap tidak pernah crash lagi. dan inilah yang saya gunakan sekarang, karena tshark sangat lambat dalam pemisahan.
dan solusi untuk PcapSplitter yang saya lakukan adalah menyuntikkan dll winpcap menggunakan metode apa pun tetapi sementara kami memiliki SplitCap mengapa melakukannya?
sumber