Probleme mit mergecap [Verkettung von pcap-Dateien] - unerwünschte Informationen in der Ausgabedatei

2460
mnmnc

Ich hoffe jemand kann mir helfen ... Das Problem ist das Zusammenführen mehrerer .pcap-Dateien. Vor kurzem habe ich - wie vor einer Woche - ein Mergecap verwendet, um mehrere PCAP-Dateien in einer zusammenzuführen. Alles hat gut funktioniert.

So mache ich es:

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

Hier ist die headder Ausgabedatei (Beachten Sie das ASCII in der rechten Spalte):

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......... 

Alles Gut. Aber jetzt, wenn ich dasselbe für alle erfassten Dateien mache und den Befehl verwende:

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

Die Ausgabedatei enthält zusätzliche Informationen im oberen Bereich der Datei (in der ASCII-Spalte rechts gut sichtbar):

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............ ... 

Leute, ich bin völlig ahnungslos - jeder Ratschlag (außer das Abschneiden der ersten Bytes aus der Datei) wird sehr geschätzt.

Das Betriebssystem: Backtrack 5 R2 (Ubuntu-Derivat)

uname: Linux z 3.2.6 # 1 SMP Fri Feb 17 10:40:05 EST 2012 i686 GNU / Linux

tcpdump version 4.3.0

libpcap Version 1.0.0

Zusätzliche Information:

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 

Warum ist das ein Problem für mich? Weil ich die zusammengeführte Datei nicht mehr mit lesen kann tcpdump -r. Tcpdump gibt einen Fehler zurück, dass die Speicherauszugsdatei ein fehlerhaftes Format hat.

0
Ist der Zusatztext eigentlich ein Problem? Es sieht so aus, als sei es Teil des Formats und sollte von jedem Downstream-Programm, an das Sie die Dateien übergeben, korrekt verarbeitet werden. terdon vor 11 Jahren 0
@terdon ist das Problem. Als ich zuvor zwei Dateien zusammengeführt hatte, konnte ich die neu erstellte PCAP-Datei mit `tcpdump` problemlos mit dem` tcpdump -r mergedfile.pcap 'lesen. Mit diesen zusätzlichen Informationen gibt der tcpdump einen Fehler zurück: `tcpdump: bad dump file Format " mnmnc vor 11 Jahren 0
Warum sagen Sie auch, dass das Trimmen der ersten n Bisse keine Option ist? Das hätte ich vorgeschlagen. user1301428 vor 11 Jahren 0
@ user1301428 weil dies nicht etwas ist, was ich einmal tun würde. Ich arbeite an einem größeren Projekt, das einen hoch automatisierten Prozess zum Zusammenführen von Dateien und Lesen beinhaltet. Da die Anzahl der Bytes, die ich aus der Datei entfernen müsste, stark von der Dateilänge des Dateinamens und der Anzahl der zusammengeführten Dateien abhängt, ist dies keine Option. mnmnc vor 11 Jahren 0
Was druckt `tcpdump -h`? Da "tcpdump" die pcap-ng-Datei, die von "mergecap" erstellt wurde, nicht lesen kann, wird "libpcap Version 1.1.0" oder eine neuere Version von libpcap wahrscheinlich nicht als 1.1.0 oder höher angezeigt, da einige pcap-Dateien gelesen werden können -ng Dateien, so dass ein `tcpdump` mit 1.1.0 oder neuer sie lesen kann. vor 10 Jahren 0

3 Antworten auf die Frage

1
terdon

Ich denke, du musst etwas seltsames getan haben, es scheint für mich perfekt zu funktionieren:

$ 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....| 

Es zeigt also dasselbe Verhalten, das Sie beschrieben haben, aber wenn ich versuche, tcpdump für die Datei zu verwenden, scheint es zu funktionieren:

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

Dann geht es normalerweise für 369 Zeilen weiter.

tcpdump version 4.3.0

Mergecap 1.8.0

Hey, danke für den Versuch zu helfen. Ich habe eine Lösung gefunden - ich denke, Sie verwenden eine andere Version oder der Unterschied liegt in der Linux-Distro-Differenz. Auf jeden Fall liest mein tcpdump die Dateien nicht mit der Dateiliste am Anfang der pcap-Datei. mnmnc vor 11 Jahren 0
0
mnmnc

OK. Ich habe die Lösung gefunden, aber nicht die Ursache.

Ich werde es für zukünftige "Opfer" dieses Unglücks teilen;)

Als Hinweisapt-get update & upgrade möchte ich Folgendes hinzufügen: Kürzlich habe ich etwas getan, was mein System irgendwie beeinflusst haben könnte, aber um ganz ehrlich zu sein, habe ich keine Ahnung, wie und warum es das Mergecap beeinflusst.

Die Lösung besteht darin, den mergecapAusgabedateityp manuell anzugeben . Standardmäßig sollte es libpcap sein, aber anscheinend hat meine Version mergecapplötzlich auf einen anderen Typ der Ausgabedatei gewechselt und standardmäßig den anderen Typ verwendet.

Wenn ich mergecap -F libpcap -w out.pcap test1.pcap test2.pcapjetzt benutze, funktioniert alles gut. Es gibt keine Dateiliste oder zusätzliche Informationen am Anfang der Ausgabedatei, und der tcpdump liest die Datei korrekt - hooray!

Neuere Versionen von Wireshark unterstützen standardmäßig die "andere Art von Ausgabedatei" (pcap-ng) als Ausgabedatei für * alle * Programme. Vielleicht sollte mergecap, wenn alle Eingabedateien vom gleichen Dateityp sind, auch das Ausgabedateiformat verwenden. vor 10 Jahren 0
0
harry courtice

"0a 0d 0d 0a" ist der Header des pcapng-Formats. Die zweite Datei hat das Format pcapng.

mergecap akzeptiert Dateien im pcap- oder pcapng-Format. Das aktualisierte libpcap sieht aus wie der Täter.