Se, algum dia, você estiver solucionando problemas de rede e precisar inspecionar pacotes individuais, use o Wireshark. O Wireshark é uma ferramenta padrão e essencial para capturar e analisar tráfego de rede que você precisa conhecer.
Já que o Wireshark é a ferramenta mais importante para esse trabalho, vamos falar sobre alguns pontos principais: onde baixar, como capturar pacotes de rede, como usar os filtros do Wireshark entre outros.
O Wireshark é um programa de software para análise de protocolo de rede em código aberto criado por Gerald Combs em 1998. Uma organização mundial de especialistas em rede e desenvolvedores de software mantém o Wireshark e continua disponibilizando atualizações tanto para novas tecnologias de rede quanto para novos métodos de criptografia.
O uso do Wireshark é completamente seguro. Órgãos públicos, empresas, organizações sem fins lucrativos e instituições de ensino usam o Wireshark para solução de problemas e com fins pedagógicos. Não há uma forma melhor de aprender redes do que observar o tráfego através do microscópio do Wireshark.
Há dúvidas sobre a legalidade do Wireshark, visto que se trata de um poderoso analisador de pacotes. O lado luminoso da Força afirma que você só deve usar o Wireshark nas redes em que tem permissão para inspecionar pacotes de dados. Recorrer ao Wireshark para examinar pacotes sem permissão é um caminho para o lado Sombrio.
O Wireshark é uma ferramenta de análise de pacotes e sniffer de rede. Ele captura o tráfego de rede na rede local e armazena esses dados para análise offline. O Wireshark captura o tráfego de rede Ethernet, Bluetooth, sem fio (IEEE.802.11), token ring, conexões frame relay, entre outros.
N.E.: um "pacote" é uma mensagem unitária de qualquer protocolo de rede (ou seja, TCP, DNS etc.)
N.E. ²: O tráfego de LAN fica em modo de transmissão. Isso significa que um único computador com Wireshark instalado pode monitorar o tráfego entre dois outros computadores. Se você quiser analisar o tráfego de um site externo, precisará capturar os pacotes no computador local.
O Wireshark permite filtrar o log antes do início da captura ou durante a análise. Assim, você pode afunilar e focar aquilo que procura no rastreamento da rede. Por exemplo, é possível definir um filtro para monitorar o tráfego em rede TCP entre dois endereços IP. Você pode configurar o filtro para mostrar apenas os pacotes enviados de um computador. Os filtros no Wireshark são um dos principais motivos que fizeram dele a ferramenta padrão para análise de pacotes.
Baixar e instalar o Wireshark é fácil. O primeiro passo é consultar a página oficial de download do Wireshark para o sistema operacional que você usa. A versão básica do Wireshark é gratuita.
O Wireshark tem duas versões para o Windows: 32 bits e 64 bits. Selecione a correta para o seu sistema operacional. Até a data de publicação deste artigo, a versão atual é a 3.0.3. A instalação é muito simples e não deve causar problemas.
O Wireshark está disponível para o Mac através do Homebrew.
Para instalar o Homebrew, é preciso executar o seguinte comando no Terminal:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
Após instalar o sistema Homebrew, é possível acessar vários projetos de código aberto para o seu Mac. Para instalar o Wireshark, execute o comando a seguir no Terminal:
brew install wireshark
O Homebrew fará o download e instalará o Wireshark e quaisquer dependências para que o programa seja executado corretamente.
Instalar o Wireshark no Linux pode variar um pouco dependendo da distribuição. Se você não estiver usando uma das distribuições abaixo, verifique os comandos.
Ubuntu
No terminal, execute estes comandos:
sudo apt-get install wireshark
sudo dpkg-reconfigure wireshark-common
sudo adduser $USER wireshark
Além de baixarem e atualizarem o pacote, esses comandos concedem privilégios de nível administrativo para executar o Wireshark.
Red Hat Fedora
No terminal, execute estes comandos:
sudo dnf install wireshark-qt
sudo usermod -a -G wireshark username
O primeiro comando instala as versões de interface GUI e CLI do Wireshark, enquanto o segundo concede permissões para usar o Wireshark.
Kali Linux
O Wireshark provavelmente já está instalado! Ele faz parte do pacote básico. Vá até o menu para confirmar. Fica na opção “Sniffing & Spoofing”.
Agora que o Wireshark está instalado, vamos ver como habilitar o sniffer de pacotes do Wireshark e como analisar o tráfego de rede.
Ao abrir o Wireshark, uma lista de todas as conexões de rede que você pode monitorar aparece na tela. Há também um campo para filtro de captura, assim você captura apenas o tráfego de rede que deseja monitorar.
É possível selecionar uma ou mais interfaces de rede com a tecla "shift" e o botão esquerdo do mouse. Após selecionar a interface de rede, você pode iniciar a captura. Há várias maneiras de fazer isso.
Clique em “Start Capturing Packets”, o primeiro botão da barra de ferramentas.
Uma opção é clicar em Capture -> Start no menu.
Outra é apertar as teclas "Ctrl" + "E".
Durante a captura, o Wireshark mostrará os pacotes que está capturando em tempo real.
Quando todos os pacotes que você precisa tiverem sido capturados, use as mesmas teclas ou clique nas mesmas opções de menu para interromper a captura.
É recomendado interromper a captura de pacotes no Wireshark antes de fazer a análise.
O Wireshark exibe três painéis diferentes para inspecionar dados de pacotes. O painel superior, intitulado "Packet List", tem uma lista com todos os pacotes da captura. Ao clicar em um pacote, os outros dois painéis se alteram para mostrar detalhes sobre o pacote selecionado. Também é possível ver se o pacote faz parte de uma conversation, ou seja, o tráfego entre dois endpoints específicos. Alguns detalhes sobre cada coluna do painel superior:
"Packet Details", o painel do meio, exibe o máximo possível de informações legíveis sobre o pacote, dependendo do tipo de pacote. Clicando com o botão direito do mouse, você pode criar filtros com base no texto destacado neste campo.
O painel inferior, "Packet Bytes", mostra o pacote exatamente como ele foi capturado em hexadecimal.
Ao examinar um pacote que faz parte de uma conversation, você pode clicar no pacote com o botão direito do mouse e selecionar "Follow" para ver apenas os pacotes que fazem parte dessa conversation.
Uma das melhores funcionalidades do Wireshark são os filtros de captura e os filtros de exibição. Os filtros permitem que você visualize a captura da maneira necessária para solucionar os problemas em questão. Como uma forma de incentivo, compilamos alguns filtros. Veja abaixo.
Os filtros de captura restringem os pacotes capturados ao filtro. Ou seja, se os pacotes não corresponderem ao filtro, não serão salvos pelo Wireshark. Confira agora alguns exemplos de filtros de captura:
host IP-address: limita a captura ao tráfego com origem no e destino ao endereço IP.
net 192.168.0.0/24: captura todo o tráfego na subnet.
dst host IP-address: captura pacotes enviados para o host especificado.
port 53: captura o tráfego apenas na porta 53.
port not 53 and not arp: captura todo o tráfego, exceto tráfego DNS e ARP.
Os filtros de exibição do Wireshark alteram a visualização da captura durante a análise. Depois de interromper a captura de pacotes, use os filtros de exibição para filtrar os pacotes no painel Packet List. Assim, você pode solucionar o problema.
O filtro de exibição mais útil (de acordo com a minha experiência) é:
ip.src==IP-address and ip.dst==IP-address
Esse filtro mostra os pacotes de um computador (ip.src) para outro (ip.dst). Também é possível usar o ip.addr para mostrar pacotes com origem no e destino ao endereço IP. Confira mais alguns filtros a seguir:
tcp.port eq 25: mostrará todo o tráfego na porta 25, que geralmente é tráfego SMTP.
icmp: exibirá apenas o tráfego ICMP na captura. Provavelmente são pings.
ip.addr != IP_address: apresenta todo o tráfego, com exceção do tráfego de ou para o computador especificado.
Analistas até criam filtros para detectar ataques específicos, como o seguinte filtro para detectar o Sasser:
ls_ads.opnum==0x09
Além da captura e dos filtros, há várias outras funcionalidades do Wireshark que podem facilitar sua vida.
É possível configurar o Wireshark para colorir os pacotes no painel Packet List de acordo com o filtro de exibição. Isso permite evidenciar os pacotes que você deseja destacar. Confira alguns exemplos aqui.
Como padrão, o Wireshark captura apenas pacotes com destino ao ou origem no computador onde está sendo executado. Quando você selecionar "run Wireshark in Promiscuous Mode" nas configurações de captura, é possível capturar a maior parte do tráfego na rede local (LAN).
O Wireshark disponibiliza uma interface de linha de comando (ILC), caso o seu um sistema operacional não tenha uma GUI. O recomendado seria usar a ILC para capturar e salvar um log e, assim, revisar esse log com a GUI.
Na opção "Statistics" do menu, você encontrará uma infinidade de opções para mostrar detalhes sobre sua captura.
Propriedades do arquivo de captura:
Gráfico I/O do Wireshark:
Há muitos tutoriais e vídeos que ensinam como usar o Wireshark para fins específicos. Seu ponto de partida deve ser o site do Wireshark. Lá, você encontrará a documentação oficial do programa e uma página colaborativa no modelo Wiki.
Embora o Wireshark seja uma ótima ferramenta de análise e sniffer de rede, é melhor utilizado, na minha opinião, quando você sabe o que está procurando. Você não vai usar o Wireshark para encontrar um novo problema. Há muito ruído na rede. Você precisa de uma ferramenta como o Edge da Varonis, que vai ajudar a entender a situação geral e indicar uma ameaça para ser investigada. Em seguida, o Wireshark pode ser utilizado para se aprofundar e entender exatamente o que há nos pacotes perigosos.
Por exemplo, quando os pesquisadores de segurança da Varonis descobriram o Norman CryptoMiner, eles receberam um alerta da Varonis que indicava atividades suspeitas na rede e nos arquivos de várias máquinas. Durante a análise do minerador de criptomoedas, os pesquisadores da Varonis usaram o Wireshark para inspecionar as atividades de rede em algumas das máquinas que estavam se comportando de forma inadequada. O Wireshark mostrou à equipe de pesquisa que um novo minerador de criptomoedas, o Norman, estava se comunicando ativamente com servidores de comando e controle (C&C) usando o DuckDNS. No Wireshark, a equipe da Varonis conseguiu ver todos os endereços IP dos servidores C&C utilizados pelos invasores. Dessa forma, a empresa desligou a comunicação e interrompeu o ataque.
Para ver a equipe da Varonis em ação, inscreva-se em uma demonstração de ataque cibernético em tempo real. Escolha o horário que for melhor para você!