Você está na página 1de 15

Aprenda a usar o sniffer Wireshark (Parte I)

Criado por Pedro Pinto em 21 de Fevereiro de 2012 | 32 comentrios | Categoria: Networking

Ao longo dos anos, fomos apresentando no Pplware as vrias verses e respectivas novidades do sniffer mais popular para redes informticas, o Wireshark. O Wireshark uma ferramenta de analise protocolar, que permite a captao, em tempo real, de pacotes de dados, e apresenta essa informao num formato legvel para os utilizadores. O processo de captura de trfego realizado via placa de rede,, funcionando esta num modo especial que designado de modo promscuo (possibilidade de capturar todos os pacotes, independentemente do endereo de destino) Hoje vamos iniciar um novo ciclo de tutoriais com o objectivo de ensinar os utilizadores a usarem o sniffer Wireshark.

Para que que eu preciso de um sniffer?


Para muitos, uma poderosa ferramenta de trabalho, para outros aquela ferramenta capaz de capturar umaspasswords na rede (em plain text de preferncia), alguns dados confidenciais, decifrar chaves de rede, etc, etc, se esses dados no so encriptados an tes de serem enviados pela rede maravilha passam em claro na rede, perceptveis por qualquer utilizador. Quanto ao Wireshark (antigo Ethereal), para mim simplesmente o melhor sniffer grtis!!!. O Wireshark permite analisar os pacotes recebidos e transmitidos por qualquer interface de rede, sendo possvel aplicar vrios tipos filtros.

Como comear a usar o sniffer Wireshark?


Para comearmos a usar o Wireshark basta escolher a placa de rede (a placa que est actualmente ligada rede) que pretendemos colocar escuta. De referir que em alguns casos, o Wireshark no reconhece o fabricante da placa e coloca apenas o nome Microsoft ou outro (no meu caso, a primeira referencia a Microsoft corresponde placa de rede wireless).

Caso no consigam identificar a placa que pretendem, podem carregar no primeiro boto do menu do wireshark e ver qual a placa que est a enviar e a receber pacotes (no meu caso a segunda placa da listaque corresponde placa de rede wireless).

Depois de seleccionarmos a placa de rede, comeamos de imediato a visualizar os pacotes que passam na rede.

Para parar o processo basta carregar no quarto cone do menu do Wireshark.

Exerccio Para experimentarem de imediato o Wireshark deixamos aqui um pequeno exerccio. Para tal, vamos snifar todos os pedidos e respostas DNS, devendo colocar no campo filter dns. De seguida abrimos a linha de comandos e usando o comando nslookup, questionamos o nosso servidor de DNS quem www.pplware.com. Como podem ver na imagem seguinte, o Wireshark consegue capturar toda a informao trocada entre a nossa mquina e o servidor de DNS definido.

Esperamos que tenham gostado deste primeiro tutorial sobre o Wireshark. Alm de conseguirmos visualizar todo o trfego (cifrado e no cifrado), conseguimos tambm perceber como funcionam as nossas redes de dados. Por hoje resta-nos esperar pelo vosso feedback e sugestes para prximos tutoriais.

Aprenda a usar o sniffer Wireshark (Parte II)


Criado por Pedro Pinto em 8 de Maro de 2012 | 13 comentrios | Categoria: Networking

Ao longo dos anos, fomos apresentando no Pplware as vrias verses e respectivas novidades do sniffer mais popular para redes informticas, o Wireshark. O Wireshark uma ferramenta de analise protocolar, que permite a captao, em tempo real, de pacotes de dados, e apresenta essa informao num formato legvel para os utilizadores. O processo de captura de trfego realizado via placa de rede,, funcionando esta num modo especial que designado de modo promscuo (possibilidade de capturar todos os pacotes, independentemente do endereo de destino). Depois de termos apresentado aqui algumas funcionalidades bsicas do wireshark, hoje vamos explicar mais duas funcionalidades: Esquema de cores nas linhas e Follow TCP Stream.

Esquema de cores nas linhas


Quando um utilizador v pela primeira vez o funcionamento do wireshark, questionar-se- qual o significado das cores no output. De uma forma geral e por omisso, as linhas:

Verde significa trfego TCP Azul escuro Trfego DNS Azul claro Trfego UDP

Preto Segmentos TCP com problema Caso o utilizador pretenda ver o esquema de cores completo do wireshark, basta aceder a View >Coloring Rules

Follow TCP Stream

Uma das funcionalidades interessantes do Wireshark o Follow TCP Stream. Esta funcionalidade permite visualizar streams TCP completas, isto , com esta opo o utilizador poder acompanhar toda uma comunicao desde o primeiro SYN at ao FIN-ACK.

Esperamos que tenham gostado deste segundo tutorial sobre o Wireshark. Por hoje resta-nos esperar pelo vosso feedback e sugestes para prximos tutoriais.

Aprenda a usar o sniffer Wireshark (Parte III)


Criado por Pedro Pinto em 15 de Maro de 2012 | 12 comentrios | Categoria: Networking

Como detectar trfego abusivo Ao longo dos anos, fomos apresentando no Pplware as vrias verses e respectivas novidades do sniffer mais popular para redes informticas, o Wireshark. O Wireshark uma ferramenta de analise protocolar, que permite a captao, em tempo real, de pacotes de dados, e apresenta essa informao num formato legvel para os utilizadores. O processo de captura de trfego realizado via placa de rede,, funcionando esta num modo especial que designado de modo promscuo (possibilidade de capturar todos os pacotes, independentemente do endereo de destino). Depois de termos apresentado aqui algumas funcionalidades bsicas do wireshark, Esquema de cores nas linhas e Follow TCP Stream aqui, hoje vamos aprender a detectar trfego abusivo.

Um dos maiores inimigos de qualquer administrador de sistemas o trfego abusivo que deriva de torrents, streaming de dados, downloads ilegais, etc. Apesar de existirem vrias ferramentas que permitem controlar o trfego abusivo, o Wireshark tambm poder dar uma ajuda. De referir que o wireshark s conhecer monitorizar trafego unicast, broadcast e multicast no caso de estarmos ligados via switch (ver mais aqui). Vamos ento a um exemplo para detectar a presena de downloads de torrents na rede. Para isso, vamos ao campo Filter e colocamos o nome do protocolo associado aos torrents: bittorrent

Alm da informao anterior, podemos ainda saber as estatsticas de utilizao de um dado protocolo. Para isso, vamos a Statistics > Protocolo Hierarchy

Como podemos ver pela imagem seguinte, o protocolo BitTorrent est com uma taxa de ocupao na ordem dos 0,90% (valor relativo ao perodo de captura).

Se pretendermos saber o endereo IP de todas as mquinas que esto a funcionar como peers, basta ir aStatistics > Endpoints e depois carregar no separador IPv4.

Esperamos que tenham gostado deste terceiro tutorial sobre o Wireshark. Por hoje resta-nos esperar pelo vosso feedback e sugestes para prximos tutoriais.

Introduo
Alm do Nessus (que vimos em tutoriais anteriores), outro aliado importante para qualquer administrador de redes preocupado com a segurana o Wireshark, o bom e velho Ethereal, que mudou de nome em Junho de 2006. Ele um poderoso sniffer, que permite capturar o trfego da rede, fornecendo uma ferramenta poderosa para detectar problemas e entender melhor o funcionamento de cada protocolo. Assim como o Nessus, ele pode ser usado tanto para proteger seu sistema quanto para roubar dados dos vizinhos, uma faca de dois gumes. Devido a isso, ele s vezes visto como uma "ferramenta hacker", quando na verdade o objetivo do programa dar a voc o controle sobre o que entra e sai da sua mquina e a possibilidade de detectar rapidamente qualquer tipo de trojan, spyware ou acesso no autorizado. Embora ele geralmente no venha instalado por padro, a maioria das distribuies disponibilizam o pacote "wireshark" (ou "ethereal", de acordo com o nvel de atualizao). Nas distribuies derivadas do Debian, voc pode usar o apt-get, como de praxe. Alm das verses Linux, esto disponveis tambm verses para Windows 2000, XP e Vista. Voc pode baix-las no http://www.wireshark.org/. No caso do Linux, possvel instalar tambm a partir do pacote com o cdigo fonte, disponvel na pgina de download (opo preferida por quem faz questo de ter acesso ultima verso do programa). O pacote instalado com os conhecidos "./configure", "make" e "make install". Como ele depende de um nmero relativamente grande de compiladores e de bibliotecas, muitas delas pouco comuns, voc quase sempre vai precisar instalar alguns componentes adicionais manualmente. Uma forma simples de instalar todos os componentes necessrios para a compilao (dica til no apenas no caso do Wireshark, mas para a instalao de programas a partir do cdigo fonte de uma forma geral) usar o "auto-apt", disponvel atravs do apt-get. Para us-lo, instale o pacote via apt-get e rode o comando "auto-apt update":

# apt-get install auto-apt # auto-apt update

A partir da, voc pode rodar os comandos de compilao atravs dele, como em:

$ $ $ $ $ #

tar -zxvf wireshark-0.99.1pre1 cd wireshark-0.99.1pre1 auto-apt run ./configure auto-apt run make su <senha> make install

Durante a instalao, o auto-apt usa o apt-get para instalar os componentes necessrios, como neste screenshot:

Depois de instalado, abra o programa usando o comando "wireshark" (ou "ethereal", de acordo com a verso instalada). O Wireshark um daqueles programas com tantas funes que voc s consegue aprender realmente usando. Para comear, nada melhor do que capturar alguns pacotes. Clique em "Capture > Start":

Aqui esto as opes de captura. A primeira opo importante a "Capture packets in promiscuous mode", onde voc decide se quer capturar apenas os pacotes endereados sua prpria mquina, ou se quer tentar capturar tambm pacotes de outras mquinas da rede. Isso possvel pois os hubs burros apenas espelham as transmisses, enviando todos os pacotes para todas as estaes. O endereo MAC do destinatrio includo no incio de cada frame enviado atravs da rede. Normalmente, a placa escuta apenas os pacotes destinados a ela, ignorando os demais, mas, no promiscuous mode ela passa a receber todos os pacotes, independentemente de a qual endereo MAC ele se destine. Os switches e hub-switches so mais discretos, encaminhando o trfego apenas para o destinatrio correto, mas a maior parte dos modelos mais baratos so vulnerveis a ataques de MAC flooding e ARP poisoning, como veremos a seguir. Em seguida, voc tem a opo "Update list of packets in real time". Ativando esta opo, os pacotes vo aparecendo na tela conforme so capturados, em tempo real. Caso contrrio, voc precisa capturar um certo nmero de pacotes para s depois visualizar todo o bolo. Mais abaixo esto tambm algumas opes para interromper a captura depois de um certo tempo, ou depois de capturar uma certa quantidade de dados. O problema aqui que o Wireshark captura todos os dados transmitidos na rede, o que (em uma rede local) pode rapidamente consumir toda a memria RAM disponvel, at que voc interrompa a captura e salve o dump com os pacotes capturados em um arquivo. Dando o OK, ser aberta a tela de captura de pacotes, onde voc poder acompanhar o nmero de pacotes capturados:

Na tela principal, temos a lista dos pacotes, com vrias informaes, como o remetente e o destinatrio de cada pacote, o protocolo utilizado (TCP, FTP, HHTP, AIM, NetBIOS, etc.) e uma coluna com mais informaes, que incluem a porta TCP qual o pacote foi destinado. Os pacotes que aparecem com um micro da rede local como emissor e um domnio ou IP da Internet como destinatrio incluem requisies, upload de arquivos, e-mails enviados, mensagens de ICQ e MSN e, em muitos casos, tambm senhas de acesso. Os pacotes provenientes de micros da Internet so respostas estas requisies, incluindo pginas web, e-mails lidos, arquivos baixados e, assim por diante. Atravs do sniffer, possvel capturar todo tipo de informao que trafegue de forma no encriptada pela rede.

Clicando sobre um dos pacotes e, em seguida, no "Follow TCP Stream", o Ethereal mostrar uma janela com toda a converso, exibida em modo texto.

A maior parte do que voc vai ver sero dados binrios, incluindo imagens de pginas web e arquivos diversos. Mesmo o html das pginas chega muitas vezes de forma compactada (para economizar banda), novamente em um formato ilegvel. Mas, garimpando, voc vai encontrar muitas coisas interessantes, como, por exemplo, mensagens (MSN e ICQ) e e-mails, que, por padro, so transmitidos em texto puro. Usando a opo "Follow TCP Stream", possvel rastrear toda a conversa:

ARP poisoning e MAC flooding


Como disse anteriormente, o Wireshark pode ser usado tambm pelo lado negro da fora. Se voc estiver em uma rede local, com micros ligados atravs de um hub ou atravs de uma rede wireless, outro usurio pode us-lo para capturar todas as suas transmisses. Isto extremamente perigoso. Qualquer um que tenha a chance de plugar um notebook na rede ou coloc-lo dentro da rea de cobertura de sua rede wireless, poder capturar dados e senhas suficientes para comprometer boa parte do sistema de segurana da sua empresa. Apenas conexes feitas atravs do SSH e outros programas que utilizam encriptao forte estariam a salvo. Naturalmente, alm de algum de fora, existe a possibilidade de um dos seus prprios funcionrios resolver comear a brincar de script kiddie, pregando peas nos outros e causando danos. Como vimos, isso no requer muita prtica. Enfim, a menos que voc esteja em uma simples rede domstica, onde exista uma certa confiana mtua, utilizar um hub burro simplesmente um risco grande demais a correr. Ao utilizar um hub-switch, o risco um pouco menor, j que, por default, os pacotes so enviados apenas s portas corretas. Entretanto, muitos sistemas so vulnerveis a ataques de ARP poisoning, sem falar dos ataques de MAC flooding, que permitem burlar a proteo. Vamos ento a uma explicao mais detalhada de como eles funcionam. No ARP poisoning, o micro do atacante envia pacotes com respostas forjadas para requisies ARP de outros micros da rede. O protocolo ARP utilizado para descobrir os endereos MAC dos demais micros da rede, j que os switches no entendem endereos IP. Esses pacotes forjados fazem com que os outros micros passem a enviar seus pacotes para o micro do atacante, que configurado para capturar as transmisses e retransmitir os pacotes originais para os destinatrios corretos. A rede continua funcionando normalmente, mas agora o atacante tem chance de logar todo o trfego, usando o Wireshark ou outro sniffer. Felizmente, o Wireshark tambm pode ser usado para perceber as anormalidades na rede e chegar at o espertinho. Os ataques de MAC flooding, por sua vez, tem como alvo o switch da rede e trabalham dentro de um princpio bastante simples. O switch possui uma rea limitada de memria para armazenar a tabela com os endereos MAC dos micros da rede (que permite que ele encaminhe as transmisses para as portas corretas), de forma que, ao receber um grande nmero de pacotes com endereos MAC forjados, a tabela completamente preenchida com os endereos falsos, no deixando espao para os verdadeiros. Nessa situao, existem apenas duas opes: ou o switch simplesmente trava, derrubando a rede, ou abandona o uso da tabela de endereos e passa a trabalhar em modo failopen, onde os frames so simplesmente retransmitidos para todas as portas, da mesma forma que um hub burro, permitindo que o atacante capture todo o trfego da rede (at que o switch seja reiniciado). Como switches que travam no so uma boa propaganda, os fabricantes normalmente utilizam a segunda opo, o que faz com que a maioria dos switches baratos e quase todos os hub-switches sejam vulnerveis a esse tipo de ataque. Uma das ferramentas mais usadas o macof, um pequeno utilitrio que faz parte da sute dsniff (que roda sobre o Linux), cujo cdigo fonte est disponvel no: http://www.monkey.org/~dugsong/dsniff/ O dsniff tambm pode ser encontrado nos repositrios de muitas distribuies, o que facilita a instalao. Nas distribuies derivadas do Debian, voc pode instal-lo via apt-get:

# apt-get install dsniff


Uma vez que o dsniff foi instalado, usar o macof bastante simples: basta especificar a interface de sada, usando a opo "-i", e especificar o nmero de pacotes forjados a serem enviados, usando a opo "-n", como em:

# macof -i eth0 -n 100000


A maioria dos hub-switchs so capazes de armazenar entre 1000 e 8000 endereos MAC na memria, de forma que bombardeando o hub-switch com 100000 endereos MAC diferentes (o que demora cerca de um minuto e meio em uma rede de 100 megabits) voc consegue chavear qualquer aparelho vulnervel para modo failopen. A partir da, basta lanar o Wireshark e passar a capturar todo o trfego da rede. Note que, em alguns casos, rodar o comando vai fazer o switch travar, derrubando toda a rede at que voc o reinicie manualmente, o que nos modelos mais simples feito desconectando e reconectando o cabo de energia. O dsniff inclui tambm um utilitrio para ARP poisoning, o arpspoof. Ao us-lo, voc deve especificar a interface de rede local e tambm o endereo IP do host de destino dos pacotes que voc deseja capturar. Especificando o endereo do gateway da rede (o uso mais comum), voc pode capturar todos os pacotes destinados Internet. Para us-lo, o primeiro passo ativar o encaminhamento de pacotes na configurao do Kernel, o que feito usando o comando abaixo:

# echo 1 > /proc/sys/net/ipv4/ip_forward


A partir da, voc pode ativar o arpspoof, especificando o endereo de destino dos pacotes que deseja capturar, como em:

# arpspoof -i eth0 192.168.1.1


Com isso, o arpspoof passar a enviar pacotes de broadcast para toda a rede, avisando todos os micros que o novo endereo MAC do "192.168.1.1" o endereo da sua mquina. Isso far com que ela passe a receber o trfego destinado a ele, permitindo que voc o capture usando o Wireshark. Naturalmente, o trfego no poderia simplesmente ser desviado para a sua mquina, caso contrrio, os pacotes deixariam de ir at o gateway da rede e os micros no conseguiriam mais acessar a Internet. Para evitar isso, o arpspoof reencaminha automaticamente todos os pacotes recebidos ao endereo correto (justamente por isso precisamos ativar o ip_forward no Kernel), fazendo com que, apesar do "desvio", o trfego continue fluindo, como se nada estivesse acontecendo:

ARP poisoning Alm de permitir escutar o trfego, o ARP poisoning pode ser usado para alterar os dados transmitidos e tambm para impersonar outros hosts, de forma a obter senhas de acesso e outros dados.

Imagine, por exemplo, que a estao A (cujos pacotes esto sendo capturados e retransmitidos pela estao B) deseja acessar o servidor A. Em vez de encaminhar a transmisso, como faria normalmente, a estao B responde como se fosse o servidor, pedindo o login e senha de acesso. O usurio na estao A, sem desconfiar do ataque, faz login e recebe de volta uma mensagem de "servidor em manuteno, espere 30 minutos e tente novamente" ou algo similar. De posse da senha, o atacante pode ento se logar no servidor verdadeiro, usando a senha roubada. Muitos protocolos prevem este tipo de ataque e incluem protees contra ele. No SSH, por exemplo, o cliente verifica a identidade do servidor a cada conexo e aborta a conexo (exibindo uma mensagem de erro bastante chamativa) antes de pedir login e senha caso a identificao seja alterada. possvel detectar ataques de ARP poisoning usando o arpwatch (tambm disponvel via aptget). Ele monitora os endereos ARP usados pelas estaes e gera um log com as mudanas (com a opo de enviar relatrios por e-mail), permitindo que voc detecte anomalias. Em outras situaes, pode ser que voc mesmo, como administrador da rede, precise policiar o que os usurios esto fazendo durante o expediente na conexo da empresa. Nesse caso, sugiro que voc mantenha o servidor SSH ativo nas estaes de trabalho Linux e um servidor VNC (ou o recurso de administrao remota) nas mquinas Windows. Assim, voc pode se logar em cada uma das mquinas, sempre que necessrio e rodar o Wireshark para acompanhar o trfego de dados de cada uma, sem que o usurio tome conhecimento. Outra possibilidade seria rodar o Wireshark na mquina que compartilha a conexo, assim voc poder observar os pacotes vindos de todas as mquinas da rede. Alguns modelos de switches gerenciveis podem ser programados para direcionar todo o trfego da rede para uma determinada porta, onde voc poderia plugar um notebook para ter acesso a todo o trfego. No caso das redes wireless, a situao um pouco mais complicada, pois o meio de transmisso sempre compartilhado. Os pacotes trafegam pelo ar, por isso no possvel impedir que sejam capturados. Apesar disso, voc pode dificultar bastante as coisas ativando o uso do WPA (se possvel j utilizando o WPA2) e reduzindo a potncia do transmissor do ponto de acesso, de forma a cobrir apenas a rea necessria. Lembre-se de que apenas informaes no encriptadas podem ser capturadas. Utilizando protocolos seguros, como o SSH, as informaes capturadas no tero utilidade alguma, pois estaro encriptadas. Monitorando sua conexo durante algum tempo, voc vai logo perceber vrios tipos de abusos, como sites que enviam requisies para vrias portas da sua mquina ao serem acessados, banners de propaganda que enviam informaes sobre seus hbitos de navegao para seus sites de origem, gente escaneando suas portas usando o Nessus ou outros aplicativos similares, spywares que ficam continuamente baixando banners de propaganda ou enviando informaes e assim por diante. Essas informaes so teis no apenas para decidir quais sites e servios evitar, mas tambm para ajudar na configurao do seu firewall. Pode ser que no incio voc no entenda muito bem os dados fornecidos pelo Wireshark, mas, depois de alguns dias observando, voc vai comear a entender muito melhor como as conexes TCP funcionam.