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
- http://www.wireshark.org/docs/ - Acessado em 15 de março de 2011 às 11:56 hs.


