Introdução
Neste laboratório, você aprenderá a instalar e configurar o Wireshark, um poderoso analisador de protocolos de rede. Ele permite examinar o tráfego de rede em tempo real, algo essencial para solucionar problemas de rede e realizar investigações de segurança.
Ao final deste laboratório, você será capaz de capturar e analisar pacotes de rede no seu sistema, adquirindo experiência prática com essa ferramenta indispensável.
Instalando o Wireshark
Nesta etapa, instalaremos o Wireshark no nosso sistema Ubuntu. O Wireshark é um poderoso analisador de protocolos de rede que permite capturar e analisar o tráfego de rede. Ele é uma ferramenta essencial para quem se interessa por segurança de redes 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 funciona como um catálogo de todos os softwares disponíveis para o seu sistema Ubuntu. Ao atualizá-lo, garantimos acesso às versões mais recentes dos softwares. Para isso, precisamos abrir um terminal. Você pode abrir um terminal clicando no ícone correspondente na barra de tarefas ou pressionando Ctrl+Alt+T. Depois de abrir o terminal, execute o seguinte comando:
sudo apt update
O comando sudo é usado para executar comandos com privilégios administrativos. O apt é a ferramenta de gerenciamento de pacotes do Ubuntu, e update é o comando que atualiza as informações do repositório. Ao executar esse comando, você deverá 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
Essa saída indica que o sistema está obtendo dos repositórios as informações mais recentes sobre os pacotes disponíveis.
Agora que o 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 instrui o apt a instalar o pacote especificado, que neste caso é wireshark. A opção -y responde automaticamente “sim” a todas as confirmações exibidas durante a instalação.
Durante o processo de instalação, será exibida uma caixa de diálogo perguntando se você deseja permitir que usuários que não são superusuários capturem pacotes. Essa opção pode ser útil se você quiser executar o Wireshark sem precisar usar privilégios administrativos sempre. Use as teclas de seta para selecionar “Yes” (ou pressione y) e pressione Enter para confirmar.

Observação: Se você não viu essa solicitação ou quiser alterar essa configuração posteriormente, poderá reconfigurar o Wireshark usando o comando a seguir:
sudo dpkg-reconfigure wireshark-commonO comando
dpkg-reconfigureé usado para reconfigurar um pacote que já está instalado.
Quando a instalação for concluída, você deverá ver uma mensagem indicando que ela foi bem-sucedida. Para verificar se o Wireshark foi instalado corretamente, podemos consultar a versão instalada. Execute o seguinte comando no terminal:
wireshark --version
Esse comando instrui o Wireshark a exibir as informações da versão. Você deverá 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.
Muito bem! O Wireshark agora está instalado no seu sistema.
Configurando as permissões de captura do Wireshark
Nesta etapa, configuraremos as permissões necessárias para que o Wireshark capture pacotes de rede. Como iniciante, você pode se perguntar por que isso é necessário. Por padrão, a captura de pacotes exige privilégios de root. Essa é uma medida de segurança, pois os pacotes capturados podem conter informações confidenciais. No entanto, executar o Wireshark como root não é uma boa prática de segurança. Se houver uma vulnerabilidade no Wireshark, um invasor poderá obter acesso total ao sistema enquanto o programa estiver sendo executado como root. Por isso, configuraremos o Wireshark para permitir que sua conta de usuário comum capture pacotes de forma segura.
Primeiro, precisamos verificar se o grupo wireshark existe no sistema. Esse é um grupo especial que usaremos para gerenciar as permissões de captura de pacotes. Para verificar se ele existe, usaremos o comando getent. O getent é um utilitário que consulta entradas em vários bancos de dados do sistema, como o banco de dados de grupos neste caso. Execute o seguinte comando no terminal:
getent group wireshark
Se nenhuma saída for exibida, significa que o grupo ainda não existe e precisamos criá-lo. Usaremos o comando groupadd para criar o grupo wireshark. O comando groupadd cria um novo grupo no sistema. Execute:
sudo groupadd wireshark
O comando sudo executa o comando groupadd com privilégios administrativos. Se você não tiver usado o sudo recentemente, será solicitado que informe sua senha.
Em seguida, precisamos atribuir as permissões corretas ao binário de captura de pacotes (dumpcap). O dumpcap é o componente que efetivamente captura os pacotes para o Wireshark. Alteraremos o grupo proprietário do binário dumpcap para wireshark. Dessa forma, o binário ficará associado ao grupo wireshark, e poderemos gerenciar suas permissões por meio desse grupo. Execute:
sudo chgrp wireshark /usr/bin/dumpcap
O comando chgrp altera o grupo proprietário de um arquivo ou diretório. Neste caso, estamos alterando o grupo proprietário do binário /usr/bin/dumpcap para wireshark.
Depois de alterar o grupo proprietário, restrinja a execução ao proprietário e ao grupo wireshark. Execute:
sudo chmod 750 /usr/bin/dumpcap
A permissão 750 concede acesso total ao proprietário root, leitura e execução ao grupo wireshark e nenhum acesso aos demais usuários. Ela também garante que o bit setuid não esteja habilitado.
Em seguida, conceda ao dumpcap apenas os recursos do Linux necessários para capturar pacotes:
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
Esses recursos permitem que o dumpcap abra soquetes de pacotes brutos e administre interfaces de captura sem executar todo o programa como root. Combinados com as permissões do arquivo, eles garantem que somente o root e os membros do grupo wireshark possam executá-lo.
Por fim, precisamos adicionar o usuário atual ao grupo wireshark. Ao fazer isso, o usuário terá as permissões necessárias para usar o binário dumpcap. Usaremos o comando gpasswd para adicionar o usuário ao grupo. O comando gpasswd serve para administrar os arquivos /etc/group e /etc/gshadow. Execute:
sudo gpasswd -a $USER wireshark
A variável $USER é uma variável do shell que contém o nome do usuário atual. Você deverá 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, é necessário sair da sessão e entrar novamente, ou reiniciar o sistema. No entanto, neste laboratório, podemos usar uma abordagem mais simples: iniciar 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 altera o ID do grupo atual. Execute:
newgrp wireshark
Esse comando inicia um novo shell com o grupo wireshark ativo, sem exigir que você encerre completamente a sessão.
Vamos verificar se o usuário agora faz parte do grupo wireshark. Usaremos o comando groups para listar todos os grupos aos quais o usuário pertence. Execute:
groups
Você deverá ver wireshark entre os grupos:
wireshark sudo ssl-cert labex public
Por fim, confirme as permissões restritas e os recursos de captura:
stat -c '%A %U %G' /usr/bin/dumpcap
-rwxr-x--- root wireshark
getcap /usr/bin/dumpcap
/usr/bin/dumpcap cap_net_admin,cap_net_raw=eip
Agora que o usuário faz parte do grupo wireshark e o dumpcap possui apenas os recursos necessários, o Wireshark pode capturar pacotes sem ser executado como root e sem conceder acesso à captura a todos os usuários locais.
Iniciando o Wireshark
Nesta etapa, iniciaremos o Wireshark e conheceremos sua interface inicial. O Wireshark é uma ferramenta poderosa para analisar o tráfego de rede e oferece uma interface gráfica de usuário (GUI). É por meio dessa interface que interagiremos com o software e analisaremos o tráfego de rede.
Primeiro, certifique-se de estar no ambiente de desktop da VM do LabEx. Quando estiver no local correto, você verá uma área de trabalho com ícones e uma barra de tarefas na parte superior ou inferior da tela. Esse é o ponto de partida para o nosso trabalho com o Wireshark.
Há duas maneiras de iniciar o Wireshark. Escolha a mais conveniente para você:
Clique no menu Applications, normalmente localizado no canto superior esquerdo da tela. Em seguida, navegue pelos menus até encontrar as categorias “Internet” ou “Network”. Na categoria apropriada, localize e selecione “Wireshark”. Essa é uma maneira simples de iniciar o programa pela interface gráfica.

Como alternativa, você pode usar o terminal. Abra uma janela de terminal e execute o seguinte comando:
wireshark
Esse comando instrui o sistema a iniciar o aplicativo Wireshark. Depois de executá-lo, o Wireshark será iniciado e sua janela principal aparecerá na tela. A primeira coisa que você verá será a tela “Welcome to Wireshark”. Nela, há uma lista das interfaces de rede disponíveis que podem ser usadas para capturar tráfego. A tela também exibe alguns arquivos de captura abertos recentemente, caso você já tenha usado o Wireshark e salvado arquivos.

A tela de boas-vindas oferece várias opções importantes:
- Você pode selecionar uma interface de rede na lista. Assim que escolher uma interface, o Wireshark começará imediatamente a capturar pacotes dessa rede. É assim que você inicia a coleta de dados sobre o tráfego de rede.
- Se você tiver um arquivo de captura salvo anteriormente, poderá abri-lo nessa tela. Isso é útil para analisar dados coletados anteriormente.
- Também há várias ferramentas e configurações acessíveis nessa tela. Elas permitem personalizar o uso do Wireshark e realizar análises mais avançadas.
Reserve um momento para explorar essa tela inicial. Você perceberá que cada interface de rede apresenta algumas estatísticas sobre os pacotes detectados. Essas estatísticas fornecem uma visão rápida de quais interfaces estão transmitindo tráfego de rede ativamente.
Agora, vamos examinar os principais elementos da interface do Wireshark:
- Barra de menus: localizada na parte superior da janela, oferece acesso a todos os recursos do Wireshark. Você pode usá-la para realizar tarefas como salvar arquivos de captura, alterar configurações e acessar a ajuda.
- Barra de ferramentas: fornece acesso rápido às funções mais utilizadas. Por exemplo, você pode iniciar e interromper a captura de pacotes, aplicar filtros e salvar arquivos com apenas um clique.
- Lista de interfaces: exibe todas as interfaces de rede disponíveis no sistema. Você usará essa lista para selecionar a interface da qual deseja capturar pacotes.
- Barra de filtro de exibição: permite filtrar os pacotes exibidos na janela principal. Você pode usar vários critérios, como endereços IP, protocolos ou números de porta, para restringir a lista aos pacotes de interesse. Exploraremos esse filtro na próxima etapa.
Por enquanto, deixe o Wireshark em execução. Na próxima etapa, vamos usá-lo para capturar e analisar o tráfego de rede.
Capturando e analisando o tráfego de rede
Nesta etapa, capturaremos tráfego de rede e exploraremos a interface do Wireshark. Saber analisar pacotes de rede é essencial para quem trabalha com segurança de redes ou solução de problemas. Ao final desta seção, você saberá iniciar uma captura, compreender a interface do Wireshark, gerar tráfego, filtrar pacotes, inspecionar detalhes e interromper a captura.
Iniciando uma captura
Ao abrir o Wireshark, você verá uma tela de boas-vindas. Nessa tela, o objetivo é localizar a interface de rede da qual deseja capturar tráfego. Na maioria dos casos, usaremos a interface eth0. Se eth0 não estiver disponível, escolha outra interface ativa, como eth1 ou wlan0.
Para iniciar a captura de pacotes, basta clicar duas vezes na interface eth0. Essa ação iniciará imediatamente a captura nessa interface e abrirá a janela principal de captura do Wireshark.
Como alternativa, você pode selecionar primeiro a interface e depois clicar no botão “Start capturing packets”, representado por um ícone azul de barbatana de tubarão na barra de ferramentas. Iniciar a captura é o primeiro passo para analisar o tráfego de rede, pois permite que o Wireshark colete os dados que passam pela interface selecionada.
Entendendo a interface do Wireshark
Assim que a captura começar, a interface principal do Wireshark será exibida. Ela é dividida em três painéis principais, cada um com uma finalidade diferente.

Painel de lista de pacotes (superior): exibe uma lista de todos os pacotes capturados pelo Wireshark. Cada entrada fornece informações básicas sobre um pacote, incluindo:
- Número do pacote: identificador exclusivo de cada pacote da captura.
- Hora: momento em que o pacote foi capturado.
- Endereço IP de origem: endereço IP do dispositivo que enviou o pacote.
- Endereço IP de destino: endereço IP do dispositivo ao qual o pacote se destina.
- Protocolo: protocolo de rede usado pelo pacote, como TCP, UDP ou ICMP.
- Comprimento: tamanho do pacote em bytes.
- Informações: breve descrição da finalidade do pacote, que ajuda a entender rapidamente o que ele está fazendo.
Painel de detalhes do pacote (central): quando você seleciona um pacote no painel superior, esta área exibe informações detalhadas sobre ele em formato hierárquico. Você pode expandir cada seção clicando na seta ao lado dela para consultar detalhes mais aprofundados sobre a estrutura e o conteúdo do pacote.
Painel de bytes do pacote (inferior): exibe os dados brutos do pacote nos formatos hexadecimal e ASCII. Ao selecionar campos diferentes no painel de detalhes, os bytes correspondentes são destacados neste painel. Isso permite visualizar os dados efetivamente transmitidos no pacote.
Gerando tráfego de rede
Para ter dados relevantes para analisar, precisamos gerar algum tráfego de rede. Enquanto o Wireshark estiver em execução, abra uma nova janela de terminal. Nela, usaremos o comando ping para enviar pacotes de solicitação de eco ICMP aos servidores do Google.
Execute o seguinte comando:
ping -c 5 google.com
Observação: Usuários gratuitos não podem se conectar à Internet. Faça upgrade para o plano Pro para aproveitar a experiência completa.
A opção -c 5 instrui o comando ping a enviar 5 pacotes de solicitação de eco ICMP. Depois de executar o comando, você deverá ver uma saída semelhante a esta:
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ê deverá ver os pacotes ICMP capturados durante a execução do comando ping. Usaremos esses pacotes na análise a seguir.
Interrompendo a captura
Quando terminar de analisar os pacotes capturados, será necessário interromper a captura. Para isso, clique no botão “Stop capturing packets”, representado por um quadrado vermelho na barra de ferramentas. Como alternativa, abra o menu “Capture” e selecione “Stop”.
Agora você capturou e analisou com sucesso um tráfego de rede básico usando o Wireshark! Essa é uma habilidade fundamental em análise e segurança de redes, e você poderá aplicar esse conhecimento a cenários de rede mais complexos.
Filtrando pacotes
O Wireshark captura todo o tráfego da interface selecionada, o que pode resultar rapidamente em uma grande quantidade de dados difíceis de gerenciar. Os filtros são um recurso poderoso que permite concentrar a análise em tipos específicos de tráfego.

Para filtrar os pacotes ICMP que acabamos de gerar, observe a parte superior da janela do Wireshark. Há uma barra na qual você pode digitar uma expressão de filtro. Digite o seguinte:
icmp
Depois de inserir a expressão, pressione Enter ou clique no botão Apply, representado por um ícone de seta para a direita ao lado do campo de filtro. A lista de pacotes será atualizada e exibirá apenas pacotes ICMP. Você deverá ver pares de mensagens “Echo (ping) request” e “Echo (ping) reply” correspondentes ao comando ping executado anteriormente. Os filtros ajudam a isolar o tráfego de interesse e tornam a análise muito mais gerenciável.
Inspecionando os detalhes dos pacotes
Agora que filtramos os pacotes ICMP, vamos examinar mais atentamente um dos pacotes de solicitação ICMP. Clique em um deles na lista de pacotes. No painel de detalhes, você pode expandir as diferentes camadas de protocolo clicando na seta ao lado de cada seção.

- 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.
- Ethernet: contém informações da camada 2 (enlace de dados), como os endereços MAC de origem e destino.
- Internet Protocol Version 4: contém informações da camada 3 (rede). Expanda esta seção para consultar detalhes como:
- Endereço IP de origem: endereço IP do dispositivo que enviou o pacote.
- Endereço IP de destino: endereço IP do dispositivo ao qual o pacote está sendo enviado.
- Time to Live (TTL): valor que limita o tempo de vida do pacote na rede.
- Protocolo: protocolo usado dentro do pacote IP, que neste caso é o ICMP.
- Internet Control Message Protocol: esta seção exibe as informações do protocolo ICMP. Expanda-a para consultar 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.
- Soma de verificação: usada para verificar a integridade da mensagem ICMP.
- Identificador: ajuda a associar solicitações às respectivas respostas.
- Número de sequência: número sequencial dos pacotes ICMP.
Resumo
Neste laboratório, você aprendeu a instalar e configurar o Wireshark, uma poderosa ferramenta de análise de redes. Você configurou permissões para que usuários sem privilégios de root pudessem capturar pacotes com segurança, iniciou o aplicativo e capturou tráfego de rede real. 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 a análise e a solução de problemas de rede. Com o Wireshark, você já pode inspecionar comunicações de rede, diagnosticar problemas de conectividade, analisar o comportamento dos protocolos e identificar questões de segurança no tráfego da sua rede.


