Вы находитесь на странице: 1из 6

WireShark - o devorador de pacotes

Introduo

Se que existe uma ferramenta que fez histria na arte do "packet sniffing", esta o Ethereal. Foi usada durante anos por especialistas em redes... e tambm por hackers. Acontece que os mesmos desenvolvedores do Ethereal resolveram dar um passo frente, melhoraram o cdigo e trocaram o nome do soft para WireShark - tubaro 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 cdigo aberto. Roda em Windows, Linux, UNIX e outras plataformas... precisa dizer mais? Voc encontra o WireShark para Windows na seo de downloads da Aldeia em Informtica/Ferramentas de Rede ou no site do projeto indicado nas Fontes para o software no final deste texto.

Botando a mo na massa
Faa o download e instale o programa. Quando for perguntado se o WinPcap deve ser instalado, responda que sim (se ele no estiver instalado). Como o WireShark precisa desta biblioteca de captura de pacotes para funcionar, ela est includa no instalador. Em algumas instalaes 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)...". No me deixei impressionar e continuei a instalao e tudo funcionou bem. Numa determinada instalao ignorei o mesmo erro, s que, quando tentei rodar o Wireshark ele se recusava a funcionar indicando que o arquivo npptools.dll no podia ser encontrado. Neste caso especfico descobri que a instalao do Windows XP havia "subtrado" esta biblioteca dinmica.

Procurei no Google onde poderia baix-la e a coloquei no diretrio /windows/system32/ e o problema foi resolvido. Espero que estas duas informaes ajudem a quem est comeando. Dito isto, bote o Wireshark para rodar e vamos l. A telinha deve mostrar algo como o mostrado na Fig.1:

Fig.1 - Tela inicial do WireShark

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:

Fig.2 - Escolhendo a interface

Escolha uma interface e clique no boto [Start] - se a interface estiver ativa, o rastreamento comea imediatamente e a janela principal do WireShark passa a mostrar uma poro de pacotes. Para ilustrar, chamei o Google no browser e obtive os pacotes mostrados na Fig.3:

Fig.3 - Resultado de uma captura de pacotes

Para interromper a captura de pacotes clique no quarto boto da barra de ferramentas ou no item de menu [Capture / Stop]. Veja que diversos tipos de pacotes foram capturados - esta verso do WireShark reconhece 836 tipos de pacotes (protocolos) diferentes. O primeiro deles (pacote 1) foi gerado pela minha mquina para enviar em broadcast uma mensagem ARP(Address Resolution Protocol - Protocolo de Resoluo de Endereo). que o browser est pedindo um domnio (no caso, google.com) que est fora da rede local, ou seja, minha mquina precisa fazer uma conexo com um servidor de pginas localizado numa outra rede e precisa de "licena" para sair. Esta licena s pode ser dada pelo roteador da minha rede, cujo endereo IP 198.168.1.2. Para poder falar com esta mquina, a placa Ethernet do meu computador precisa do nmero (MAC) da placa Ethernet do roteador. Como ela no tem esta informao, ela solta um "berro" em broadcast. Um broadcast funciona mais ou menos assim: minha mquina 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 mquina com o endereo perguntado vai responder - e vai responder diretamente para a minha mquina. 0.000194 segundos depois, a resposta chegou no pacote nmero 2. Se a pergunta saiu em forma de ARP, a resposta tambm vem no mesmo protocolo informando que a mquina solicitada tem o endereo MAC 00:40:26:a7:67:49. Agora as duas placas Ethernet tm como se comunicar e ns podemos dar uma voltinha l fora.

Acontece que o browser recebeu o nome de um domnio (google.com) e no tem a mnima idia do endereo IP deste domnio, ou seja, minha mquina precisa de um servio de traduo que transforme nomes de domnio em endereos IP. Existem mquinas especializadas em fazer estas tradues - so os chamados servidores de nomes ou DNS. Meu sistema est configurado para procurar o servidor de nomes no endereo IP 200.195.157.66, por isto envia um pacote DNS (pacote3) solicitando a traduo 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 traduo solicitada: google.com tem o endereo IP 72.14.209.99. Finalmente minha mquina pode fazer contato com uma das mquinas servidoras de pginas da gigante Google. o que ela faz ao enviar o pacote 5.

Vamos dar uma olhada mais de perto neste pacote s para ir se acostumando com a sequncia de acontecimentos. Clicando no pacote 5, os painis de resultado mostram o seguinte (Fig.4):

Fig.4 - Os painis de resultado

O painel superior contm a lista dos pacotes capturados, onde o pacote 5 est destacado. Os outros dois painis contm informaes sobre este pacote. No painel do centro aparecem quatro barras com um boto [+] no lado esquerdo. Clicando neste boto, as informaes sob este ttulo so mostradas. Para esclarecer um pouco o que tudo isto quer dizer, bom dar uma recordada como um pacote TCP fabricado. O protocolo TCP (Transmission Control Protocol - Protocolo de Controle de Transmisso) acionado pelo aplicativo que, no nosso exemplo, o browser. O browser fornece algumas informaes para que o TCP possa montar seu pacote. Este primeiro pacote passado para o protocolo IP (Internet Protocol) - responsvel pelo roteamento, isto , precisa definir a origem e o destino do pacote para que ele possa ser direcionado corretamente. O IP adiciona as informaes que so da sua competncia e "embrulha" o pacote recebido junto com o que ele produziu. Resultado: o pacote fica maior e j pode ser chamado de pacoto. O IP transfere este novo embrulho para a placa Ethernet que, como toda boa placa de rede, faz um novo embrulho adicionando seu endereo MAC e o MAC do destino - o pacoto vira um pacotao, mais conhecido como frame Ethernet. Bem, chegou a hora de conferir se a v aqui no est falando bobagem Clique no ttulo

Transmission Control Protocol e observe no painel inferior, onde o pacote mostrado na sua forma hexadecimal, o final do pacote em destaque: esta a parte criada pelo TCP. Clique no ttulo Internet Protocol e observe no painel inferior que o miolo do pacote destacada. Finalmente, clique no ttulo Ethernet II para ver o incio do pacote destacado. Agora, adivinhe o que? Se clicarmos no ttulo Frame, o pacotao ser destacado. Para falar a verdade, esta histria de pacote, pacoto e pacotao uma inveno minha s para facilitar o entendimento de como um pacote criado. Quando falamos em pacotes, referimo-nos sempre ao produto final que transita pela Internet (o pacotao). Mas vamos continuar com a dissecao do pacote seguindo o roteiro comentado acima. A primeira conversa entre o aplicativo e o TCP. O browser "explica" que a porta TCP de origem a 3172 e que a porta TCP do destino deve ser a 80 (reservada para o HTTP). A porta de origem vai servir para direcionar a resposta e a porta do destino vai servir de informao para que o TCP da outra ponta saiba o que fazer. Se o boto [+] do ttulo Transmission Control Protocol for clicado, vamos obter o seguinte (Fig.5):

Fig.5 - O pedao do pacote criado pelo TCP

Como este pacote vai ser enviado com um pedido de sincronizao, quase que bvio que a flag SYN precisa estar ligada. Clique na linha ".... ..1. = Syn: set" para identificar onde este bit se encontra dentro do pacote. Alm das portas e do bit SYN, o resto pode esperar um pouco. Vamos dar uma olhada no que o IP aprontou.

Agora a vez de dar uma olhada no que o IP produziu. Observe a Fig.6 onde, ao invs de destacar a poro do pacote que lhe compete, cliquei numa outra flag: a que no permite fragmentaes.

Fig.6 - O pedao do pacote criado pelo IP

Como foi dito anteriormente, o IP o responsvel pela rota que o pacote deve tomar, ou seja, precisa indicar endereos IP de origem e de destino. Se voc clicar em Source e Destination, a poro do pacote que contm estas informaes ser destacada no painel inferior e voc ver os endereos na sua forma hexadecimal. Bem, agora s falta ver o que a placa Ethernet aprontou. Na verdade, no nada de excepcional porque os MACs da origem e do destino j tinham cado na boca do povo Usando estas informaes, a plaquinha embrulha tudo e joga o pacote na rede... agora s resta esperar que o pacote chegue ao destino e que a minha mquina receba uma resposta. Como o protocolo TCP faz um "aperto de mo" em trs etapas, ento tambm aconselhvel dar uma repassada neste processo. A primeira cutucada enviar um sinal SYN, a se espera uma resposta SYN-ACK (a mquina contactada envia um "ACKnowledgment" - um palavro em ingls que quer dizer conhecimento). Como somos muito educados, tambm respondemos com um ACK para dizer que recebemos a resposta. Final da histria: os dois pacotes que seguem o que acabamos de analisar devem conter estas informaes e, como voc j sabe onde procurar, s pregar o chinelo.

Вам также может понравиться