как разбить файл pcap на набор меньших

47

У меня есть огромный файл pcap (сгенерированный tcpdump). Когда я пытаюсь открыть его в wireshark, программа просто перестает отвечать на запросы. Есть ли способ разделить файл на несколько меньших, чтобы открыть их один за другим? Трафик, захваченный в файле, генерируется двумя программами на двух серверах, поэтому я не могу разделить файл с помощью фильтров tcpdump 'host' или 'port'. Я также попробовал команду linux 'split' :-), но безуспешно. Wireshark не распознает формат.

Facha
источник
Насколько велика огромна? Это намного больше чем доступная RAM?
pehrs
2
Немного поздно, но причина, по которой Wireshark не будет читать файлы, которые выводятся, splitсостоит в том, что split делит на точные границы байтов. Это очень вероятно, чтобы разделить пакет, который делает недействительным часть содержимого файла.
Бурхан Али

Ответы:

72

Вы можете использовать сам tcpdump с опциями -C, -r и -w

tcpdump -r old_file -w new_files -C 10

Опция "-C" указывает размер файла для разбивки. Например: в приведенном выше случае размер новых файлов составит 10 миллионов байт каждый.

Дэн Андреатта
источник
Ты удивительный человек, Дэн.
Лоби
Есть ли способ сделать это без разрыва сессии? (Предполагая, что один сеанс меньше аргумента ограничения размера).
spanishgum
Быстро: tcpdump -r old_file -w new_files -C 1000 разбивает на каждый 955 МБ записанного трафика
gies0r
18

Используйте editcapутилиту, которая распространяется вместе с Wireshark.

Дэн Карли
источник
5
editpcap -c 1000 input.pcap output.pcapбудет разделен input.pcapна захваты с максимум 1000 пакетов на захват. В результате будут получены несколько файлов захвата, отформатированных какoutput_{index}_{timestamp}.pcap
blachniet
1
Спасибо, блачет за пример! Но это просто editcap, не так editpcapли?
Линде
3

Я знаю, что этот ответ немного запоздал, но он может послужить и другим людям. Я нашел отличный инструмент для разделения файлов pcap: PcapSplitter . Она является частью библиотеки PcapPlusPlus, что означает ее кроссплатформенность (Win32, Linux и Mac OS), и она может разбивать файлы pcap на основе различных критериев, таких как размер файла (что вам нужно), но также и соединение, клиент / сервер IP, порт сервера (аналогично протоколу), количество пакетов и т. Д. Я нашел это очень полезным. Ссылка выше для исходного кода, но если вы не хотите / не знаете, как скомпилировать, я создал скомпилированные двоичные файлы для нескольких платформ, с которыми я использовал этот инструмент. Я очень рекомендую этот инструмент

РЕДАКТИРОВАТЬ: очевидно, была выпущена новая версия PcapPlusPlus, и она содержит двоичные файлы PcapSplitter для довольно многих платформ (Windows, Ubuntu 12.04 / 14.04, Mac OSX Mavericks / Yosemite / El Captian). Я думаю, что лучше использовать эти двоичные файлы, чем ссылку, которую я ранее предоставил. Вы можете найти это здесь

fx23
источник
2

Лучший и самый быстрый способ - использовать SplitCap, который может разбивать большие файлы дампа пакетов, например, на основе сеансов. Таким образом, вы получите каждый сеанс TCP в отдельном файле PCAP. SplitCap также может разделять пакеты в файлы pcap на основе IP-адресов.

Вы можете узнать больше о SplitCap в блоге Netresec: http://www.netresec.com/?page=Blog&month=2011-05&post=Split-or-filter-your-PCAP-files-with-SplitCap

Загрузите SplitCap отсюда: http://www.netresec.com/?page=SplitCap

Удачи!

Netresec
источник
Есть ли версии для Linux?
ychaouche
Это хорошая программа, но ей не хватает возможности работать с файлами pcapng.
Гунтрам Блом поддерживает Монику
0
tcpdump -w trace.pcap -W 48 -G 300 -C 100 -i any port 41110
  • -G 300 он будет вращаться через 5 минут
  • -W 48 количество файлов
  • -C 100 размер файла 100 МБ
  • port Вы можете указать порт на основе приложения
user531905
источник