Soluzione 1:
Puoi usare tcpdump
per estrarre le parti del pcap che vuoi... supponi di cercare pacchetti in una connessione socket tra TCP/55777 su un host e TCP/80 su un altro. Il tuo file sorgente è bigfile.pcap
, che è uno sniffer dump di molte sessioni HTTP sull'host web in questione...
tcpdump -r bigfile.pcap -w session.pcap -s0 tcp and port 55777
Questo estrarrà tutti i pacchetti che vanno da e verso TCP/55777 in bigfile.pcap
e copiali in session.pcap
.
Soluzione 2:
Puoi anche usare PcapSplitter che fa parte del pacchetto PcapPlusPlus. Fa esattamente ciò di cui hai bisogno (che è dividere i file pcap tramite connessione TCP o UDP), è multipiattaforma e non ha un limite al numero di connessioni nel file originale (quindi puoi usarlo per dividere una grande pcap contenente migliaia di connessioni o anche di più). Il link sopra è per il codice sorgente, ma se vuoi un binario compilato, ecco un link per i binari che ho creato per diverse piattaforme
MODIFICA: apparentemente è stata rilasciata una nuova versione di PcapPlusPlus che contiene i binari di PcapSplitter per un bel po' di piattaforme (Windows, Ubuntu 12.04/14.04, Mac OSX Mavericks/Yosemite/El Captian). Penso che sia meglio usare questi binari rispetto al collegamento che ho fornito in precedenza. Puoi trovarlo qui
Soluzione 3:
tcpflow è quello che vuoi:divide pcaps in un file per sessione TCP
http://www.circlemud.org/jelson/software/tcpflow/
Soluzione 4:
Un po' eccessivo, ma usando tshark
(spedito con wireshark
), potresti farlo 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
Che genera file denominati come 1509466312.202450000-10.0.0.1-58892-10.0.0.2-80.pcap
(basato sul primo pacchetto visto per ogni connessione).
Soluzione 5:
Sembra che ci sia questo strumento che potrebbe funzionare (non l'ho usato personalmente)
http://www.netresec.com/?page=SplitCap (basato su Windows)
SplitCap è uno splitter di file pcap opensource gratuito (come nella birra). SplitCap divide un grande file pcap in più file in base a sessioni TCP e UDP, un file pcap per sessione. SplitCap può essere utilizzato anche per dividere un file pcap in un file pcap per coppia di host invece che per sessione.