Проблема с mergecap [конкатенация файлов pcap] - нежелательная информация в выходном файле


0

Я надеюсь, что кто-нибудь сможет мне помочь ... Проблема заключается в объединении нескольких файлов .pcap. Недавно, как и неделю назад, я использовал mergecap для объединения нескольких файлов pcap в один. Все работало нормально

Вот как я это делаю:

mergecap -w 28_30.11.dump.pcap testdump.pcap17  testdump.pcap19  testdump.pcap21  testdump.pcap23  testdump.pcap25

Вот headвыходной файл (обратите внимание на ASCII в правом столбце):

00000000   D4 C3 B2 A1  02 00 04 00  00 00 00 00  00 00 00 00  FF FF 00 00  01 00 00 00  32 38 B3 50  7F 11 09 00  ........................28.P....
00000020   3C 00 00 00  3C 00 00 00  00 1F D0 03  A4 9C 00 25  9C 8B F5 3E  08 06 00 01  08 00 06 04  00 01 00 25  <...<..........%...>...........%
00000040   9C 8B F5 3E  01 00 00 01  00 00 00 00  00 00 01 00  00 02 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ...>............................
00000060   00 00 00 00  32 38 B3 50  89 11 09 00  2A 00 00 00  2A 00 00 00  00 25 9C 8B  F5 3E 00 1F  D0 03 A4 9C  ....28.P....*...*....%...>......
00000080   08 06 00 01  08 00 06 04  00 02 00 1F  D0 03 A4 9C  01 00 00 02  00 25 9C 8B  F5 3E 01 00  00 01 39 38  .....................%...>....98
000000A0   B3 50 C6 78  05 00 57 00  00 00 57 00  00 00 00 25  9C 8B F5 3E  00 1F D0 03  A4 9C 08 00  45 00 00 49  .P.x..W...W....%...>........E..I
000000C0   8F 7F 40 00  40 11 81 50  01 00 00 02  3E E9 E9 E9  A1 5A 00 35  00 35 44 D5  9A FF 01 00  00 01 00 00  ..@.@..P....>....Z.5.5D.........

Все здорово. Но ... теперь, когда я делаю то же самое для любых захваченных файлов и использую команду:

mergecap -w test3.pcap testdump.pcap133 testdump.pcap134 testdump.pcap135

Выходной файл содержит дополнительную информацию в верхней части файла (хорошо видно в столбце ASCII справа):

00000000   0A 0D 0D 0A  98 00 00 00  4D 3C 2B 1A  01 00 00 00  FF FF FF FF  FF FF FF FF  01 00 65 00  46 69 6C 65  ........M<+...............e.File
00000020   20 63 72 65  61 74 65 64  20 62 79 20  6D 65 72 67  69 6E 67 3A  20 0A 46 69  6C 65 31 3A  20 74 65 73   created by merging: .File1: tes
00000040   74 64 75 6D  70 2E 70 63  61 70 31 33  33 20 0A 46  69 6C 65 32  3A 20 74 65  73 74 64 75  6D 70 2E 70  tdump.pcap133 .File2: testdump.p
00000060   63 61 70 31  33 34 20 0A  46 69 6C 65  33 3A 20 74  65 73 74 64  75 6D 70 2E  70 63 61 70  31 33 35 20  cap134 .File3: testdump.pcap135
00000080   0A 00 00 00  04 00 08 00  6D 65 72 67  65 63 61 70  00 00 00 00  98 00 00 00  01 00 00 00  20 00 00 00  ........mergecap............ ...

Ребята, я совершенно невежественен - ​​любые советы (за исключением вырезания первых нескольких байтов из файла) будут высоко оценены.

ОС: Backtrack 5 R2 (производная от Ubuntu)

uname: Linux z 3.2.6 # 1 SMP пт 17 февраля 10:40:05 EST 2012 i686 GNU / Linux

tcpdump версия 4.3.0

libpcap версия 1.0.0

Дополнительная информация:

ls /usr/local/bin/mergecap
-rwxr-xr-x 1 root root 37572 2012-10-31 08:09 /usr/local/bin/mergecap

 ~ > md5sum /usr/local/bin/mergecap
 e7dde01867c1e3f84dc48e5dae266f67  /usr/local/bin/mergecap

Почему это проблема для меня? Потому что я больше не могу читать объединенный файл с tcpdump -r. Tcpdump возвращает ошибку, что файл дампа в неправильном формате.


Является ли дополнительный текст на самом деле проблемой? Похоже, что он является частью формата и должен корректно обрабатываться любой последующей программой, в которую вы передаете файлы.
Тердон

@terdon это проблема. когда я ранее слил два файла, я смог tcpdumpлегко прочитать вновь созданный файл pcap с помощью tcpdump -r mergedfile.pcapnow, с этой дополнительной информацией tcpdump возвращает ошибку:tcpdump: bad dump file format
mnmnc

Кроме того, почему вы говорите, что обрезание первых n укусов не вариант? Вот что я бы предложил.
user1301428 10.12.12

@ user1301428 потому что это не то, чем я бы занимался один раз. Я работаю над большим проектом, который будет включать в себя высоко автоматизированный процесс объединения файлов и чтения. Поскольку количество байтов, которые мне пришлось бы удалить из файла, сильно зависит от длины имени файла и количества объединяемых файлов - это просто не вариант.
mnmnc

Что tcpdump -hпечатает? Поскольку он tcpdumpне может прочитать mergecapсозданный файл pcap-ng , он, вероятно, не сообщает libpcap version 1.1.0или более позднюю версию libpcap, так как 1.1.0 и более поздние версии могут читать некоторые файлы pcap-ng, поэтому tcpdumpиспользование 1.1.0 или более поздних версий может читать их.

Ответы:


1

Я думаю, что вы, должно быть, сделали что-то странное, мне кажется, это работает очень хорошо

$ head oo.pcap.merged | hexdump -C


00000000  0a 0d 0d 0a 84 00 00 00  4d 3c 2b 1a 01 00 00 00  |........M<+.....|
00000010  ff ff ff ff ff ff ff ff  01 00 52 00 46 69 6c 65  |..........R.File|
00000020  20 63 72 65 61 74 65 64  20 62 79 20 6d 65 72 67  | created by merg|
00000030  69 6e 67 3a 20 0a 46 69  6c 65 31 3a 20 61 61 61  |ing: .File1: aaa|
00000040  61 2e 70 63 61 70 20 0a  46 69 6c 65 32 3a 20 62  |a.pcap .File2: b|
00000050  62 62 62 62 2e 70 63 61  70 20 0a 46 69 6c 65 33  |bbbb.pcap .File3|
00000060  3a 20 63 63 63 63 63 2e  70 63 61 70 20 0a 00 00  |: ccccc.pcap ...|
00000070  04 00 08 00 6d 65 72 67  65 63 61 70 00 00 00 00  |....mergecap....|

Итак, он отображает то же поведение, которое вы описали, но затем, когда я пытаюсь использовать tcpdump для файла, похоже, что оно работает:

$ tcpdump -r oo.pcap.merged | head
reading from file oo.pcap.merged, link-type EN10MB (Ethernet)

А затем продолжается нормально для 369 строк.

tcpdump версия 4.3.0

Mergecap 1.8.0


Эй, спасибо за попытку помочь. Я нашел решение - я думаю, что вы используете другую версию, или разница заключается в разнице дистрибутива Linux. В любом случае мой tcpdump не читает файлы с перечислением файлов в начале файла pcap.
mnmnc

1

Хорошо. Я нашел решение, но не причину.

Я поделюсь им для будущих «жертв» этого несчастья;)

В качестве подсказки добавлю, что: недавно я сделал, apt-get update & upgradeчто может как-то повлиять на мою систему, но, если честно, я понятия не имею, как и почему это повлияет на слияние.

Решение состоит в том, чтобы указать mergecapтип выходного файла вручную. По умолчанию это должен быть libpcap, но, похоже, моя версия mergecapвнезапно переключилась на другой тип выходного файла и по умолчанию использовала другой тип.

Так что, если я использую mergecap -F libpcap -w out.pcap test1.pcap test2.pcapсейчас - все работает нормально. В начале выходного файла нет списка файлов или дополнительной информации, и tcpdump правильно читает файл - ура!


Более новые версии Wireshark поддерживают «выходной файл другого типа» (pcap-ng) в качестве выходного файла по умолчанию для всех программ. Возможно, mergecap должен, если все входные файлы относятся к одному и тому же типу файла, использовать это как формат выходного файла.

0

«0a 0d 0d 0a» - заголовок формата pcapng. Второй файл в формате pcapng.

mergecap принимает файлы формата pcap или pcapng. Обновленный libpcap выглядит как виновник.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.