Introdução
Imagine tentar contar todos os carros vermelhos que passam em uma rodovia movimentada em tempo real. É estressante e propenso a erros. Agora, imagine gravar um vídeo dessa rodovia, levar a fita para casa e poder pausar, retroceder e avançar rapidamente para contar os carros com perfeição.
No mundo da cibersegurança e da computação forense, os profissionais raramente analisam o tráfego de rede ao vivo enquanto ele passa rapidamente. Em vez disso, eles "gravam o vídeo". Eles capturam o tráfego bruto e o salvam em um formato padrão conhecido como arquivo PCAP (Packet Capture). Essa abordagem fornece um registro permanente e inalterado dos eventos de rede, permitindo uma análise profunda e sem estresse muito tempo após a ocorrência de um incidente.
Essa mentalidade de manutenção de registros é essencial porque muitos eventos de segurança são passageiros. Uma conexão suspeita pode durar apenas alguns segundos. Uma solicitação de malware pode acontecer uma vez e nunca mais se repetir. Se você não preservou o tráfego no momento em que ele ocorreu, pode perder a chance de reconstruir o evento mais tarde. Portanto, os arquivos PCAP desempenham para a atividade de rede o mesmo papel que as imagens de disco e os arquivos de log desempenham em outras investigações forenses.
Neste laboratório, você aprenderá a arte essencial de gerenciar arquivos PCAP usando o tcpdump. Você praticará a gravação silenciosa de tráfego de rede ao vivo em um arquivo, a leitura desses dados de volta no seu terminal para revisão offline, a aplicação de filtros precisos para investigar tráfego antigo e a extração organizada de fatias menores de evidências para compartilhar com outras pessoas.
Gravar Tráfego em um Arquivo PCAP
O primeiro passo na análise offline é, de fato, gravar os dados. Em vez de deixar o tcpdump poluir sua tela com textos que rolam rapidamente, você pode instruí-lo a gravar tudo silenciosamente e diretamente em um arquivo de armazenamento. Isso é feito usando a flag -w (write).
Observe a diferença de propósito entre uma captura de tela e uma captura PCAP. Ao imprimir no terminal, o tcpdump já está resumindo os pacotes para leitura humana. Ao gravar em um arquivo PCAP, ele preserva os dados do pacote em uma forma que outras ferramentas de análise podem processar posteriormente. É por isso que gravar em um arquivo é geralmente a melhor escolha quando você acha que pode precisar revisitar as evidências.
Quando você usa a flag -w seguida de um nome de arquivo, o tcpdump para de enviar qualquer informação para a sua tela. Ele captura os dados brutos dos pacotes diretamente da interface de rede e os empacota com segurança no formato PCAP padrão.
Primeiro, vamos garantir que você esteja no seu diretório principal de projeto, onde é seguro salvar arquivos:
cd ~/project
Agora, é hora de capturar. Para evitar que o programa grave indefinidamente e encha seu disco rígido, usaremos a flag -c (count) para dizer a ele para parar exatamente após 50 pacotes. Também introduziremos a flag -i any, que diz ao programa para lançar uma rede ampla e capturar o tráfego que se move por todas as portas de rede disponíveis simultaneamente.
Execute o seguinte comando para capturar 50 pacotes e empacotá-los em um arquivo chamado capture.pcap:
sudo tcpdump -i any -c 50 -w capture.pcap
Como seu terminal baseado em navegador gera constantemente pequenas quantidades de tráfego de rede em segundo plano para permanecer conectado, a captura provavelmente terminará muito rapidamente. Você verá um breve resumo como este:
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
50 packets captured
52 packets received by filter
0 packets dropped by kernel
Observe a diferença crucial aqui: absolutamente nenhum detalhe específico de pacote foi impresso. Todos os dados sensíveis foram silenciosamente armazenados no arquivo.
Você pode verificar se sua nova gravação existe e verificar seu tamanho físico usando o comando padrão de listagem do Linux:
ls -lh capture.pcap
Ver o arquivo capture.pcap listado junto com seu tamanho confirma que o tráfego de rede bruto foi salvo com sucesso e está pronto para análise.
Ler Tráfego de um Arquivo PCAP
Agora que você salvou suas evidências com segurança, precisa de uma maneira de analisá-las. Esse processo é comumente conhecido como análise offline.
A análise offline tem uma vantagem prática importante: ela separa a coleta da interpretação. Durante um incidente ao vivo, os defensores muitas vezes ainda não sabem quais pacotes são importantes. Sua primeira tarefa é preservar o máximo de evidências relevantes possível. Somente depois, quando a situação estiver estável, eles começam o processo mais lento de fazer perguntas direcionadas aos dados salvos.
Para abrir e ler um arquivo PCAP, você alterna de gravação para leitura usando a flag -r, seguida pelo nome do arquivo. A beleza deste comando é que o tcpdump processará o arquivo salvo exatamente como se os pacotes estivessem passando pela rede ao vivo naquele momento.
Execute o seguinte comando para enviar os pacotes do seu arquivo capture.pcap recém-criado de volta para a sua tela:
tcpdump -r capture.pcap
Nota: Capturar tráfego ao vivo requer acesso profundo ao sistema, e é por isso que usamos sudo. No entanto, ler um arquivo normal que você possui não requer. Você pode executar o comando de leitura com segurança sem privilégios especiais de administrador.
De repente, os 50 pacotes que você capturou silenciosamente antes aparecerão na tela do seu terminal, parecendo idênticos a uma captura ao vivo:
reading from file capture.pcap, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144
10:25:31.123456 IP 10.0.2.100.22 > 10.0.2.2.54321: Flags [P.], seq 1:100, ack 1, win 500, length 99
10:25:31.123500 IP 10.0.2.2.54321 > 10.0.2.100.22: Flags [.], ack 100, win 500, length 0
...
Ler de um arquivo estático é um grande alívio para um analista. Como os dados estão congelados no tempo, você pode executar o comando -r repetidamente, levando todo o tempo necessário, sem nunca alterar a evidência original.
Para otimizar sua análise, você pode combinar a flag -r com outras opções de exibição. Por exemplo, usar a flag -n ordena que o tcpdump ignore a tradução de endereços IP em nomes de computadores. Isso evita que a ferramenta faça consultas extras em segundo plano, resultando em uma exibição muito mais rápida e uma saída muito mais limpa e técnica:
tcpdump -n -r capture.pcap
Aplicar Filtros a PCAPs Existentes
Gravar um grande bloco de tráfego geralmente resulta em arquivos enormes cheios de ruído irrelevante. Quando você está realizando uma investigação, quase nunca quer ler cada linha de pacote individualmente.
É por isso que uma boa coleta de evidências geralmente é ampla, enquanto uma boa análise de evidências geralmente é restrita. Durante a coleta, você prefere perder o mínimo possível. Durante a análise, você reduz agressivamente o escopo para poder focar nos pacotes que respondem à sua pergunta atual. Usar filtros em um PCAP salvo permite que você faça ambos sem repetir a captura original.
A verdadeira mágica do tcpdump é que todos os poderosos Berkeley Packet Filters (BPF) que você usa em redes ao vivo funcionam exatamente da mesma maneira em arquivos salvos. O tcpdump lerá rapidamente todo o arquivo PCAP em segundo plano, mas imprimirá apenas os pacotes específicos que correspondem ao filtro escolhido.
Vamos testar isso filtrando seu arquivo capture.pcap para que ele exiba exclusivamente o tráfego TCP, ignorando todo o resto. Execute o seguinte comando:
tcpdump -n -r capture.pcap tcp
A saída será visivelmente mais curta, exibindo apenas os pacotes identificados como protocolo TCP.
Você pode ser tão preciso quanto precisar. Por exemplo, se você suspeita de um problema com o serviço SSH (que roda intensamente em segundo plano no seu ambiente de terminal na porta 22), você pode aplicar um filtro de porta retroativamente.
Execute este comando:
tcpdump -n -r capture.pcap port 22
A saída na sua tela apresentará estritamente os pacotes onde a origem ou o destino correspondem à porta 22:
reading from file capture.pcap, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144
10:25:31.123456 IP 10.0.2.100.22 > 10.0.2.2.54321: Flags [P.], seq 1:100, ack 1, win 500, length 99
...
Essa capacidade de aplicar filtros após o fato é, sem dúvida, a habilidade mais crítica na computação forense. Em uma crise do mundo real, os defensores lançam uma rede ampla e usam -w para gravar indiscriminadamente tudo na rede. Quando a poeira baixa, eles usam -r e filtros BPF complexos para analisar calmamente a montanha de evidências, localizando o momento exato em que um invasor violou o sistema.
Extrair Tráfego Específico para um Novo PCAP
Às vezes, você descobrirá que um arquivo de captura é simplesmente grande demais para ser transferido facilmente para outro computador, ou pode precisar isolar alguns pacotes altamente suspeitos para enviar a uma equipe de segurança especializada.
Essa prática é comum em investigações reais, pois as evidências geralmente precisam transitar entre equipes. Um analista de linha de frente pode capturar um arquivo enorme e, em seguida, extrair apenas o tráfego suspeito para analistas de malware, respondedores a incidentes ou desenvolvedores. PCAPs menores e focados são mais fáceis de compartilhar, mais rápidos de inspecionar e menos propensos a expor dados de segundo plano irrelevantes que outras equipes não precisam.
Ao combinar brilhantemente as funções de leitura (-r), filtro e gravação (-w) em um único comando, você pode extrair apenas os pacotes relevantes e salvá-los permanentemente como um arquivo PCAP novo e altamente focado.
Vamos agir como analistas forenses e extrair apenas os pacotes TCP do nosso arquivo de evidência original capture.pcap. Vamos canalizar esses pacotes específicos para um novo arquivo chamado tcp_only.pcap.
Execute o seguinte comando:
tcpdump -r capture.pcap tcp -w tcp_only.pcap
Ao executar isso, seu terminal permanecerá perfeitamente silencioso. O tcpdump lê o arquivo original, aplica silenciosamente o filtro tcp e grava com segurança os pacotes aprovados diretamente no novo arquivo tcp_only.pcap sem exibir nada na tela.
Você pode verificar se seu novo arquivo de evidência altamente específico foi criado com sucesso listando os arquivos:
ls -lh capture.pcap tcp_only.pcap
Você verá ambos os arquivos lado a lado. Dependendo do tráfego de segundo plano que estava ocorrendo durante sua captura inicial, o tcp_only.pcap provavelmente será um pouco menor que o arquivo mestre capture.pcap, pois ele removeu com sucesso qualquer ruído não-TCP irrelevante.
Para garantir que seu novo arquivo contenha apenas os dados pretendidos, você pode simplesmente lê-lo de volta:
tcpdump -n -r tcp_only.pcap
Essa técnica simples de extração é imensamente valiosa para organizar dados caóticos e compartilhar com segurança apenas as partes necessárias de uma investigação.
Resumo
Parabéns! Você dominou com sucesso os fundamentos do gerenciamento de arquivos PCAP.
Neste laboratório, você aprendeu a tratar o tráfego de rede como evidência gravada. Você praticou a captura segura de eventos de rede ao vivo em um arquivo de armazenamento usando a flag -w. Você fez a transição para uma mentalidade de análise offline, lendo os pacotes salvos de volta no seu terminal usando a flag -r. Você demonstrou como aplicar filtros BPF retroativamente a arquivos de captura existentes para filtrar rapidamente o ruído e, finalmente, aprendeu como extrair dados altamente específicos para um novo arquivo PCAP para uma investigação concisa e direcionada.
Essas técnicas de gerenciamento de arquivos são o procedimento operacional padrão absoluto para computação forense, resposta a incidentes e solução de problemas de rede avançados. Agora você possui as habilidades principais para capturar e analisar adequadamente os fluxos de dados invisíveis que impulsionam o mundo moderno.

