Существует ли инструмент для разделения файла захвата пакета (в формате pcap) на отдельные файлы для каждого соединения TCP? (кроме сценария оболочки, выращенного в домашних условиях, который, вероятно, должен запускаться дважды при захвате ...) Что-то вроде wireshark 'follow TCP stream', но для командной строки (боюсь, что wireshark будет занимать большой объем памяти при отображении захвата пакета 700 МБ)
Я посмотрел на tcpflow, но, похоже, он создает файлы намного больше, чем исходные файлы pcap, и они, похоже, не в формате pcap.
linux
command-line-interface
tcp
pcap
Андре Хольцнер
источник
источник
Ответы:
Вы также можете использовать PcapSplitter, который является частью пакета PcapPlusPlus . Он делает именно то, что вам нужно (это расщепление файлов pcap по TCP или UDP-соединению), он мультиплатформенный и не имеет ограничения на количество соединений в исходном файле (так что вы можете использовать его для разделения большого файл pcap, содержащий тысячи соединений или даже больше). Ссылка выше для исходного кода, но если вы хотите скомпилированный двоичный файл - вот ссылка для двоичных файлов, которые я сделал для нескольких платформ
РЕДАКТИРОВАТЬ: очевидно, была выпущена новая версия PcapPlusPlus, и она содержит двоичные файлы PcapSplitter для довольно большого количества платформ (Windows, Ubuntu 12.04 / 14.04, Mac OSX Mavericks / Yosemite / El Captian). Я думаю, что лучше использовать эти двоичные файлы, чем ссылку, которую я ранее предоставил. Вы можете найти это здесь
источник
Вы можете использовать
tcpdump
для извлечения необходимых вам частей pcap ... предположим, что вы ищете пакеты в сокетном соединении между TCP / 55777 на одном хосте и TCP / 80 на другом. Ваш исходный файлbigfile.pcap
, который является дампом сниффера многих HTTP-сессий для данного веб-хоста ...Это вытянет все пакеты, идущие в / из TCP / 55777,
bigfile.pcap
и скопирует их вsession.pcap
.источник
-s0
какое-либо влияние при использовании вместе с-r
?Немного излишне, но используя
tshark
(поставляется сwireshark
), вы можете сделать сzsh
:Который генерирует файлы с именем like
1509466312.202450000-10.0.0.1-58892-10.0.0.2-80.pcap
(на основе первого пакета, видимого для каждого соединения).источник
tcpflow - то, что вы хотите - разбивает pcaps на один файл за сеанс TCP
http://www.circlemud.org/jelson/software/tcpflow/
источник
Кажется, есть этот инструмент, который может работать (я не использовал его лично)
http://www.netresec.com/?page=SplitCap (для Windows)
источник
вдохновленный @sch вот версия bash:
имя файла будет таким:
stream number__time__source IP__port__destination IP__port.pcap
tr -d '\r'
предназначен для пользователей Windows, потому что Tshark в Windows выводит CR LF.Редактировать :
это решение с tshark такое медленное, но уверенное. SplitCap работает очень быстро, но при возникновении ошибки в каком-либо пакете происходит сбой, а tshark только сообщает вам об ошибке, но продолжает:
и, наконец, есть PcapSplitter, который тоже очень быстрый, но ему нужен драйвер winpcap, он не работает с драйвером npcap в windows.
Но есть решение для SplitCap: используя pcapfix, я могу исправить поврежденные пакеты, тогда SplitCap больше никогда не падает. и это то, что я сейчас использую, потому что tshark очень медленно расщепляется.
и решение PcapSplitter, которое я сделал, заключалось в том, чтобы внедрить dll winpcap любым методом, но пока у нас есть SplitCap, зачем это делать?
источник