Solución 1:
Puedes usar tcpdump
para extraer las partes del pcap que desea... suponga que está buscando paquetes en una conexión de socket entre TCP/55777 en un host y TCP/80 en otro. Su archivo fuente es bigfile.pcap
, que es un volcado de sniffer de muchas sesiones HTTP al servidor web en cuestión...
tcpdump -r bigfile.pcap -w session.pcap -s0 tcp and port 55777
Eso extraerá todos los paquetes que van y vienen de TCP/55777 en bigfile.pcap
y copiarlos en session.pcap
.
Solución 2:
También puede usar PcapSplitter, que es parte del paquete PcapPlusPlus. Hace exactamente lo que necesita (que es dividir archivos pcap por conexión TCP o UDP), es multiplataforma y no tiene un límite en la cantidad de conexiones en el archivo original (por lo que puede usarlo para dividir un gran pcap que contiene miles de conexiones o incluso más). El enlace anterior es para el código fuente, pero si desea un binario compilado, aquí hay un enlace para los binarios que hice para varias plataformas
EDITAR: aparentemente se lanzó una nueva versión de PcapPlusPlus y contiene binarios de 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. Puedes encontrarlo aquí
Solución 3:
tcpflow es lo que desea:divide pcaps en un archivo por sesión TCP
http://www.circlemud.org/jelson/software/tcpflow/
Solución 4:
Un poco exagerado, pero usando tshark
(enviado con wireshark
), te vendría bien con zsh
:
file=file.pcap
tshark -Tfields -e tcp.stream \
-e frame.time_epoch \
-e ip.src \
-e tcp.srcport \
-e ip.dst \
-e tcp.dstport -r $file |
sort -snu |
while read -A f; do
tshark -r $file -2R "tcp.stream == $f[1]" -w ${(j:-:)f[2,-1]}.pcap
done
Que genera archivos llamados como 1509466312.202450000-10.0.0.1-58892-10.0.0.2-80.pcap
(basado en el primer paquete visto para cada conexión).
Solución 5:
Parece que existe esta herramienta que podría funcionar (no la he usado personalmente)
http://www.netresec.com/?page=SplitCap (basado en Windows)
SplitCap es un divisor de archivos pcap de código abierto gratuito (como en la cerveza). SplitCap divide un gran archivo pcap en varios archivos según las sesiones TCP y UDP, un archivo pcap por sesión. SplitCap también se puede usar para dividir un archivo pcap en un archivo pcap por par de host en lugar de sesión.