Resolução de nomes no Wireshark

Hoje decidi partilhar daquele tipo de informação sem utilidade mas que mesmo assim cuia p’ra caraças saber. Todo o blog tem que ter este tipo de posts tal como os bons albums têm músicas que nunca deveriam ser gravadas.

Há tempos fiquei a saber que o Wireshark permite fazer a resolução de nomes local e personalizada para vários parâmetros incluindo:

  • Endereços MAC
  • Hosts (endereços IP)
  • Serviços/Número de portas
  • Subnets/Redes
  • VLAN ID’s

Mãos à obra…

Onde?

À semelhança da resolução local de nomes em Linux e Windows, no Wireshark é controlada por ficheiros específicos numa pasta da aplicação seguindo a mesma síntaxe:

————————————-
Endereco1       Nome1
Endereco2      Nome2
Endereco3      Nome3
#comentário
————————————-

Para Windows os ficheiros estão em:

%WIRESHARK%\,     %APPDATA%\Wireshark\ethers

Para Linux:

/etc/,      $HOME/.wireshark/

A resolução definida nos ficheiros Wireshark sobrepõem-se à resolução do computador (ficheiro hosts ou DNS)

Resolução de endereços IP

O ficheiro de resolução de endereços IP é fácil… “hosts”, e permite a resolução de IPv4 ou IPv6.

Como exemplo vejamos uma captura simples sem qualquer resolução de nomes.

Captura sem resolução de nomes

Captura sem resolução de nomes

Chato ne?

O ficheiro “hosts” (assim sem extensão mesmo) foi criado com o conteúdo:

----------------------------
# Origem do ping
10.0.0.1 ORIGEM
# IPs de destino
192.168.1.1 IP_1
192.168.2.1 IP_2
192.168.3.1 IP_3
----------------------------

A parte desagradável é que qualquer alteração nestes ficheiros implica reiniciar o Wireshark para que tenham efeito.

Depois de reiniciado, o resultado dos pings:

#ping 192.168.1.1 source 10.0.0.1 rep 1
#ping 192.168.2.1 source 10.0.0.1 rep 1
#ping 192.168.3.1 source 10.0.0.1 rep 1

Será

Wireshark Resolucao hosts

As linhas de sumário não mostram mais endereços IP mas sim os nomes que lhes foram atribuídos: ORIGEM para 10.0.0.1 e IP_1, IP_2 e IP_3 para os outros 3 endereços. O resultado não se resume ao sumário mas também na janela de detalhe do pacote

Wireshark resolucao hosts detalhe

Resolução de redes/subnets

Ao invés de identificar endereços IP específicos, talvez o queira fazer com redes complexas. Não há problema. Para isso o Wireshark tem o ficheiro “subnets” com síntaxe semelhante em que o endereço IP é substituído por IP/máscara.

Criando o ficheiro “subnets” com o conteúdo:

----------------------------
 172.16.0.0/16 REDE
 ----------------------------

Obtemos o resultado:

Resolução de subnet

Todo o pacote com endereço pertencente a rede 172.16.0.0/16 tem o seu endereço substituído por REDE.x.x.

Resolução de endereços MAC

Os casos acima são perfeitos para protocolos IP, mas para o caso de protocolos de camada 2? O ficheiro “ethers” resolve o problema.

----------------------------
 ca-01-0a-ac-00-08 R1_f00
 ca-02-3c-d8-00-08 R2_f00
 ----------------------------

Resolução de MAC ficheiro ethersTal como para os endereços IP, a resolução de endereços MAC altera as linhas de sumário e o detalhe. Na captura acima as frames são de Spanning Tree Protocol (STP).

Preferências

A resolução de nomes no Wireshark, seja local ou por DNS é controlada pelas opções nas preferências e caso não tenha os resultados desejados mesmo depois de reiniciar poderá se dar o caso da resolução estar desligada.

Wireshark Preferences

As preferências de resolução de nomes estão disponíveis no Menu: Edit – Preferences – Name Resolution.

 

Mas é mesmo inútil?

Brincadeiras à parte esta funcionalidade poderá mesmo ser útil na análise de grandes capturas para troubleshooting recorrente e análise de probes instalados em uma rede onde os endereços locais não têm DNS reverso.Um endereço IP pode ser substituído por texto que salta à vista (por exemplo um host com o nome X-X-X-X-X-X-X-X-X-X-X).

Mas além da alteração visual a resolução de nomes é integrada na utilização de filtros.  Os nomes tanto de IP como de redes podem ser utilizados em filtros.

Exemplo do filtro “ip.host contains “REDE” “ (filtra qualquer pacote cujo nome/endereço Layer 3 tenha a string “REDE”)

Filtro hosts

“ip.src_host == “ORIGEM” and ip.dst_host contains “IP_” “(filtra qualquer pacote cujo nome/endereço Layer 3 de origem seja exactamente igual à string “REDE” e o nome/endereço Layer 3 de destino contenha a string “IP_” )

Filtro hostsHmmm… Afinal se calhar não é assim tão inútil.

 

Próximo passo?

Cores! Quando conseguir, saberão.

 

———————–

Para saber os detalhes dos quais este artigo serviu de base consulte os links:

https://www.wireshark.org/docs/wsug_html_chunked/ChAppFilesConfigurationSection.html

https://wiki.wireshark.org/DisplayFilters

https://www.wireshark.org/docs/dfref/

https://www.wireshark.org/docs/wsug_html_chunked/ChCustPreferencesSection.html

1 Comment Resolução de nomes no Wireshark

  1. Pingback: Wireshark: Colorindo os pacotinhos | Ignorante e Indeciso

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *