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

2385
mnmnc

Я надеюсь, что кто-нибудь сможет мне помочь ... Проблема заключается в объединении нескольких файлов .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 возвращает ошибку, что файл дампа в неправильном формате.

0
Является ли дополнительный текст на самом деле проблемой? Похоже, что это часть формата и должна корректно обрабатываться любой последующей программой, в которую вы передаете файлы. terdon 11 лет назад 0
@terdon это проблема. Когда я ранее слил два файла, я смог легко прочитать вновь созданный pcap-файл с помощью `tcpdump`, используя` tcpdump -r mergedfile.pcap`, теперь с этой дополнительной информацией tcpdump возвращает ошибку: `tcpdump: bad dump file format` mnmnc 11 лет назад 0
Кроме того, почему вы говорите, что обрезание первых n укусов не вариант? Вот что я бы предложил. user1301428 11 лет назад 0
@ user1301428 потому что это не то, чем я бы занимался один раз. Я работаю над большим проектом, который будет включать в себя высоко автоматизированный процесс объединения файлов и чтения. Поскольку количество байтов, которые мне пришлось бы удалить из файла, сильно зависит от длины имени файла и количества объединяемых файлов - это просто не вариант. mnmnc 11 лет назад 0
Что печатает `tcpdump -h`? Поскольку `tcpdump` не может прочитать файл pcap-ng, созданный` mergecap`, он, вероятно, не сообщает о `libpcap version 1.1.0` или более поздней версии libpcap, так как 1.1.0 и более поздние могут читать некоторые pcap -ng файлы, чтобы их мог прочитать `tcpdump`, использующий 1.1.0 или новее. 10 лет назад 0

3 ответа на вопрос

1
terdon

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

$ 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 11 лет назад 0
0
mnmnc

Ok. I've found the solution but not the cause.

I'll share it for future 'victims' of this misfortune ;)

As a hint i will add that: Recently i've done apt-get update & upgrade which might somehow affected my system but to be completely honest i have no idea how and why whould it impact the mergecap.

The solution is to specify the mergecap output file type manually. By default it should be libpcap but it seems my version of mergecap suddenly switched to other type of the output file and used the other type by default.

So if I use mergecap -F libpcap -w out.pcap test1.pcap test2.pcap now - it all works fine. There is no file listing or additional info at the beginning of the output file and the tcpdump reads the file correctly - hooray!

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

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

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

Похожие вопросы