Esse artigo tem o objetivo de mostrar as principais funcionalidades do aplicativo Wireshark, e pode ser bastante útil para os iniciantes no mundo das redes de computadores. Aos mais experientes, cabe como artigo para eventuais consultas.


Introdução

Wireshark é um analisador de protocolos de rede para sistemas Unix e Windows. Ele é o mais famoso do mundo (fonte: www.wireshark.org). Com ele podemos capturar interativamente o tráfego que está rodando na rede em um computador. O Wireshark é o padrão utilizado fielmente por muitas empresas e instituições educacionais.

Com ele podemos controlar todos os pacotes da rede que passam pelo computador, filtrando resultados por protocolos ou faixa IP.

Download e instalação

  • Para sistemas Fedora, pode-se instalar pelo yum, apenas digitando via linha de comando (logado como root, ou coloque sudo antes):
# yum -y install wireshark
  • Para sistemas Ubuntu, pode-se instalar pelo apt-get, apenas digitando via linha de comando (logado como root ou coloque sudo antes):
# apt-get install wireshark
  • Para Windows, apenas baixe o instalador e dê 2 cliques!

obs.: Para Windows ou outros sistemas, vá à página http://www.wireshark.org/download.html, onde há todas as plataformas disponíveis para download.

Para executar, em sistemas Linux, apenas digite na linha de comando:

# wireshark

Caso não seja o usuário root, será pedida a senha de root.

Para executar em Windows, procedimento padrão, algo como: Iniciar > Todos os Programas > Wireshark.

Descrição da interface do programa

A imagem abaixo mostra a inteface do Wireshark quando este está capturando pacotes. Do lado esquerdo, está o nome de cada parte, as quais são explicadas logo a baixo.



  • Menu de comandos: Como em várias programas com interface gráfica, várias opções de menu estão na parte superior do programa. Para este artigo e conhecimento inicial, os menus File e Capture são os que interessam. Em File podemos salvar uma captura, e em Capture conseguimos iniciar uma captura de pacotes.
  • Campo Filter: permite filtrar pacotes de diversas formas. Por exemplo, por protocolo. Podemos colocar http nesse campo que apenas os pacotes http trafegando serão mostrados, os outros serão escondidos.
  • Lista de pacotes: Todos os pacotes que passaram pela interface capturada é mostrada nessa janela. Divide-se nos seguintes campos:

1) A primeira coluna, No. é o número do pacote (dado pelo wireshark e não pela rede);
2) A coluna Time é o tempo no qual o pacote foi capturado;
3) Source é o ip de onde veio o pacote;
4) Destination é o ip de destino do pacote;
5) Protocol o protocolo sobre o qual o pacote está trafegando;
6) Info as informações do protocolo.

obs.: pode-se ordenar por qualquer coluna, clicando nessa coluna.

  • Detalhes do cabeçalho do pacote selecionado: ao clicar em um pacote na lista de pacotes, essa janela fornece detalhes sobre o cabeçalho desse pacote. Esses detalhes são informações do frame Ethernet e datagrama IP que contém o pacote. Normalmente as RFC's de cada protocolo fornecem explicações sobre quase todos os campos dessa janela.
  • Conteúdo do pacote: mostra o conteúdo do frame capturado, em ASCII e hexadecimal.

Capturando um pacote

Para este exemplo, rodaremos o aplicativo myftp.c, que pode ser encontrado em http://200.170.138.251/OpenInnovation/index.php/Open_3G/LTE#Downloads

Esses passos foram realizados em um Fedora release 13 (Goddard), portanto deve funcionar em qualquer sistema Unix.

1 - Pela linha de comando vá ao diretório do myftp.c e execute ele da seguinte forma:

./myftp -H localhost -P 4444 -l

Dessa forma, a máquina de ip localhost ficará esperando novas mensagens na porta 4444.

2 - Em outra linha de comando digite:

./myftp -H localhost -P 5555 -h localhost -p 4444 -s

Dessa forma, a máquina de ip localhost enviará pela porta 5555 mensagens à máquina com ip localhost na porta 4444.

3 - Agora abra o Wireshark;

4 - No Wireshark clique no Menu Capture, e depois Intefaces; Abrirá uma tela parecida com:



5 - Como estamos em uma única máquina, clique no Start da interface lo;

6 - No campo Filter do wireshark, digite sctp e <enter>; Dessa forma apenas pacotes do protoclo sctp serão mostrados;

7 - Vá a linha de comando que está enviando mensagens e digite qualquer mensagem e <enter>;

8 - Vá a linha de comando que está recebendo mensagens e certifique-se que a mensagem digitada chegou corretamente;

9 - Vá ao Wireshark e observe que ele capturou alguns pacotes; Pacotes HEARTBEAT e HEARTBEAT_ACK são as mensagens enviadas que garantes a conexão.

10 - Onde Info for DATA, é o pacote que carregou a sua mensagem SCTP; Vamos explorá-lo;

11 - Clicando no pacote, na Descrição do Cabeçalho podemos ver algumas informações sobre o Frame, como por exemplo tamanho em bytes;

12 - Em Internet Protocol algumas informações sobre a camada IP, que carregou a mensagem;

13 - Em Stream Control Transmission Protocol podemos ver informações do protocolo SCTP; cada campo deste pode ser consultado na RFC 4960;

14 - Por fim o campo Data mostra a mensagem que foi enviada. Observe na figura abaixo que no meu caso enviei a frase "Olá, eu sou o Natal!":

Considerações finais

Esse artigo tem o objetivo de introduzir o Wireshark de forma básica. Para mais informações acessar http://www.wireshark.org/docs/. Os passos acima foram testados em uma única máquina. Mas o autor já testou em 2 máquinas funcionando perfeitamente. Para isso, apenas altere o ip de localhost para o da outra máquina na opção -p. E os -H pode ser necessário alterar de localhost para 0.0.0.0.

Bibliografia

Autor