Existe uma ferramenta para dividir um arquivo de captura de pacote (no formato pcap) em arquivos separados para cada conexão TCP? (exceto um script de shell desenvolvido em casa que provavelmente precisa ser executado duas vezes durante a captura ...). Algo como o 'follow TCP stream' do wireshark, mas para a linha de comando (receio que o wireshark consuma uma grande quantidade de memória ao exibir uma captura de pacote de 700 MB)
Eu olhei para o tcpflow, mas ele parece produzir arquivos muito maiores que os arquivos pcap originais e eles parecem não estar no formato pcap.
linux
command-line-interface
tcp
pcap
Andre Holzner
fonte
fonte
Respostas:
Você também pode usar o PcapSplitter, que faz parte do pacote PcapPlusPlus . Ele faz exatamente o que você precisa (que está dividindo arquivos pcap por conexão TCP ou UDP), é multiplataforma e não tem limite no número de conexões no arquivo original (para que você possa usá-lo para dividir um grande número arquivo pcap contendo milhares de conexões ou mais). O link acima é para o código fonte, mas se você quiser um binário compilado - aqui está um link para binários que criei para várias plataformas
EDIT: aparentemente uma nova versão do PcapPlusPlus foi lançada e contém binários PcapSplitter para várias plataformas (Windows, Ubuntu 12.04 / 14.04, Mac OSX Mavericks / Yosemite / El Captian). Eu acho que é melhor usar esses binários do que o link que eu forneci anteriormente. Você pode encontrá-lo aqui
fonte
Você pode usar
tcpdump
para extrair as partes do pcap que deseja ... suponha que você esteja procurando pacotes em uma conexão de soquete entre o TCP / 55777 em um host e o TCP / 80 em outro. Seu arquivo de origem ébigfile.pcap
, que é um snipfer dump de muitas sessões HTTP para o host em questão ...Isso puxará todos os pacotes que entram
bigfile.pcap
e saem do TCP / 55777 e os copia parasession.pcap
.fonte
-s0
algum efeito quando usado junto-r
?Um pouco exagerado, mas usando
tshark
(fornecido comwireshark
), você pode fazer comzsh
:O que gera arquivos com o nome like
1509466312.202450000-10.0.0.1-58892-10.0.0.2-80.pcap
(com base no primeiro pacote visto para cada conexão).fonte
tcpflow é o que você deseja - divide pcaps em um arquivo por sessão TCP
http://www.circlemud.org/jelson/software/tcpflow/
fonte
Parece haver essa ferramenta que pode funcionar (eu não a usei pessoalmente)
http://www.netresec.com/?page=SplitCap (baseado em Windows)
fonte
inspirado por @sch aqui está uma versão do bash:
o nome do arquivo será assim:
stream number__time__source IP__port__destination IP__port.pcap
tr -d '\r'
é para usuários do Windows, porque o tshark no Windows gera CR LF.Editar :
esta solução com o tshark é muito lenta, mas segura. O SplitCap é super rápido, mas quando há um erro em alguns pacotes, ele falha, enquanto o tshark apenas o informa sobre o erro, mas continua:
e finalmente há o PcapSplitter que é super rápido também, mas precisa do driver winpcap, ele não funciona com o driver npcap no Windows.
Mas existe uma solução para o SplitCap: usando o pcapfix, eu posso consertar os pacotes corrompidos e o SplitCap nunca mais falha. e é isso que estou usando agora, porque o tshark é muito lento em dividir.
e uma solução para o PcapSplitter que fiz foi injetar a dll winpcap usando qualquer método, mas enquanto temos o SplitCap, por que fazer isso?
fonte