Neste laboratório, você aprenderá como instalar e configurar o Wireshark, um analisador de protocolo de rede robusto. Ele permite a análise em tempo real do tráfego de rede, o que é crucial para a soluçã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.
Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível intermediário com uma taxa de conclusão de 62%. Recebeu uma taxa de avaliações positivas de 99% dos estudantes.
Instalando o Wireshark
Nesta etapa, instalaremos o Wireshark em nosso sistema Ubuntu. O Wireshark é um poderoso analisador de protocolo 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. Depois 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ê deve ver uma saída semelhante a esta:
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 é wireshark neste caso. A opção -y é usada para responder automaticamente "sim" a todos os prompts durante o processo de instalação.
Durante o processo de instalação, você será apresentado com um diálogo de configuração perguntando se deseja permitir que não superusuários capturem pacotes. Permitir que não superusuários capturem pacotes pode ser útil se você quiser executar o Wireshark sem sempre usar privilégios administrativos. Use as setas para selecionar "Yes" (ou pressione y) e pressione Enter para confirmar sua seleção.
Nota: Se você perdeu este prompt ou precisa alterar esta configuração mais tarde, você 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ê deverá 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ê deve 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 porque 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 da segurança. Se houver uma vulnerabilidade no Wireshark, um invasor pode obter acesso total ao sistema se ele estiver sendo executado como root. Portanto, configuraremos o Wireshark para permitir que sua conta de usuário regular 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 a 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 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. Vamos alterar a propriedade do grupo do binário dumpcap para o grupo wireshark. Desta forma, o binário dumpcap será associado ao grupo wireshark, e podemos 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.
Depois de 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 está executando. A permissão 4755 pode ser dividida da seguinte forma:
4 - Define o bit setuid. Isso significa que, quando o binário é 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 fazer login 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 ao 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 do usuário (GUI). É esta GUI 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ê:
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". Depois de estar na categoria apropriada, procure e selecione "Wireshark". Esta é uma maneira direta de iniciar o programa usando a interface gráfica.
Alternativamente, você pode usar o terminal. Abra uma janela do terminal e, em seguida, digite o seguinte comando:
wireshark
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 das interfaces de rede disponíveis que você pode usar para capturar o tráfego de rede. Ele também exibe alguns arquivos de captura abertos recentemente, se você já usou o Wireshark antes e tem alguns arquivos salvos.
A tela de boas-vindas oferece várias opções importantes:
Você pode selecionar uma interface de rede na lista. Depois de 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.
Se você tiver um arquivo de captura salvo anteriormente, poderá abri-lo nesta tela. Isso é útil se você deseja analisar dados que coletou no passado.
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 fornecem uma ideia rápida de quais interfaces estão ativamente transmitindo tráfego de rede.
Agora, vamos analisar os principais elementos da interface do Wireshark:
Barra de menu: Esta barra na parte superior da janela dá 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 às funções mais usadas. 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 que você filtre 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 de seu interesse. Exploraremos como usar este filtro na próxima etapa.
Por enquanto, deixe o Wireshark em execução. Na próxima etapa, usaremos para capturar e analisar o tráfego de rede.
Captura e Análise de 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 soluçã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 você 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. Essa 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, em seguida, 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 na análise do 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ê será apresentado à interface principal do Wireshark. Essa interface é dividida em três painéis principais, cada um com uma finalidade diferente.
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 tempo 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 para o 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 da finalidade do pacote, que pode ajudá-lo a entender rapidamente o que o pacote está fazendo.
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.
Painel de Bytes do Pacote (Inferior): Este painel mostra os dados brutos do pacote nos formatos hexadecimal e ASCII. Ao selecionar diferentes campos no painel Detalhes do Pacote, os bytes correspondentes são realçados 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 do 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
Observação: Usuários gratuitos não podem se conectar à internet. Atualize para um pro para aproveitar a experiência completa.
A opção -c 5 informa ao comando ping para enviar 5 pacotes de solicitação de eco ICMP. Após executar este comando, você deve 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 para o 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 "Capturar" e selecionar "Parar".
Agora você capturou e analisou com sucesso algum tráfego de rede básico com o Wireshark! Esta é uma habilidade fundamental em análise e segurança de rede, e você pode construir sobre 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 que você se concentre em tipos específicos de tráfego.
Para filtrar os pacotes ICMP ping 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
Depois de 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 os pacotes ICMP. Você deve ver pares de mensagens "Solicitação de eco (ping)" e "Resposta de eco (ping)" correspondentes ao comando ping que executamos anteriormente. A filtragem ajuda você a isolar o tráfego de seu interesse 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 Detalhes do Pacote, você pode expandir as diferentes camadas de protocolo clicando na seta ao lado de cada seção.
Frame (Quadro): 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.
Ethernet: Contém informações da Camada 2 (Data Link), como os endereços MAC de origem e destino.
Internet Protocol Version 4: Esta é a informação 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 o tempo de vida do pacote na rede.
Protocolo: O protocolo usado dentro do pacote IP, como ICMP em nosso caso.
Internet Control Message Protocol: Esta seção mostra as informações do protocolo ICMP. Expanda-o 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 (Soma de verificação): 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 como instalar e configurar o Wireshark, uma poderosa ferramenta de análise de rede. Você configurou permissões para que usuários não root capturassem pacotes com segurança, iniciou o aplicativo e capturou tráfego de rede real. Você também explorou a interface, aplicou filtros para tipos específicos de tráfego e examinou os detalhes dos pacotes em diferentes camadas de protocolo.
Essas habilidades formam uma base sólida para análise e solução de problemas de rede. Com o Wireshark, você agora pode inspecionar as comunicações de rede, diagnosticar problemas de conectividade, analisar o comportamento do protocolo e identificar preocupações de segurança em seu tráfego de rede.