Instalar, configurar e analisar tráfego de rede com o Wireshark

WiresharkBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá a instalar e configurar o Wireshark, um robusto analisador de protocolos de rede. Ele permite o exame em tempo real do tráfego de rede, o que é crucial para a resolução de problemas de rede e investigações de segurança.

Ao final deste laboratório, você será capaz de capturar e analisar pacotes de rede em seu sistema, ganhando experiência prática com esta ferramenta essencial.

Instalando o Wireshark

Nesta etapa, instalaremos o Wireshark em nosso sistema Ubuntu. O Wireshark é um poderoso analisador de protocolos de rede que permite capturar e analisar o tráfego de rede. É uma ferramenta crucial para qualquer pessoa interessada em segurança de rede e análise de tráfego. A boa notícia é que o Wireshark está disponível nos repositórios do Ubuntu, o que significa que podemos instalá-lo facilmente usando o sistema de gerenciamento de pacotes fornecido pelo Ubuntu.

Primeiro, vamos atualizar as informações do repositório de pacotes. O repositório de pacotes é como um catálogo de todo o software disponível para o seu sistema Ubuntu. Ao atualizá-lo, garantimos que temos acesso às versões mais recentes do software. Para fazer isso, precisamos abrir um terminal. Você pode abrir um terminal clicando no ícone do terminal na barra de tarefas ou pressionando Ctrl+Alt+T. Assim que o terminal estiver aberto, digite o seguinte comando:

sudo apt update

O comando sudo é usado para executar comandos com privilégios administrativos. apt é a ferramenta de gerenciamento de pacotes no Ubuntu, e update é o comando para atualizar as informações do repositório de pacotes. Ao executar este comando, você verá uma saída semelhante a esta:

Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [108 kB]
Get:4 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Get:5 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [1,234 kB]
...
Reading package lists... Done

Esta saída mostra que o sistema está buscando as informações mais recentes sobre os pacotes disponíveis nos repositórios.

Agora que nosso repositório de pacotes está atualizado, podemos instalar o Wireshark usando o gerenciador de pacotes apt. Execute o seguinte comando no terminal:

sudo apt install wireshark -y

O comando install diz ao apt para instalar o pacote especificado, que é o wireshark neste caso. A opção -y é usada para responder automaticamente "sim" a todas as solicitações durante o processo de instalação.

Durante o processo de instalação, será apresentada uma caixa de diálogo de configuração perguntando se deseja permitir que usuários não superusuários capturem pacotes. Permitir que usuários comuns capturem pacotes pode ser útil se você quiser executar o Wireshark sem sempre usar privilégios administrativos. Use as teclas de seta para selecionar "Yes" (ou pressione y) e pressione Enter para confirmar sua seleção.

Caixa de diálogo de configuração do Wireshark

Nota: Se você perdeu este aviso ou precisa alterar essa configuração posteriormente, pode reconfigurar o Wireshark usando o seguinte comando:

sudo dpkg-reconfigure wireshark-common

O comando dpkg-reconfigure é usado para reconfigurar um pacote já instalado.

Assim que a instalação for concluída, você verá uma saída indicando que a instalação foi bem-sucedida. Para verificar se o Wireshark foi instalado corretamente, podemos verificar sua versão. Execute o seguinte comando no terminal:

wireshark --version

Este comando diz ao Wireshark para exibir suas informações de versão. Você verá uma saída semelhante a esta:

Wireshark 3.6.2 (Git v3.6.2 packaged as 3.6.2-2)

Copyright 1998-2022 Gerald Combs <gerald@wireshark.org> and contributors.
License GPLv2+: GNU GPL version 2 or later <https://www.gnu.org/licenses/>
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiled (64-bit) with Qt 5.15.3, with libpcap, with GLib 2.72.0, with zlib 1.2.11,
with SMI 0.4.8, with c-ares 1.18.1, with Lua 5.2.4, with GnuTLS 3.7.3 and PKCS #11
support, with Gcrypt 1.9.4, with MIT Kerberos, with MaxMind DB resolver,
with nghttp2 1.43.0, with brotli, with LZ4, with Zstandard, with Snappy,
with libxml2 2.9.13, with libssh 0.9.6, with NGHTTP3 0.7.0, with NGTCP2 0.8.0.

Ótimo! O Wireshark agora está instalado em seu sistema.

Configurando permissões de captura do Wireshark

Nesta etapa, vamos configurar as permissões necessárias para que o Wireshark capture pacotes de rede. Como iniciante, você pode se perguntar por que precisamos fazer isso. Bem, por padrão, a captura de pacotes requer privilégios de root. Esta é uma medida de segurança, pois a captura de pacotes de rede pode potencialmente expor informações confidenciais. No entanto, executar o Wireshark como root não é uma boa ideia do ponto de vista de segurança. Se houver uma vulnerabilidade no Wireshark, um invasor poderá obter acesso total ao sistema se ele estiver sendo executado como root. Portanto, configuraremos o Wireshark para permitir que sua conta de usuário comum capture pacotes com segurança.

Primeiro, precisamos verificar se o grupo wireshark existe no sistema. O grupo wireshark é um grupo especial que usaremos para gerenciar as permissões para captura de pacotes. Para verificar se este grupo existe, usaremos o comando getent. getent é um utilitário que recupera entradas de vários bancos de dados do sistema, como o banco de dados de grupos neste caso. Execute o seguinte comando em seu terminal:

getent group wireshark

Se nenhuma saída aparecer, significa que o grupo ainda não existe e precisamos criá-lo. Usaremos o comando groupadd para criar o grupo wireshark. O comando groupadd é usado para criar um novo grupo no sistema. Execute o seguinte comando:

sudo groupadd wireshark

O comando sudo é usado para executar o comando groupadd com privilégios administrativos. Você será solicitado a inserir sua senha se não tiver usado o sudo recentemente.

Em seguida, precisamos dar as permissões corretas ao binário de captura de pacotes (dumpcap). dumpcap é o componente que realmente captura pacotes para o Wireshark. Alteraremos a propriedade do grupo do binário dumpcap para o grupo wireshark. Dessa forma, o binário dumpcap será associado ao grupo wireshark e poderemos gerenciar suas permissões por meio deste grupo. Execute o seguinte comando:

sudo chgrp wireshark /usr/bin/dumpcap

O comando chgrp é usado para alterar a propriedade do grupo de um arquivo ou diretório. Neste caso, estamos alterando a propriedade do grupo do binário /usr/bin/dumpcap para o grupo wireshark.

Após alterar a propriedade do grupo, definiremos as permissões necessárias no binário dumpcap. Usaremos o comando chmod para definir as permissões. O comando chmod é usado para alterar as permissões de um arquivo ou diretório. Execute o seguinte comando:

sudo chmod 4755 /usr/bin/dumpcap

Este comando define o bit setuid no binário. O bit setuid permite que o binário seja executado com as permissões do proprietário (root), independentemente de quem o esteja executando. A permissão 4755 pode ser dividida da seguinte forma:

  • 4 - Define o bit setuid. Isso significa que, quando o binário for executado, ele será executado com as permissões do proprietário (root).
  • 7 - O proprietário (root) tem permissões de leitura, gravação e execução. Isso permite que o proprietário leia, modifique e execute o binário.
  • 5 - O grupo tem permissões de leitura e execução. Isso permite que os membros do grupo wireshark leiam e executem o binário.
  • 5 - Outros têm permissões de leitura e execução. Isso permite que outros usuários no sistema leiam e executem o binário.

Finalmente, precisamos adicionar nosso usuário atual ao grupo wireshark. Ao adicionar nosso usuário ao grupo wireshark, nosso usuário terá as permissões necessárias para usar o binário dumpcap. Usaremos o comando gpasswd para adicionar nosso usuário ao grupo. O comando gpasswd é usado para administrar os arquivos /etc/group e /etc/gshadow. Execute o seguinte comando:

sudo gpasswd -a $USER wireshark

A variável $USER é uma variável de shell que contém o nome de usuário do usuário atual. Você deve ver uma saída indicando que o usuário foi adicionado ao grupo:

Adding user labex to group wireshark

Para que essas alterações entrem em vigor, você precisa sair e entrar novamente ou reiniciar o sistema. No entanto, para este laboratório, podemos usar uma abordagem mais simples iniciando um novo shell com a associação de grupo atualizada. Usaremos o comando newgrp para iniciar um novo shell com o grupo wireshark ativo. O comando newgrp é usado para alterar o ID do grupo atual. Execute o seguinte comando:

newgrp wireshark

Este comando inicia um novo shell com o grupo wireshark ativo, sem exigir um logout completo.

Vamos verificar se nosso usuário agora faz parte do grupo wireshark. Usaremos o comando groups para listar todos os grupos aos quais nosso usuário pertence. Execute o seguinte comando:

groups

Você deve ver wireshark listado entre os grupos:

wireshark sudo ssl-cert labex public

Agora que nosso usuário faz parte do grupo wireshark e o binário dumpcap tem as permissões corretas, o Wireshark deve ser capaz de capturar pacotes sem exigir privilégios de root.

Iniciando o Wireshark

Nesta etapa, vamos iniciar o Wireshark e conhecer sua interface inicial. O Wireshark é uma ferramenta poderosa para análise de tráfego de rede e vem com uma interface gráfica de usuário (GUI). Esta GUI é o que usaremos para interagir com o software e analisar o tráfego de rede.

Primeiro, você precisa ter certeza de que está no ambiente de desktop da VM do LabEx. Quando estiver no lugar certo, você verá uma área de trabalho com ícones e uma barra de tarefas na parte superior ou inferior da tela. Este é o ponto de partida onde começaremos nosso trabalho com o Wireshark.

Existem duas maneiras de iniciar o Wireshark. Você pode escolher o método que for mais conveniente para você:

  1. Clique no menu Aplicativos, que geralmente está localizado no canto superior esquerdo da tela. Em seguida, navegue pelo menu para encontrar as categorias "Internet" ou "Rede". Quando estiver na categoria apropriada, procure e selecione "Wireshark". Esta é uma maneira direta de iniciar o programa usando a interface gráfica.

    Wireshark no menu Aplicativos

  2. Alternativamente, você pode usar o terminal. Abra uma janela de terminal e digite o seguinte comando:

    wireshark
    

    Wireshark no Terminal

Este comando diz ao sistema para iniciar o aplicativo Wireshark. Depois de executar este comando, o Wireshark será iniciado e sua janela principal aparecerá na tela. A primeira coisa que você verá é a tela "Bem-vindo ao Wireshark". Esta tela mostra uma lista de interfaces de rede disponíveis que você pode usar para capturar tráfego de rede. Ela também exibe alguns arquivos de captura abertos recentemente, se você já usou o Wireshark antes e salvou alguns arquivos.

Tela inicial do Wireshark

A tela de boas-vindas oferece várias opções importantes:

  1. Você pode selecionar uma interface de rede na lista. Assim que escolher uma interface, o Wireshark começará a capturar pacotes dessa rede imediatamente. É assim que você começará a coletar dados sobre o tráfego de rede.
  2. Se você tiver um arquivo de captura salvo anteriormente, pode abri-lo nesta tela. Isso é útil se você quiser analisar dados que coletou no passado.
  3. Existem também várias ferramentas e configurações que você pode acessar nesta tela. Essas ferramentas e configurações ajudarão você a personalizar sua experiência com o Wireshark e realizar análises mais avançadas.

Reserve um tempo para explorar esta tela inicial. Você notará que cada interface de rede tem algumas estatísticas sobre os pacotes que foram detectados. Essas estatísticas dão uma ideia rápida de quais interfaces estão passando tráfego de rede ativamente.

Agora, vamos dar uma olhada nos elementos principais da interface do Wireshark:

  • Barra de menus: Esta barra na parte superior da janela oferece acesso a todos os recursos que o Wireshark oferece. Você pode usá-la para realizar várias tarefas, como salvar arquivos de captura, alterar configurações e acessar a ajuda.
  • Barra de ferramentas: A barra de ferramentas fornece acesso rápido a funções usadas com frequência. Por exemplo, você pode iniciar e parar a captura de pacotes, aplicar filtros e salvar arquivos com apenas um clique.
  • Lista de interfaces: Esta lista mostra todas as interfaces de rede disponíveis em seu sistema. Você usará esta lista para selecionar a interface da qual deseja capturar pacotes.
  • Barra de filtro de exibição: Esta barra permite filtrar os pacotes que são exibidos na janela principal. Você pode usar vários critérios, como endereços IP, protocolos ou números de porta, para restringir os pacotes nos quais está interessado. Exploraremos como usar este filtro na próxima etapa.

Por enquanto, deixe o Wireshark em execução. Na próxima etapa, nós o usaremos para capturar e analisar o tráfego de rede.

Capturando e analisando tráfego de rede

Nesta etapa, vamos capturar algum tráfego de rede e explorar a interface do Wireshark. Entender como analisar pacotes de rede é crucial para qualquer pessoa interessada em segurança de rede ou resolução de problemas. Ao final desta seção, você saberá como iniciar uma captura, entender a interface do Wireshark, gerar tráfego, filtrar pacotes, inspecionar detalhes de pacotes e parar a captura.

Iniciando uma captura

Ao abrir o Wireshark, você verá uma tela de boas-vindas. Nesta tela, seu objetivo é encontrar a interface de rede da qual deseja capturar o tráfego. Na maioria dos casos, usaremos a interface eth0. Se eth0 não estiver disponível, você pode escolher outra interface ativa (por exemplo, eth1 ou wlan0).

Para começar a capturar pacotes, basta clicar duas vezes na interface eth0. Esta ação iniciará imediatamente a captura de pacotes nessa interface e o levará à janela principal de captura do Wireshark.

Alternativamente, você pode primeiro selecionar a interface e depois clicar no botão "Iniciar captura de pacotes", que é representado por um ícone de barbatana de tubarão azul na barra de ferramentas. Iniciar a captura é o primeiro passo para analisar o tráfego de rede, pois permite que o Wireshark colete dados que fluem pela interface selecionada.

Entendendo a interface do Wireshark

Assim que a captura de pacotes começar, você verá a interface principal do Wireshark. Esta interface é dividida em três painéis principais, cada um servindo a um propósito diferente.

Interface principal do Wireshark

  1. Painel de lista de pacotes (superior): Este painel exibe uma lista de todos os pacotes que o Wireshark capturou. Cada entrada na lista fornece informações básicas sobre um pacote, incluindo:

    • Número do pacote: Um identificador exclusivo para cada pacote na captura.
    • Tempo: O momento em que o pacote foi capturado.
    • Endereço IP de origem: O endereço IP do dispositivo que enviou o pacote.
    • Endereço IP de destino: O endereço IP do dispositivo ao qual o pacote se destina.
    • Protocolo: O protocolo de rede usado pelo pacote, como TCP, UDP ou ICMP.
    • Comprimento: O tamanho do pacote em bytes.
    • Informações: Uma breve descrição do objetivo do pacote, que pode ajudá-lo a entender rapidamente o que o pacote está fazendo.
  2. Painel de detalhes do pacote (meio): Quando você seleciona um pacote no painel superior, esta área mostra informações detalhadas sobre o pacote selecionado em um formato hierárquico. Você pode expandir cada seção clicando na seta ao lado dela para ver detalhes mais aprofundados sobre a estrutura e o conteúdo do pacote.

  3. Painel de bytes do pacote (inferior): Este painel mostra os dados brutos do pacote em formatos hexadecimal e ASCII. À medida que você seleciona diferentes campos no painel de detalhes do pacote, os bytes correspondentes são destacados neste painel. Isso permite que você veja os dados reais que estão sendo transmitidos no pacote.

Gerando algum tráfego de rede

Para ter algo significativo para analisar, precisamos gerar algum tráfego de rede. Enquanto o Wireshark estiver em execução, abra uma nova janela de terminal. No terminal, usaremos o comando ping para enviar alguns pacotes de solicitação de eco ICMP para os servidores do Google.

Execute o seguinte comando:

ping -c 5 google.com

Nota: Usuários gratuitos não podem se conectar à internet. Faça upgrade para pro para aproveitar a experiência completa.

A opção -c 5 diz ao comando ping para enviar 5 pacotes de solicitação de eco ICMP. Após executar este comando, você verá uma saída semelhante a:

PING google.com (142.250.180.238) 56(84) bytes of data.
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=1 ttl=118 time=15.6 ms
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=2 ttl=118 time=16.5 ms
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=3 ttl=118 time=15.9 ms
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=4 ttl=118 time=16.2 ms
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=5 ttl=118 time=15.7 ms

--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 15.629/15.986/16.520/0.324 ms

Agora, volte ao Wireshark. Você deve ver os pacotes ICMP que foram capturados durante a execução do comando ping. Esses pacotes são o que usaremos para análise posterior.

Parando a captura

Quando terminar de analisar os pacotes capturados, você precisará parar a captura. Para fazer isso, clique no botão "Parar captura de pacotes", que é representado por um quadrado vermelho na barra de ferramentas. Alternativamente, você pode ir ao menu "Captura" e selecionar "Parar".

Você agora capturou e analisou com sucesso algum tráfego de rede básico com o Wireshark! Esta é uma habilidade fundamental na análise e segurança de rede, e você pode desenvolver esse conhecimento para analisar cenários de rede mais complexos.

Filtrando pacotes

O Wireshark captura todo o tráfego na interface selecionada, o que pode rapidamente se tornar uma grande quantidade de dados e difícil de gerenciar. Os filtros são uma ferramenta poderosa no Wireshark que permite focar em tipos específicos de tráfego.

Barra de filtro do Wireshark

Para filtrar os pacotes de ping ICMP que acabamos de gerar, olhe para a parte superior da janela do Wireshark. Há uma barra de filtro onde você pode digitar uma expressão de filtro. Digite o seguinte na barra de filtro:

icmp

Após digitar a expressão de filtro, pressione Enter ou clique no botão Aplicar (um ícone de seta para a direita) ao lado do campo de filtro. A lista de pacotes será atualizada para mostrar apenas pacotes ICMP. Você deve ver pares de mensagens "Echo (ping) request" e "Echo (ping) reply" correspondentes ao comando ping que executamos anteriormente. A filtragem ajuda você a isolar o tráfego no qual está interessado e torna o processo de análise muito mais gerenciável.

Inspecionando detalhes do pacote

Agora que filtramos os pacotes ICMP, vamos dar uma olhada mais de perto em um dos pacotes de solicitação ICMP. Clique em um dos pacotes de solicitação ICMP na lista de pacotes. No painel de detalhes do pacote, você pode expandir as diferentes camadas de protocolo clicando na seta ao lado de cada seção.

Detalhes do pacote Wireshark

  1. Frame: Esta seção fornece informações sobre o quadro ou pacote como um todo, como o comprimento do quadro e a sequência de verificação do quadro.
  2. Ethernet: Contém informações da Camada 2 (Enlace de Dados), como os endereços MAC de origem e destino.
  3. Internet Protocol Version 4: Estas são informações da Camada 3 (Rede). Expanda esta seção para ver detalhes como:
    • Endereço IP de origem: O endereço IP do dispositivo que enviou o pacote.
    • Endereço IP de destino: O endereço IP do dispositivo para o qual o pacote está indo.
    • Time to Live (TTL): Um valor que limita a vida útil do pacote na rede.
    • Protocolo: O protocolo usado dentro do pacote IP, como o ICMP em nosso caso.
  4. Internet Control Message Protocol: Esta seção mostra as informações do protocolo ICMP. Expanda-a para ver detalhes específicos da mensagem ICMP, como:
    • Tipo (8 para solicitação, 0 para resposta): Indica se o pacote é uma solicitação ou uma resposta.
    • Código: Fornece informações adicionais sobre a mensagem ICMP.
    • Checksum: Usado para verificar a integridade da mensagem ICMP.
    • Identificador: Ajuda a corresponder solicitações e respostas.
    • Número de sequência: Um número sequencial para os pacotes ICMP.

Resumo

Neste laboratório, você aprendeu a instalar e configurar o Wireshark, uma poderosa ferramenta de análise de rede. Você configurou permissões para usuários não root capturarem pacotes com segurança, iniciou o aplicativo e capturou tráfego de rede real. Você também explorou a interface, aplicou filtros para tipos de tráfego específicos e examinou detalhes de pacotes em diferentes camadas de protocolo.

Essas habilidades formam uma base sólida para análise e resolução de problemas de rede. Com o Wireshark, agora você pode inspecionar comunicações de rede, diagnosticar problemas de conectividade, analisar o comportamento de protocolos e identificar preocupações de segurança em seu tráfego de rede.