cómo dividir un archivo pcap en un conjunto de archivos más pequeños

47

Tengo un gran archivo pcap (generado por tcpdump). Cuando trato de abrirlo en wireshark, el programa simplemente no responde. ¿Hay alguna manera de dividir un archivo en un conjunto de archivos más pequeños para abrirlos uno por uno? El tráfico capturado en un archivo es generado por dos programas en dos servidores, por lo que no puedo dividir el archivo usando los filtros tcpdump 'host' o 'port'. También probé el comando 'split' de Linux :-) pero sin suerte. Wireshark no reconocería el formato.

facha
fuente
¿Qué tan grande es enorme? ¿Es mucho más grande que la RAM disponible?
pehrs
2
Un poco tarde, pero la razón por la que Wireshark no leerá los archivos que son la salida splites porque la división se dividirá en límites de bytes exactos. Es muy probable que esto divida un paquete que invalida parte del contenido del archivo.
Burhan Ali

Respuestas:

72

Puede usar tcpdump con las opciones -C, -r y -w

tcpdump -r old_file -w new_files -C 10

La opción "-C" especifica el tamaño del archivo para dividir. Por ejemplo: en el caso anterior, el tamaño de los archivos nuevos será de 10 millones de bytes cada uno.

Dan Andreatta
fuente
Eres un humano increíble, Dan.
lobi
¿Hay alguna manera de hacer esto sin separar una sesión? (Suponiendo que una sola sesión es más pequeña que el argumento de límite de tamaño).
spanishgum
Rápido: se tcpdump -r old_file -w new_files -C 1000 divide en cada 955 MB de tráfico registrado
gies0r
18

Use la editcaputilidad que se distribuye con Wireshark.

Dan Carley
fuente
55
editpcap -c 1000 input.pcap output.pcapse dividirá input.pcapen capturas con un máximo de 1000 paquetes por captura. La salida será múltiples archivos de captura formateados comooutput_{index}_{timestamp}.pcap
blachniet
1
Gracias blachniet por el ejemplo! Pero es justo editcap, no editpcap, ¿verdad?
lindhe
3

Sé que esta respuesta llega un poco tarde, pero también puede servir a otras personas. Encontré una gran herramienta para dividir archivos pcap: PcapSplitter . Es parte de la biblioteca PcapPlusPlus , lo que significa que es multiplataforma (Win32, Linux y Mac OS), y puede dividir archivos pcap en función de diferentes criterios, como el tamaño del archivo (lo que parece necesitar), pero también por conexión, cliente / servidor IP, puerto del servidor (similar al protocolo), conteo de paquetes, etc. Lo encontré muy útil. El enlace de arriba es para el código fuente, pero si no quieres / sabes cómo compilar, creé binarios compilados para varias plataformas con las que he estado usando esta herramienta. Recomiendo mucho esta herramienta

EDITAR: aparentemente se lanzó una nueva versión de PcapPlusPlus y contiene binarios PcapSplitter para muchas plataformas (Windows, Ubuntu 12.04 / 14.04, Mac OSX Mavericks / Yosemite / El Captian). Creo que es mejor usar estos binarios que el enlace que proporcioné anteriormente. Lo puedes encontrar aqui

fx23
fuente
2

La mejor y más rápida forma de hacerlo es usar SplitCap, que puede dividir grandes archivos de volcado de paquetes basados ​​en sesiones, por ejemplo. De esta forma, obtendría cada sesión TCP en un archivo PCAP separado. SplitCap también puede separar paquetes en archivos pcap basados ​​en direcciones IP.

Puede leer más sobre SplitCap en el blog de Netresec: http://www.netresec.com/?page=Blog&month=2011-05&post=Split-or-filter-your-PCAP-files-with-SplitCap

Descargue SplitCap desde aquí: http://www.netresec.com/?page=SplitCap

¡Buena suerte!

Netresec
fuente
¿Hay alguna versión de Linux?
ychaouche
Este es un buen programa, puesto que carece de la capacidad de trabajar con archivos pcapng.
Guntram Blohm apoya a Monica el
0
tcpdump -w trace.pcap -W 48 -G 300 -C 100 -i any port 41110
  • -G 300 rotará en 5 minutos
  • -W 48 recuento de archivos
  • -C 100 tamaño de archivo 100 MB
  • port puede especificar el puerto en función de la aplicación
user531905
fuente