arrow_back

Apresentando o tcpdump

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Apresentando o tcpdump

Lab 1 hora universal_currency_alt 1 crédito show_chart Introdutório
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Introdução

Neste laboratório, você conhecerá o tcpdump e alguns recursos dele. O tcpdump é a principal ferramenta de análise de rede para profissionais de segurança da informação e redes. Como especialista em suporte de TI, ter um bom domínio desse aplicativo é essencial para entender o TCP/IP. O tcpdump mostra o tráfego da rede de uma maneira que facilita a análise e a solução de problemas.

Você terá 60 minutos para fazer todas as tarefas.

Atividades deste laboratório

  • Noções básicas sobre os comandos: você aprenderá a usar o tcpdump, verá a função de algumas sinalizações dele e saberá como interpretar as respostas.
  • Captura de pacotes: você fará exercícios para salvar e ler capturas de pacotes em arquivos.

Em algumas partes deste laboratório, você precisará de mais de um terminal aberto ao mesmo tempo. Por isso, mantenha outro terminal de conexão aberto. Assim, você poderá acessar uma VM via SSH mais de uma vez.

Configuração do laboratório

Comece o laboratório

Você precisa começar o laboratório para ter acesso ao material no SO da máquina virtual. Para fazer isso, clique no botão "Começar o laboratório" na parte superior da tela.

Observação: Para este laboratório, você precisa acessar a VM Linux pelo cliente SSH local, e não pelo console do Google (o botão Open GCP Console não está disponível neste laboratório).

Começar o laboratório

Depois de clicar no botão "Começar o laboratório", você verá todos os detalhes da conexão SSH no lado esquerdo. A tela será parecida como assim:

Connection Details

Acesso à máquina virtual

Escolha uma das três opções relevantes abaixo de acordo com o sistema operacional do dispositivo.

Observação: Observação: Trabalhar com Qwiklabs pode ser semelhante ao trabalho que você executaria como Especialista de Suporte de TI; você estará interagindo com uma tecnologia cutting-edge que requer várias etapas para acessar, e talvez doses saudáveis de paciência e persistência(!). Você também usará o SSH para entrar nos laboratórios - uma habilidade essencial em suporte de TI que você poderá praticar nos laboratórios.

Opção 1: Usuários do Windows: Conexão com a VM

Nesta seção, você usará o cliente Secure Shell (SSH) PuTTY e o endereço de IP externo da VM para se conectar.

Faça o download do arquivo de chave PPK

Faça o download do arquivo de chave privada da VM no formato PPK compatível com PuTTY na página de início do laboratório no Qwiklabs. Clique em Baixar PPK.

PPK

Conecte-se à sua VM por meio de SSH e PuTTY

  1. Faça o download da ferramenta PuTTY.

  2. Na caixa Host Name (or IP address), digite username@external_ip_address.

Observação: substitua username e external_ip_address pelos valores fornecidos no laboratório.

Putty_1

  1. Na lista Category, expanda a opção SSH.

  2. Clique em Auth (sem expandir).

  3. Na caixa Private key file for authentication, procure o arquivo PPK salvo e clique nele duas vezes.

  4. Clique no botão Open.

Observação: importe o arquivo PPK para a ferramenta PuTTY usando a opção "Browse" disponível nela. Não abra esse arquivo diretamente. Ele só deve ser usado na PuTTY.

Putty_2

  1. Clique em Yes quando for solicitada a permissão para se conectar pela primeira vez a esse servidor SSH remoto. Como você está usando um par de chaves para a autenticação, não será solicitada uma senha.

Problemas comuns

Se a ferramenta PuTTY não conseguir se conectar à sua VM Linux, verifique se:

  • você digitou <username;@<external_ip_address> na PuTTY;

  • você fez o download do novo arquivo PPK específico a este laboratório no Qwiklabs;

  • você está usando o arquivo PPK salvo na PuTTY.

Opção 2: Usuários de OSX e Linux: Conexão com a VM através do SSH

Faça o download do arquivo de chave privada da VM.

Faça o download desse arquivo no formato PEM na página inicial do laboratório do Qwiklabs. Clique em Baixar PEM.

PEM

Conecte-se à sua VM pelo aplicativo "Terminal" local

Um terminal é um programa que oferece uma interface de texto para digitar comandos. Nesse caso, você usará o terminal como um cliente SSH para se conectar à VM Linux disponibilizada pelo laboratório.

  1. Abra o aplicativo "Terminal".

    • Para abrir o terminal no Linux, use o atalho Ctrl+Alt+T.

    • Para abrir o terminal no Mac (OSX), digite Command + space e pesquise por terminal.

  2. Digite os seguintes comandos:

Observação: substitua o caminho/nome do arquivo PEM salvo, o nome de usuário e o endereço IP externo.

Você provavelmente encontrará o arquivo PEM em Downloads. Se você não tiver alterado as configurações de download do seu sistema, o caminho da chave PEM será ~/Downloads/qwikLABS-XXXXX.pem.

chmod 600 ~/Downloads/qwikLABS-XXXXX.pem
ssh -i ~/Downloads/qwikLABS-XXXXX.pem username@External Ip Address

SSH

Opção 3: Usuários do Chrome SO: Conexão com a VM através do SSH

Observação: Você não pode estar no modo Incognito/Privado de navegação ao iniciar o aplicativo.

Faça o download do arquivo de chave privada da VM.

Faça o download desse arquivo no formato PEM na página inicial do laboratório do Qwiklabs. Clique em Download PEM.

PEM

Conecte-se à sua VM

  1. Adicione Secure Shell daqui ao seu navegador Chrome.

  2. Abre o aplicativo Secure Shell e clique em [New Connection].

botão de-nova-conexão

  1. Na seção username, digite o nome de usuário fornecido no painel de Detalhes da conexão do laboratório. E para seção hostname, digite o endereço IP externo da instância da VM mencionada no painel de Detalhes da conexão do laboratório.

nome de usuário-hostname-campos

  1. Na seção Identity, importe a chave PEM baixada por clicando no botão Import... ao lado do campo. Escolhe sua chave PEM e clique no botão OPEN.

Observação: Se a chave ainda não está disponível depois de importar, atualize a aplicativo, e selecione-o no menu suspenso Identity.

  1. Uma vez que sua chave foi carregada, clique em botão [ENTER] Connect abaixo.

botão de-importação

  1. Para qualquer solicita, digite yes para continuar.

  2. Agora você se conectou com sucesso à sua VM do linux.

Agora você está pronto para continuar com o laboratório!

Use o tcpdump

Agora você fará algumas tarefas com o tcpdump, desde o uso básico até tópicos um pouco mais avançados.

Uso básico

Primeiro, apresentaremos o tcpdump e executaremos a ferramenta sem qualquer opção. O tcpdump exige privilégios de root ou administrador para capturar o tráfego. Portanto, todos os comandos precisam começar com sudo. No mínimo, é preciso especificar uma interface de detecção com a sinalização -i. Talvez seja interessante verificar o nome da interface de rede primária com o comando ip link. Neste caso, usaremos a interface ens4 em todos os exemplos. No entanto, essa interface não é necessariamente a mesma que você usará na sua máquina.

Para usar o tcpdump a fim de detectar pacotes na interface, digite o comando abaixo.

Aviso: este comando encherá o terminal com um fluxo constante de texto à medida que novos pacotes forem detectados. Ele só será interrompido quando você pressionar Ctrl+C.

sudo tcpdump -i ens4

Isso enviará algumas informações básicas sobre os pacotes detectados diretamente para a resposta padrão. Ele continuará em execução até ser interrompido. Pressione Ctrl+C para parar o fluxo a qualquer momento.

Quando o tcpdump é concluído, ele apresenta um resumo da captura, com o número de pacotes capturados, filtrados ou descartados:

e62459231285086a.png

Por padrão, o tcpdump faz algumas análises de protocolo básicas. Para um estudo mais profundo, use a sinalização -v. Isso ativará a resposta detalhada. A configuração padrão do tcpdump também tenta executar buscas DNS reversas para determinar os nomes de host dos endereços IP e substituir os números de porta pelos nomes dos serviços normalmente associados a elas. Para desativar esse comportamento, use a sinalização -n. É recomendável usar essa opção para acelerar a análise e evitar gerar tráfego adicional nas buscas DNS. Para fazer um teste, digite este comando:

Aviso: este comando encherá o terminal com um fluxo constante de texto à medida que novos pacotes forem detectados. Ele só será interrompido quando você pressionar Ctrl+C.

sudo tcpdump -i ens4 -vn

Você verá uma resposta com mais detalhes sobre cada pacote:

e74637cc70c05cc3.png

Sem a sinalização de resposta detalhada, o tcpdump mostra somente:

  • o protocolo da camada 3, portas e endereços de origem e de destino;
  • detalhes do TCP, como sinalizações, números de sequência e ack, tamanho da janela e opções.

Com a sinalização de resposta detalhada, você também verá todos os detalhes do cabeçalho IP, como Time to Live, número de identificação do IP, além de opções e sinalizações de IP.

Filtros

Veremos um pouco sobre a linguagem de filtros do tcpdump, junto com a análise do protocolo. O tcpdump oferece uma linguagem poderosa para filtrar pacotes. Assim você pode capturar somente o tráfego necessário para a análise. As regras de filtro são inseridas no final do comando, depois de todas as outras sinalizações. Usaremos o filtro para capturar somente o tráfego DNS para um servidor específico. Em seguida, geraremos tráfego DNS para demonstrar a capacidade do tcpdump de interpretar consultas e respostas DNS.

Digite o comando. Ele será executado até você pressionar Ctrl+C, como o comando anterior, mas você não verá a resposta ainda.

sudo tcpdump -i ens4 -vn host 8.8.8.8 and port 53

Vejamos como é a composição desse filtro e o que exatamente ele está fazendo. Host 8.8.8.8 especifica que queremos somente os pacotes em que o endereço IP de origem ou destino corresponde ao que especificamos (neste caso, 8.8.8.8). Para ver somente o tráfego de uma direção, basta adicionar um qualificador correspondente, como dst ou src, para os endereços IP de destino e de origem, respectivamente. Se não houver um qualificador de direção, será usado o tráfego de ambas.

Port 53 significa que queremos somente os pacotes em que a porta de origem ou de destino corresponde à especificada (neste caso, DNS). Essas duas declarações de filtro são unidas com o operador lógico and. Isso significa que as duas partes da declaração de filtro precisam ser verdadeiras para que um pacote seja capturado por ele.

Conecte-se ao second terminal seguindo as instruções fornecidas na seção Accessing the virtual machine. Clique em Accessing the virtual machine no painel de navegação no lado direito e execute este comando:

dig @8.8.8.8 A example.com

A resposta será parecida com esta tela:

e5f29bb1a837ebc6.png

Isso usará o utilitário dig para consultar um servidor DNS específico (neste caso, 8.8.8.8), solicitando o A record do domínio especificado (neste caso, example.com).

No terminal original, você verá dois pacotes capturados, porque as regras de filtro descartarão o restante do tráfego:

b6a4cefaba5b53ef.png

O primeiro é a consulta DNS, que é nossa solicitação (do segundo terminal) direcionada ao servidor. Neste exemplo, o tráfego é UDP. A análise do tcpdump sobre a consulta DNS começa logo após o campo checksum do UDP. Ela começa com o número de identificação do DNS, seguido por algumas opções do UDP e o tipo de consulta (neste caso, A? para indicar que estamos solicitando um A record). Depois temos o nome de domínio em que estamos interessados (example.com).

49bfc7a0a335ca52.png

O segundo pacote é a resposta do servidor, que inclui o mesmo número de DNS da consulta original, seguido por essa própria consulta. Em seguida, é exibida a resposta à consulta, com o endereço IP associado ao nome de domínio.

8df52ed65c9b5f66.png

Agora você pode interromper a sessão do tcpdump no terminal original pressionando Ctrl+C. Deixe a janela do segundo terminal aberta, você precisará dela em breve.

Em seguida, veremos os recursos do tcpdump para gravar e ler capturas de pacotes em arquivos.

Salve pacotes capturados

Em um dos terminais, execute este comando:

sudo tcpdump -i ens4 port 80 -w http.pcap

Isso iniciará uma captura na interface ens4 que filtra somente o tráfego HTTP, especificando a porta 80. A sinalização -w indica que queremos gravar os pacotes capturados em um arquivo chamado http.pcap. Como as outras capturas, o comando será executado até que você o interrompa com Ctrl+C.

Quando ele estiver em execução, volte para o segundo terminal para gerar tráfego HTTP, que será capturado no primeiro terminal. Não interrompa a captura iniciada com o comando anterior. Se tiver feito isso, reinicie essa operação.

Na janela do segundo terminal, execute este comando para gerar tráfego:

curl example.com

Esse comando busca o HTML de example.com e o exibe na tela. A resposta será como o exemplo abaixo. Tenha em mente que só a primeira parte dela é exibida.

d261699311c8cdba.png

Depois disso, feche a janela do segundo terminal e volte ao terminal original onde a captura está em execução. Interrompa a captura com Ctrl+C. Será exibido um resumo do número de pacotes capturados:

aeacf2f21c2dea4f.png

Um arquivo binário com os pacotes que acabamos de capturar chamado http.pcap também terá sido criado. Não tente exibir o conteúdo desse arquivo na tela. Como se trata de um arquivo binário, ele será exibido como texto sem sentido.

6649a448a7faef33.png

Em algum lugar nesse arquivo, há informações sobre os pacotes criados ao extrair o HTML de example.com. É possível ler esse arquivo com o tcpdump usando este comando:

tcpdump -r http.pcap -nv

5b2f12f38410cce2.png

Não é necessário usar o sudo para ler pacotes de um arquivo. O tcpdump grava os pacotes completos no arquivo, e não somente a análise baseada em texto que é impressa na tela em operações normais. Por exemplo, em algum lugar da resposta, você verá o HTML retornado como o corpo da consulta original no outro terminal:

6d7bb5d7e908c6e.png

Clique em "Verificar meu progresso" para conferir o objetivo.

Gravar pacotes em um arquivo

Conclusão

Parabéns! Você usou o tcpdump para fazer o monitoramento básico de rede, incluindo filtrar tráfego específico. Você também aprendeu a interpretar as informações que o tcpdump exibe sobre os pacotes, além de salvar e carregar resumos dos pacotes capturados em uma sessão.

Termine o laboratório

Após concluir o laboratório, clique em Terminar o laboratório. O Qwiklabs vai removeros recursos usados e limpar a conta para você.

Você pode avaliar sua experiência neste laboratório. Basta selecionar o número de estrelas, digitar um comentário e clicar em Enviar.

O número de estrelas indica o seguinte:

  • 1 estrela = muito insatisfeito
  • 2 estrelas = insatisfeito
  • 3 estrelas = neutro
  • 4 estrelas = satisfeito
  • 5 estrelas = muito satisfeito

Feche a caixa de diálogo se não quiser enviar feedback.

Para enviar seu feedback, fazer sugestões ou correções, use a guia Suporte.