Introdução
O tráfego de rede é frequentemente dividido em partes menores chamadas pacotes antes de ser transmitido. Quando um cliente e um servidor se comunicam, eles enviam muitos desses pacotes de um lado para o outro. Um "fluxo" (stream) representa a sequência completa e ordenada desses pacotes para uma única conexão.
Essa distinção entre pacotes e fluxos é uma das mudanças de mentalidade mais importantes na análise de protocolos. Pacotes individuais mostram o que aconteceu em um instante específico. Fluxos mostram a conversa completa. Muitos eventos da camada de aplicação, como logins, envios de formulários e transferências de arquivos, fazem muito mais sentido quando você reconstrói a conversa em vez de observar pacotes isolados um por um.
Neste laboratório, você aprenderá a usar o tshark (a versão de linha de comando do Wireshark) para reconstruir essas conversas de rede fragmentadas. Ao acompanhar fluxos TCP completos, você será capaz de unir os pacotes individuais e visualizar toda a interação entre um cliente e um servidor em texto legível. Esta é uma habilidade essencial para a resolução de problemas de rede e análise de segurança.
Identificar Fluxos TCP
Nesta etapa, você aprenderá a identificar os diferentes fluxos TCP presentes em um arquivo de captura de rede.
Quando o tshark lê um arquivo de captura, ele agrupa automaticamente os pacotes que pertencem à mesma conexão (mesmo IP de origem, porta de origem, IP de destino e porta de destino) e atribui a eles um índice inteiro exclusivo. Esse índice é conhecido como campo tcp.stream.
Você pode pensar no tcp.stream como um rótulo de conversa criado pelo analisador. Ele não vem da própria rede como um campo de protocolo. Em vez disso, o tshark infere que certos pacotes pertencem um ao outro porque compartilham os mesmos pontos de extremidade de conexão e sequência de eventos. É por isso que a análise de fluxo é uma "visão do analista" tão útil dos dados.
Seu ambiente já foi preparado com um arquivo de captura de exemplo chamado sample_traffic.pcap localizado no seu diretório ~/project. Este arquivo contém algum tráfego web básico.
Para ver todos os fluxos TCP exclusivos neste arquivo de captura, você pode instruir o tshark a extrair o campo tcp.stream de cada pacote, classificar os resultados e exibir apenas os valores exclusivos.
Execute o seguinte comando no seu terminal:
tshark -r sample_traffic.pcap -T fields -e tcp.stream | sort -n | uniq
Vamos detalhar este comando:
-r sample_traffic.pcap: Diz aotsharkpara ler o arquivo de captura especificado.-T fields: Especifica que queremos exibir campos específicos em vez do resumo de pacotes padrão.-e tcp.stream: Diz aotsharkpara imprimir o índice do fluxo TCP para cada pacote.| sort -n | uniq: Direciona a saída para utilitários padrão do Linux para classificar os números numericamente e remover duplicatas.
Você deverá ver uma saída semelhante a esta:
0
1
Esta saída indica que existem duas conversas TCP distintas (Fluxo 0 e Fluxo 1) registradas neste arquivo de captura.
Reconstruir o Fluxo TCP
Agora que você conhece os números de índice dos fluxos TCP, pode reconstruir a conversa inteira. Este processo é idêntico ao recurso "Follow TCP Stream" na interface gráfica do Wireshark.
A reconstrução é especialmente valiosa para protocolos baseados em texto, como HTTP, SMTP e muitos protocolos de aplicação legados, porque o analista pode ler solicitações e respostas na ordem em que a aplicação as processou. Mesmo quando a troca subjacente abrange vários pacotes, o fluxo reconstruído restaura a narrativa.
Nesta etapa, reconstruiremos o Fluxo 0. Este fluxo contém uma solicitação HTTP GET onde um cliente solicitou uma página web ao servidor.
Para acompanhar um fluxo no tshark, você usa a opção -z, que é usada para várias tarefas de estatística e análise. A sintaxe específica para acompanhar um fluxo é -z follow,tcp,ascii,<stream_index>.
Execute o seguinte comando para reconstruir o Fluxo 0:
tshark -r sample_traffic.pcap -z follow,tcp,ascii,0 -q
Aqui está o significado dos novos argumentos:
-z follow,tcp,ascii,0: Instrui otsharka acompanhar o fluxo TCP com índice0e exibir o payload no formatoascii(texto legível).-q: Significa "quiet" (silencioso). Ele suprime a saída padrão por pacote para que você veja apenas os dados do fluxo reconstruído.
Você verá uma saída exibindo a conversa HTTP completa:
===================================================================
Follow: tcp,ascii
Filter: tcp.stream eq 0
Node 0: 127.0.0.1:58548
Node 1: 127.0.0.1:8080
GET / HTTP/1.1
Host: localhost:8080
User-Agent: curl/7.81.0
Accept: */*
HTTP/1.0 200 OK
Server: SimpleHTTP/0.6 Python/3.10.12
Date: Thu, 05 Mar 2026 02:00:48 GMT
Content-type: text/html
Content-Length: 40
Last-Modified: Thu, 05 Mar 2026 02:00:44 GMT
Welcome to the LabEx Network Stream Lab
===================================================================
Nesta saída, você pode ver claramente a solicitação do cliente (GET / HTTP/1.1...) seguida imediatamente pela resposta do servidor (HTTP/1.0 200 OK... e o conteúdo HTML). O tshark uniu com sucesso os pacotes individuais em um bloco de texto coerente.
Analisar a Conversa
Ao analisar o tráfego de rede, as conversas podem ser muito longas. Imprimir um fluxo massivo diretamente no terminal pode tornar a leitura e a análise difíceis.
Salvar o fluxo reconstruído em um arquivo é um pequeno passo, mas reflete um hábito forense mais amplo: preservar artefatos de análise intermediários. Investigadores frequentemente mantêm notas, conversas extraídas, payloads decodificados e evidências filtradas como arquivos separados para que as descobertas possam ser revisadas, comparadas ou entregues a outra pessoa sem repetir os mesmos comandos do zero.
Nesta etapa, você reconstruirá o Fluxo 1 e redirecionará a saída para um arquivo de texto. Isso permite que você use editores de texto padrão ou ferramentas de linha de comando para inspecionar a conversa no seu próprio ritmo.
O Fluxo 1 contém uma solicitação HTTP POST, que é normalmente usada ao enviar dados, como um formulário de login.
Execute o seguinte comando para acompanhar o Fluxo 1 e salvar a saída em um arquivo chamado stream1_analysis.txt:
tshark -r sample_traffic.pcap -z follow,tcp,ascii,1 -q > stream1_analysis.txt
O operador > pega a saída que normalmente seria impressa na sua tela e a grava em stream1_analysis.txt no seu diretório atual (~/project).
Agora, use o comando cat para visualizar o conteúdo do arquivo que você acabou de criar:
cat stream1_analysis.txt
Sua saída deve ser semelhante a esta:
===================================================================
Follow: tcp,ascii
Filter: tcp.stream eq 1
Node 0: 127.0.0.1:45138
Node 1: 127.0.0.1:8080
POST /login HTTP/1.1
Host: localhost:8080
User-Agent: curl/7.81.0
Accept: */*
Content-Length: 23
Content-Type: application/x-www-form-urlencoded
user=labex&action=loginHTTP/1.0 501 Unsupported method ('POST')
Server: SimpleHTTP/0.6 Python/3.10.12
Date: Wed, 25 Oct 2026 10:00:05 GMT
Connection: close
Content-Type: text/html;charset=utf-8
Content-Length: 480
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
...
===================================================================
Ao analisar este arquivo, você pode observar os dados exatos que o cliente enviou no corpo da solicitação POST (user=labex&action=login). Você também pode ver a resposta do servidor, que neste caso é um erro 501 Unsupported method, indicando que o servidor web Python simples usado para gerar este tráfego não suporta solicitações POST.
Salvar fluxos em arquivos é uma técnica altamente eficaz quando você precisa extrair arquivos, credenciais ou logs detalhados de capturas de rede.
Resumo
Parabéns! Você concluiu com sucesso o laboratório de Acompanhamento de Fluxos de Rede.
Neste laboratório, você aprendeu como:
- Identificar fluxos TCP exclusivos dentro de um arquivo de captura de pacotes usando o campo
tcp.stream. - Reconstruir e visualizar a conversa completa de um fluxo TCP específico usando o recurso
followdotshark. - Redirecionar dados de fluxo reconstruídos para arquivos de texto para facilitar a leitura e a análise mais profunda.
Essas técnicas são fundamentais para administradores de rede e profissionais de segurança ao investigar problemas de rede, analisar o comportamento de malware ou verificar comunicações de aplicações.

