Como Usar tcpdump para Captura de Pacotes

Como Usar Tcpdump Para Captura De Pacotes Imagem Destacada

Capturar pacotes é uma maneira muito útil de analisar o funcionamento interno de uma rede. Existem uma variedade de ferramentas disponíveis que foram desenvolvidas para esse propósito. Uma delas é o tcpdump. Aqui mostramos como fazer o melhor uso dessa grande ferramenta para engenheiros de rede e testadores de penetração.

Índice

  • O que é tcpdump?
  • Instalação
  • O Básico
  • Especificando uma Interface de Rede
  • Especificando uma Porta/Intervalo de Portas
  • Especificando um Host ou Sub-rede
  • Especificando Verbosidade
  • Salvando a Captura em um Arquivo
  • Perguntas Frequentes

Leia também: Tor vs. VPN: Um é Melhor que o Outro?

O que é tcpdump?

tcpdump é uma ferramenta de análise de pacotes de rede que foi desenvolvida e lançada em 1988 por uma equipe de cientistas da computação que trabalhava no Lawrence Berkeley Laboratory e no seu Grupo de Pesquisa em Rede. É utilizado para exibir o conteúdo dos pacotes que um computador envia e recebe. A utilidade vem com uma variedade de opções para tornar a captura de pacotes mais específica e focada. Algumas dessas opções incluem diferentes protocolos de rede e interfaces de rede.

Instalação

Muitas distribuições Linux vêm com a utilidade instalada diretamente de fábrica. No entanto, se sua distribuição de escolha não tiver, a instalação é rapidamente simples.

Se você estiver usando Ubuntu ou Debian, por exemplo, pode ser instalado usando apt:

sudo apt install tcpdump

No CentOS, o mesmo é feito usando yum:

sudo yum install tcpdump

E no Arch Linux usando pacman:

sudo pacman -S tcpdump

Leia também: O que é Onion Routing e Como Você Pode Recuperar sua Privacidade

O Básico

Com o tcpdump instalado, você pode dar uma olhada no manual usando a flag -h:

tcpdump -h

Isso mostra uma lista das flags que você pode utilizar ao usar a ferramenta.

Comando de Ajuda do Tcpdump

Se você quiser ver um manual mais abrangente e detalhado, pode visualizar a página do manual usando o comando man:

man tcpdump

Página do Manual do Tcpdump

Você pode executar uma captura básica de pacotes digitando:

tcpdump

Usando o comando por conta própria e não especificando uma interface de rede, a ferramenta escolherá uma das interfaces disponíveis em seu sistema.

Se você não quiser que o tcpdump resolva os nomes de host e preferir que ele exiba apenas endereços IP, pode usar a flag -n:

tcpdump -n

Se você quiser especificar o número de pacotes que deseja capturar, use a flag -c:

tcpdump -c[número de pacotes]

Especificando uma Interface de Rede

Você pode especificar sua interface de rede escolhida usando a flag -i:

tcpdump -i[interface]

Dois dos nomes de interface de rede mais comuns na maioria dos sistemas são eth0 e wlan0:

tcpdump -i eth0  
tcpdump -i wlan0

Se você quiser capturar dados em todas as interfaces, pode usar a opção any:

tcpdump -i any

Leia também: Comutador Ethernet vs. Hub vs. Splitter: Qual é a Diferença?

Especificando uma Porta/Intervalo de Portas

Se você deseja capturar dados que utilizam um número de porta específico, use o comando:

tcpdump -i[interface] port [número da porta]

Digamos que você queira capturar tráfego na interface eth0 e para a porta 443 (HTTPS). Digite o seguinte:

tcpdump -i eth0 port 443

Além disso, o tcpdump permite que você especifique um intervalo de portas:

tcpdump -i[interface] portrange [intervalo de portas]

Especificando um Host ou Sub-rede

Haverá momentos em que você desejará limitar os pacotes capturados apenas àqueles enviados/recebidos de um host ou sub-rede específica. Felizmente, o tcpdump permite que você faça isso.

Você pode especificar um host usando o seguinte formato:

tcpdump -i[interface] host [host]

Como exemplo, capture o tráfego na interface eth0 e especifique o host como 127.0.0.1 (seu próprio endereço IP de loopback):

tcpdump -i eth0 host 127.0.0.1

Se você quiser especificar uma sub-rede de rede usando a notação CIDR, pode usar o seguinte formato:

tcpdump -i[interface] net [sub-rede]

Por exemplo:

tcpdump -i eth0 net 10.0.0.0/8

Você também pode especificar diretamente um host de origem:

tcpdump -i[interface] src [host]

E um host de destino:

tcpdump -i[interface] dst [host]

Leia também: Como Executar Nmap sem Root ou Sudo

Especificando Verbosidade

tcpdump permite que você especifique a verbosidade da captura de pacotes. Isso é muito útil quando você não quer ser sobrecarregado pela quantidade de informações durante uma captura.

Existem três opções incrementais para a verbosidade, as flags -v, -vv e -vvv:

tcpdump -i[interface] -v  
tcpdump -i[interface] -vv  
tcpdump -i[interface] -vvv

A primeira opção especifica a menor verbosidade, enquanto a terceira opção especifica a maior.

Salvando a Captura em um Arquivo

É frequentemente útil salvar os dados capturados em um arquivo, para que possam ser analisados e interpretados posteriormente.

Isso é feito usando a flag -w:

tcpdump -i[interface] -w[nome do arquivo]

Como exemplo, você pode salvar os dados capturados em um arquivo chamado “capture.txt”:

tcpdump -i eth0 -w capture.txt

Leia também: Como Abrir Portas e Configurar Encaminhamento de Portas no Seu Roteador

Perguntas Frequentes

1. Recebi um erro “Operação não permitida”. Como resolvo isso?

O seguinte é um erro comum que os usuários podem receber ao tentar usar o tcpdump:

Erro Operação Não Permitida do Tcpdump

O tcpdump lhe dá esse erro quando você não tem as permissões necessárias para realizar a captura de pacotes. Na maioria dos cenários, você pode resolver isso usando sudo. Por exemplo:

sudo tcpdump -i eth0

2. Como sei quais interfaces de rede estão disponíveis?

O tcpdump tem uma funcionalidade embutida que permite verificar as interfaces de rede disponíveis em seu sistema.

Para verificar as interfaces, use a flag -D:

tcpdump -D