Análise de Pacotes com tcpdump

O assunto de análise de pacotes poderia preencher um curso inteiro, e há muitos livros escritos apenas sobre isso. No entanto, hoje vamos apenas aprender os fundamentos. Existem dois analisadores de pacotes extremamente populares: o Wireshark e o tcpdump. Essas ferramentas escaneiam suas interfaces de rede, capturam a atividade de pacotes, analisam os pacotes e mostram o resultado para que possamos vê-lo. Eles permitem que entremos no detallhe da análise de rede e entremos nos assuntos de baixo nível.

Neste tutorial, vamos usar o tcpdump, pois tem uma interface mais simples. No entanto, se você decidir adicionar a análise de pacotes ao seu conjunto de ferramentas, eu recomendaria que você investigue o Wireshark.

Instalar o Tcpdump

$ sudo apt install tcpdump

Capturar dados de pacotes em uma interface

$ sudo tcpdump -i wlp2s0

Aqui, você pode ver que a saída é muito rica em informações. Você pode notar que há muita atividade de rede ocorrendo no fundo.

Entender a saída

Aqui, você pode ver a saída do tcpdump:

$ sudo tcpdump -i wlp2s0
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on wlp2s0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
16:24:30.913206 IP relay-75a37270.net.anydesk.com.https > angus.55880: Flags [.], ack 2435903682, win 501, options [nop,nop,TS val 1573957440 ecr 1295693806], length 0
16:24:30.913238 IP angus.55880 > relay-75a37270.net.anydesk.com.https: Flags [.], ack 1, win 481, options [nop,nop,TS val 1295704133 ecr 1573947946], length 0

Temos muitas informações, podemos aprender muito sobre o funcionamento da rede estudando a saída do tcpdump:

  • 16:24:30.913206: Horário do pacote capturado.
  • IP: Protocolo de rede — pacote IP.
  • relay-75a37270.net.anydesk.com.https: Nome do host de origem e porta (porta HTTPS = 443).
  • : Indica direção do tráfego (origem → destino).

  • angus.55880: Host de destino com porta aleatória (55880) — uma porta efêmera usada pelo cliente.
  • Flags [.]: Flag TCP ACK (confirmação).
  • ack 2435903682: Número de reconhecimento (ACK), indicando o próximo byte esperado.
  • win 501: Tamanho da janela TCP (quantos bytes o receptor está disposto a receber).
  • options [nop,nop,TS val 1573957440 ecr 1295693806]: Opções TCP, aqui incluindo o timestamp (TS) e o valor ecoado (ecr), usados para calcular RTT.
  • length 0: O pacote não contém payload (somente cabeçalho TCP).

Escrever a saída do tcpdump para um arquivo

$ sudo tcpdump -w /some/file

Algumas últimas palavras: apenas raspamos a superfície do assunto de análise de pacotes. Há muito mais que você pode explorar e não tocamos sequer nos assuntos mais profundos com Hex e ASCII output.