Oficina
WireShark - o devorador de pacotes
Seg 7 Mai 2007 21:20 |
- Detalhes
- Categoria: Ferramentas de Rede
- Atualização: Quinta, 21 Janeiro 2010 22:07
- Autor: vovó Vicki
- Acessos: 51084
Você já tentou rastrear pacotes numa rede? Não!!?? Então está na hora de começar a se divertir olhando o caminhão de pacotes que transitam entre suas conexões (seu computador com a Internet, com o cliente de email, ftp, etc e tal) e a entender como as conexões são estabelecidas e mantidas.
Introdução
Se é que existe uma ferramenta que fez história na arte do "packet sniffing", esta é o Ethereal. Foi usada durante anos por especialistas em redes... e também por hackers. Acontece que os mesmos desenvolvedores do Ethereal resolveram dar um passo à frente, melhoraram o código e trocaram o nome do soft para WireShark - tubarão dos fios. Este analisador de protocolos de rede é uma excelente ferramenta para inspecionar redes, desenvolver protocolos e, de quebra, pode ser usada para fins educacionais. Foi escrita por profissionais do ramo e é um exemplo do poder do software de código aberto. Roda em Windows, Linux, UNIX e outras plataformas... precisa dizer mais?
Você encontra o WireShark para Windows na seção de downloads da Aldeia em Informática/Ferramentas de Rede ou no site do projeto indicado nas Fontes para o software no final deste texto.
Botando a mão na massa
Faça o download e instale o programa. Quando for perguntado se o WinPcap deve ser instalado, responda que sim (se ele não estiver instalado). Como o WireShark precisa desta biblioteca de captura de pacotes para funcionar, ela está incluída no instalador.
Em algumas instalações que fiz, na hora de instalar o WinPcap recebi uma mensagem de erro sobre o NetMon que dizia "An error occurred while installing the Microsoft Network Monitor Driver (NetMon) (0x800F0203)...". Não me deixei impressionar e continuei a instalação e tudo funcionou bem.
Numa determinada instalação ignorei o mesmo erro, só que, quando tentei rodar o Wireshark ele se recusava a funcionar indicando que o arquivo npptools.dll não podia ser encontrado. Neste caso específico descobri que a instalação do Windows XP havia "subtraído" esta biblioteca dinâmica. Procurei no Google onde poderia baixá-la e a coloquei no diretório /windows/system32/ e o problema foi resolvido. Espero que estas duas informações ajudem a quem está começando.
Dito isto, bote o Wireshark para rodar e vamos lá. A telinha deve mostrar algo como o mostrado na Fig.1:
A primeira coisa que precisamos indicar é a interface de rede que deve ser rastreada. Clique em [Capture/Interfaces] para ativar a janela de escolha mostrada na Fig.2:
Escolha uma interface e clique no botão [Start] - se a interface estiver ativa, o rastreamento começa imediatamente e a janela principal do WireShark passa a mostrar uma porção de pacotes.
Para ilustrar, chamei o Google no browser e obtive os pacotes mostrados na Fig.3:
Para interromper a captura de pacotes clique no quarto botão da barra de ferramentas ou no item de menu [Capture / Stop]. Veja que diversos tipos de pacotes foram capturados - esta versão do WireShark reconhece 836 tipos de pacotes (protocolos) diferentes.
O primeiro deles (pacote 1) foi gerado pela minha máquina para enviar em broadcast uma mensagem ARP (Address Resolution Protocol - Protocolo de Resolução de Endereço). É que o browser está pedindo um domínio (no caso, google.com) que está fora da rede local, ou seja, minha máquina precisa fazer uma conexão com um servidor de páginas localizado numa outra rede e precisa de "licença" para sair. Esta licença só pode ser dada pelo roteador da minha rede, cujo endereço IP é 198.168.1.2. Para poder falar com esta máquina, a placa Ethernet do meu computador precisa do número (MAC) da placa Ethernet do roteador. Como ela não tem esta informação, ela solta um "berro" em broadcast. Um broadcast funciona mais ou menos assim: minha máquina dá um grito do tipo "Quem tem o 192.168.1.2? Responda para 192.168.1.1" que pode ser ouvido em toda a rede. Apesar de todas ouvirem, apenas a máquina com o endereço perguntado vai responder - e vai responder diretamente para a minha máquina.
0.000194 segundos depois, a resposta chegou no pacote número 2. Se a pergunta saiu em forma de ARP, a resposta também vem no mesmo protocolo informando que a máquina solicitada tem o endereço MAC 00:40:26:a7:67:49. Agora as duas placas Ethernet têm como se comunicar e nós podemos dar uma voltinha lá fora.
Acontece que o browser recebeu o nome de um domínio (google.com) e não tem a mínima idéia do endereço IP deste domínio, ou seja, minha máquina precisa de um serviço de tradução que transforme nomes de domínio em endereços IP. Existem máquinas especializadas em fazer estas traduções - são os chamados servidores de nomes ou DNS. Meu sistema está configurado para procurar o servidor de nomes no endereço IP 200.195.157.66, por isto envia um pacote DNS (pacote 3) solicitando a tradução desejada. O servidor de nomes aciona um outro servidor de nomes, o pt-br.start2.mozilla.com, que responde logo em seguida.
O pacote 4 traz a tradução solicitada: google.com tem o endereço IP 72.14.209.99. Finalmente minha máquina pode fazer contato com uma das máquinas servidoras de páginas da gigante Google. É o que ela faz ao enviar o pacote 5.
- Anterior
- Próximo >>