Escolar Documentos
Profissional Documentos
Cultura Documentos
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 máquina e a
possibilidade de detectar rapidamente qualquer tipo de trojan, spyware ou acesso
não autorizado.
Embora ele geralmente não venha instalado por padrão, a maioria das distribuições
disponibilizam o pacote "wireshark" (ou "ethereal", de acordo com o nível de
atualização). Nas distribuições derivadas do Debian, você pode usar o apt-get,
como de praxe.
Além das versões Linux, estão disponíveis também versões para Windows 2000, XP
e Vista. Você pode baixá-las no http://www.wireshark.org/.
No caso do Linux, é possível instalar também a partir do pacote com o código fonte,
disponível na página de download (opção preferida por quem faz questão de ter
acesso à ultima versão do programa). O pacote é instalado com os conhecidos
"./configure", "make" e "make install". Como ele depende de um número
relativamente grande de compiladores e de bibliotecas, muitas delas pouco comuns,
você quase sempre vai precisar instalar alguns componentes adicionais
manualmente.
# auto-apt update
A partir daí, você pode rodar os comandos de compilação através dele, como em:
$ cd wireshark-0.99.1pre1
$ auto-apt run ./configure
$ auto-apt run make
$ su <senha>
# make install
Em seguida, você tem a opção "Update list of packets in real time". Ativando esta
opção, os pacotes vão aparecendo na tela conforme são capturados, em tempo
real. Caso contrário, você precisa capturar um certo número de pacotes para só
depois visualizar todo o bolo.
Mais abaixo estão também algumas opções 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 memória RAM
disponível, 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 número de pacotes capturados:
Na tela principal, temos a lista dos pacotes, com várias informações, como o
remetente e o destinatário de cada pacote, o protocolo utilizado (TCP, FTP, HHTP,
AIM, NetBIOS, etc.) e uma coluna com mais informações, que incluem a porta TCP
à qual o pacote foi destinado.
Os pacotes que aparecem com um micro da rede local como emissor e um domínio
ou IP da Internet como destinatário incluem requisições, upload de arquivos, e-
mails enviados, mensagens de ICQ e MSN e, em muitos casos, também senhas de
acesso. Os pacotes provenientes de micros da Internet são respostas à estas
requisições, incluindo páginas web, e-mails lidos, arquivos baixados e, assim por
diante. Através do sniffer, é possível capturar todo tipo de informação que trafegue
de forma não encriptada pela rede.
Clicando sobre um dos pacotes e, em seguida, no "Follow TCP Stream", o Ethereal
mostrará uma janela com toda a conversão, exibida em modo texto.
A maior parte do que você vai ver serão dados binários, incluindo imagens de
páginas web e arquivos diversos. Mesmo o html das páginas chega muitas vezes de
forma compactada (para economizar banda), novamente em um formato ilegível.
Mas, garimpando, você vai encontrar muitas coisas interessantes, como, por
exemplo, mensagens (MSN e ICQ) e e-mails, que, por padrão, são transmitidos em
texto puro. Usando a opção "Follow TCP Stream", é possível rastrear toda a
conversa:
Como disse anteriormente, o Wireshark pode ser usado também pelo lado negro da
força. Se você estiver em uma rede local, com micros ligados através de um hub ou
através de uma rede wireless, outro usuário pode usá-lo para capturar todas as
suas transmissões.
No ARP poisoning, o micro do atacante envia pacotes com respostas forjadas para
requisições ARP de outros micros da rede. O protocolo ARP é utilizado para
descobrir os endereços MAC dos demais micros da rede, já que os switches não
entendem endereços 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 transmissões e retransmitir os pacotes originais para os destinatários
corretos.
Os ataques de MAC flooding, por sua vez, tem como alvo o switch da rede e
trabalham dentro de um princípio bastante simples. O switch possui uma área
limitada de memória para armazenar a tabela com os endereços MAC dos micros da
rede (que permite que ele encaminhe as transmissões para as portas corretas), de
forma que, ao receber um grande número de pacotes com endereços MAC forjados,
a tabela é completamente preenchida com os endereços falsos, não deixando
espaço para os verdadeiros.
Uma das ferramentas mais usadas é o macof, um pequeno utilitário que faz parte
da suíte dsniff (que roda sobre o Linux), cujo código fonte está disponível no:
http://www.monkey.org/~dugsong/dsniff/
Uma vez que o dsniff foi instalado, usar o macof é bastante simples: basta
especificar a interface de saída, usando a opção "-i", e especificar o número de
pacotes forjados a serem enviados, usando a opção "-n", como em:
A maioria dos hub-switchs são capazes de armazenar entre 1000 e 8000 endereços
MAC na memória, de forma que bombardeando o hub-switch com 100000
endereços MAC diferentes (o que demora cerca de um minuto e meio em uma rede
de 100 megabits) você consegue chavear qualquer aparelho vulnerável para modo
failopen. A partir daí, basta lançar o Wireshark e passar a capturar todo o tráfego
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.
A partir daí, você pode ativar o arpspoof, especificando o endereço de destino dos
pacotes que deseja capturar, como em:
Com isso, o arpspoof passará a enviar pacotes de broadcast para toda a rede,
avisando todos os micros que o novo endereço MAC do "192.168.1.1" é o endereço
da sua máquina. Isso fará com que ela passe a receber o tráfego destinado a ele,
permitindo que você o capture usando o Wireshark.
Além de permitir escutar o tráfego, o ARP poisoning pode ser usado para alterar os
dados transmitidos e também para impersonar outros hosts, de forma a obter
senhas de acesso e outros dados.
Imagine, por exemplo, que a estação A (cujos pacotes estão sendo capturados e
retransmitidos pela estação B) deseja acessar o servidor A. Em vez de encaminhar
a transmissão, como faria normalmente, a estação B responde como se fosse o
servidor, pedindo o login e senha de acesso. O usuário na estação A, sem
desconfiar do ataque, faz login e recebe de volta uma mensagem de "servidor em
manutenção, espere 30 minutos e tente novamente" ou algo similar. De posse da
senha, o atacante pode então se logar no servidor verdadeiro, usando a senha
roubada.
Muitos protocolos prevêem este tipo de ataque e incluem proteções contra ele. No
SSH, por exemplo, o cliente verifica a identidade do servidor a cada conexão e
aborta a conexão (exibindo uma mensagem de erro bastante chamativa) antes de
pedir login e senha caso a identificação seja alterada.
Em outras situações, pode ser que você mesmo, como administrador da rede,
precise policiar o que os usuários estão fazendo durante o expediente na conexão
da empresa. Nesse caso, sugiro que você mantenha o servidor SSH ativo nas
estações de trabalho Linux e um servidor VNC (ou o recurso de administração
remota) nas máquinas Windows. Assim, você pode se logar em cada uma das
máquinas, sempre que necessário e rodar o Wireshark para acompanhar o tráfego
de dados de cada uma, sem que o usuário tome conhecimento.
Outra possibilidade seria rodar o Wireshark na máquina que compartilha a conexão,
assim você poderá observar os pacotes vindos de todas as máquinas da rede.
Alguns modelos de switches gerenciáveis podem ser programados para direcionar
todo o tráfego da rede para uma determinada porta, onde você poderia plugar um
notebook para ter acesso a todo o tráfego.
No caso das redes wireless, a situação é um pouco mais complicada, pois o meio de
transmissão é sempre compartilhado. Os pacotes trafegam pelo ar, por isso não é
possível impedir que sejam capturados. Apesar disso, você pode dificultar bastante
as coisas ativando o uso do WPA (se possível já utilizando o WPA2) e reduzindo a
potência do transmissor do ponto de acesso, de forma a cobrir apenas a área
necessária.
Monitorando sua conexão durante algum tempo, você vai logo perceber vários tipos
de abusos, como sites que enviam requisições para várias portas da sua máquina
ao serem acessados, banners de propaganda que enviam informações sobre seus
hábitos de navegação 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 informações e assim por diante.
Essas informações são úteis não apenas para decidir quais sites e serviços evitar,
mas também para ajudar na configuração do seu firewall. Pode ser que no início
você não entenda muito bem os dados fornecidos pelo Wireshark, mas, depois de
alguns dias observando, você vai começar a entender muito melhor como as
conexões TCP funcionam