Ver Feed RSS

Coluna de Segurança

Wireshark - Parte 1 - Análise de Tráfego e Captura de Senhas

Avaliação: 6 votos, 4,83 média.

O Wireshark é uma ferramenta muito poderosa que vai muito além de um simples sniffer. O que muitos não sabem é que existem várias formas de se aproveitar o potencial desta ferramenta, mas neste primeiro artigo iremos iniciar do básico. Vamos aprender a sniffar a rede de forma efetiva, criar filtros para buscar apenas a informação que queremos, veremos como um
black hat utilizaria esta ferramenta para roubar senhas e para finalizar, como utilizar o Wireshark para diagnosticar problemas de rede ou se um firewall está bloqueando os pacotes corretamente.

Antes de iniciarmos com a prática, é necessário entender o conceito de sniffing. Sniffing, a um grosso modo, seria você ficar com os ouvidos atentos para ouvir qualquer coisa que seja dita ao seu alcance.

Atualmente, quase todos os ambientes utilizam switchs e não mais hubs, o que torna o sniffing um POUCO mais difícil, pois os switchs não enviam os dados para todas as portas como um hub faz, ele envia diretamente para a porta onde se encontra o host de destino; então, se você tentar sniffar uma rede com switch você irá apenas ouvir o que for broadcast, ou sua própria conexão. Para conseguir ouvir tudo sem ser o gateway da rede, é necessário um ataque de arp spoof, ou estourar a tabela CAM do switch. Mas isto será tema para um próximo artigo, sendo necessário entender este conceito.


Utilização Básica

Agora vamos por a mão na massa: estou assumindo que você já tem o programa instalado, se não tiver clique aqui. Ao iniciar o Wireshark, a tela apresentada será parecida com esta:

Nome:      tela inicial.jpg
Visitas:     47311
Tamanho:  90,0 KB


Antes de poder iniciar a captura dos pacotes, temos que definir em qual interface iremos “escutar” o tráfego. Clique em Capture->Interfaces

Nome:      definir interface.jpg
Visitas:     46883
Tamanho:  88,9 KB


A partir daí, irá aparecer uma nova janela com a lista de interfaces detectadas automaticamente, bastando selecionar a interface desejada, clicando na caixa ao lado do nome da interface, como na imagem abaixo:

Nome:      start.png
Visitas:     46469
Tamanho:  9,4 KB


Se você clicar em Start, ele iniciará a captura automaticamente. Você poderá apenas selecionar a interface e somente depois iniciar a captura caso seja necessário.

Quando o processo de captura iniciar, você verá vários pacotes passando pela tela do Wireshark (variando de acordo com o tráfego de sua máquina/rede). Será algo parecido com isto:

Nome:      inicio_cap.jpg
Visitas:     47009
Tamanho:  130,3 KB


Para parar a captura, basta clicar no botão “Stop the running live capture”, (é o quarto da esquerda para a direita).

Nome:      stop.jpg
Visitas:     46768
Tamanho:  132,3 KB


Tome cuidado se sua rede for muito movimentada, o fluxo de dados pode até travar sua máquina, então não é aconselhável deixar o Wireshark capturando por muito tempo; como veremos a seguir, vamos deixar ele rodando apenas durante o processo de debug de uma conexão. Quanto maior a quantidade de pacotes, maior será o tempo para aplicar um filtro, encontrar um pacote, etc.

Com isto temos o básico do programa, podemos definir a interface de captura, iniciar a captura e parar. O próximo passo é conseguir identificar o que interessa em meio a tantos pacotes. Para isto, vamos começar a utilizar filtros.


Utilizando Filtros

Existe uma infinidade de filtros possíveis, mas neste primeiro momento veremos apenas como filtrar por endereço IP, porta e protocolo.

Os filtros podem ser construídos clicando em “Filter”, em seguida selecionando o filtro desejado (existe uma pequena lista de filtros pré definidos), ou digitando diretamente na caixa de texto. Após criar seu filtro, basta clicar em “Apply”; caso você queria ver a lista inteira de pacotes novamente basta clicar em “Clear”, isto removerá o filtro previamente aplicado.

Nome:      filtros.jpg
Visitas:     46551
Tamanho:  116,9 KB


Vamos a uma pequena lista de filtros:

FILTRO
EXPLICAÇÃO
EXEMPLO
ip.addr
endereço IPv4 de destinou ou origem
ip.addr == 10.10.10.10
ip.dst
endereço de destino IPv4
ip.addr == 10.10.10.10
ip.src
endereço de origem IPv4
ip.src == 10.10.10.10
ip.proto
Protocolo IP (decimal)
ip.proto == 1
ipv6.addr
endereço IPv6 de origem ou destino
ipv6.addr == 2001 :: 5
ipv6.src
endereço IPv6 de origem
ipv6.addr == 2001 :: 5
ipv6.dst
endereço de destino IPv6
ipv6.dst == 2001 :: 5
tcp.port
porta TCP de destino ou origem
tcp.port == 20
tcp.dstport
porta TCP de destino
tcp.dstport == 80
tcp.srcport
porta TCP de origem
tcp.srcport == 60234
udp.port
porta UDP de destino ou origem
udp.port == 513
udp.dstport
porta UDP de destino
udp.dstport == 513
udp.srcport
porta UDP de origem
udp.srcport == 40000
icmp.type
Código do tipo ICMP (decimal)
icmp.type == 8


Também é possível agrupar os filtros, por exemplo:

Código :
ip.src == 10.10.10.1 && tcp.dstport==80 OU ip.src == 10.10.10.1 and tcp.dstport==80
Endereço de origem 10.10.10.1 e porta de destino 80



Capturando senhas

Agora veremos como é possível capturar senhas facilmente, apenas escutando o tráfego. Para este exemplo vamos utilizar o protocolo pop3, que envia os dados em texto puro pela rede. Para isso, inicie a captura de pacotes normalmente e inicie uma sessão pop3 com seu servidor de e-mail. Caso você utilize um protocolo mais seguro como imaps ou pop3s e queria apenas ver o funcionamento do mecanismo, é possível fazer a conexão pop3 via telnet sem ter que adicionar/modificar sua conta, bastando executar o seguinte:

Código :
telnet servidordemail.com.br 110
user [email protected]
pass suasenha

Agora pare a captura, e no filtro coloque “pop” e clique em “Apply”. Feito isso, você verá apenas os pacotes da conexão pop3. Agora clique em qualquer uma delas com o botão direito e clique em “Follow TCP Stream”.

Nome:      pop3.jpg
Visitas:     46572
Tamanho:  125,2 KB


Com isso ele irá abrir uma nova janela com todo conteúdo ASCII da conexão. Como o protocolo pop3 envia tudo em texto puro, é possível ver todos os comandos executados, inclusive a senha.

Nome:      senha.png
Visitas:     46243
Tamanho:  13,1 KB


Isto pode ser transportado para qualquer conexão em texto puro, como ftp, telnet, http, etc. Basta que você altere o filtro e examine o conteúdo da conexão.

Importando Capturas Externas

Normalmente em servidores, não existe ambiente gráfico instalado e com isso você não consegue utilizar o Wireshark diretamente. Caso você queria analisar o tráfego deste servidor e não seja possível instalar o Wireshark, ou ainda se você não tiver como capturar este tráfego de outro lugar, o melhor que se pode fazer é gravar o tráfego localmente com o tcpdump e em seguida, copiar este dump para uma máquina com o Wireshark para que seja feita uma análise mais detalhada.

Vamos capturar tudo que vier ou for para o host 10.10.10.1 com a porta de destino 80 e salvar o conteúdo no arquivo captura.pcap da pasta local onde o comando foi executado. Execute no servidor:

Código :
tcpdump -i eth0 host 10.10.10.1 and dst port 80 -w captura.pcap

Assim que terminar de capturar, basta utilizar o CTRL+C, copiar o arquivo para a máquina do Wireshark e importar a captura clicando em File->Import. Depois de importado, você pode utilizar o programa normalmente como se a capture tivesse ocorrido localmente.

Analisando Conexões

Outra forma de utilização interessante é para detectar problemas de conexões. Quando você tenta estabelecer uma conexão com um servidor e ocorre um erro, o que foi que ocorreu? A porta estava realmente fechada? O firewall bloqueou? A porta na verdade estava aberta mas não houve tráfego? Tudo isso é possível determinar analisando o tráfego.

Exemplo 1:

Conexão bem sucedida na porta 80

Nome:      exemplo1.jpg
Visitas:     46299
Tamanho:  79,5 KB


Nas três primeiras linhas é possível ver o three way handshake (veja o artigo Nmap Parte 1 - Entendendo os tipos de Scanning para saber mais) sendo completado normalmente; depois o pacote com a flag FIN e em seguida, o ACK reconhecendo o fim da conexão.

Observação: Os pacotes depois do handshake e antes do FIN foram removidos para não poluir a tela.

Exemplo 2:

Conexão falha, tentativa de se conectar a uma porta fechada

Nome:      exempl2.jpg
Visitas:     46242
Tamanho:  68,4 KB


Neste caso houve a tentativa de conexão na porta 3000 que não estava aberta, e a resposta da máquina foi RST.

Exemplo 3:

Conexão falha, tentativa de se conectar a uma porta fechada por firewall.

Nome:      exemplo3.jpg
Visitas:     46404
Tamanho:  81,9 KB


Neste caso, o host estava com a porta bloqueada via firewall; devido ao comportamento padrão do iptables descartar o pacote silenciosamente, não vemos nenhum pacote de retorno.

Estes exemplos poderiam ser diagnosticados com o próprio tcpdump para quem já conhece a ferramenta, mas o intuito era ilustrar e exemplificar o uso do Wireshark. Sendo assim, nos próximos artigos iremos aprofundar a utilização desta poderosa ferramenta.

Conclusão

Como foi visto o Wireshark é uma ferramenta poderosa, com muitas utilidades, que podem ser utilizadas tanto para o bem quanto para o mal. Para se proteger dos “caras maus” é necessário entender o que eles fazem, parte disto é conhecer a ferramenta tão bem quanto eles.


Quer saber algo em específico? Deixe sua sugestão nos comentários.
Categorias
Não Categorizado

Comentários

Página 1 de 2 12 ÚltimoÚltimo
  1. Avatar de MarcusMaciel
    Fantastico.... um dos melhores artigos que ja vi no portal...
  2. Avatar de Cossil
    Parabéns, artigo muito bem escrito. Já utilizo o WireShark a algum tempo mas apenas para funções básicas de monitoramento de rede. Vou aguardar as próximas Partes de continuação do seu artigo pois tenho certeza que me serão bastante úteis.
  3. Avatar de peritinaicos
    Bom amigo fiz um teste aqui coloquei pra rodar no meu pc que está na mesma rede que uma RB, coloquei 2 filtros, primeiro filtro mandei analisar apenas o ip do gateway (RB), segundo filtro apenas a porta 8291. Assim simples assim já apareceu os pacotes trocados pela RB na porta 8291 quando fiz o login nela pelo winbox... Com esse pacote já é o bastante pra alguém mal intencionado pegar minha senha do mikrotik e "rebentar" minha RB. Isso é simples assim? Ou tem mais coisas que não entendi.
  4. Avatar de 1c3m4n
    Citação Postado originalmente por peritinaicos
    Isso é simples assim? Ou tem mais coisas que não entendi.
    Se ele estiver na mesma rede que você, e não houver qualquer tipo de proteção é sim
  5. Avatar de duh182
    Tem alguma soluçãoo para isso que o colega perguntou sombre a senha da RB ?
  6. Avatar de peritinaicos
    Fiz o teste, com o nmap fiz um filtro para o ip da rb 10.5.50.1 para todas as portas, demorou uns 2min e ela mostrou todas portas abertas, 80 8080 21 8291 entre outras. Sabendo que a porta 8291 esta ativa na rb abri o wireshark e com o filtro ((ip.addr==10.5.50.1 and tcp.port==8291)) peguei todos pacotes destino ou origem do ip da rb. Daí até achar a senha do winbox é simples? Dei uma olhada no que o wireshark capturou mais não vi a senha. OBS: foram 119 pacotes.
  7. Avatar de 1c3m4n
    Citação Postado originalmente por duh182
    Tem alguma soluçãoo para isso que o colega perguntou sombre a senha da RB ?
    Isole a rede de administração e utilize protocolos seguros que utilizem criptografia (ssh por exemplo)
  8. Avatar de 1c3m4n
    Citação Postado originalmente por peritinaicos
    Fiz o teste, com o nmap fiz um filtro para o ip da rb 10.5.50.1 para todas as portas, demorou uns 2min e ela mostrou todas portas abertas, 80 8080 21 8291 entre outras. Sabendo que a porta 8291 esta ativa na rb abri o wireshark e com o filtro ((ip.addr==10.5.50.1 and tcp.port==8291)) peguei todos pacotes destino ou origem do ip da rb. Daí até achar a senha do winbox é simples? Dei uma olhada no que o wireshark capturou mais não vi a senha. OBS: foram 119 pacotes.
    Se não tem qualquer tipo de criptografia no envio da senha é simples sim, utilize o follow tcp stream que você verá todo conteúdo ascii dos pacotes capturados.
  9. Avatar de peritinaicos
    Qual criptografia se refere? Os pacote que capturou foram do ip da rb + porta 8291... "não uso criptografia, wep ou wpa nem nada, apenas hotspot".
  10. Avatar de 1c3m4n
    Citação Postado originalmente por peritinaicos
    Qual criptografia se refere? Os pacote que capturou foram do ip da rb + porta 8291... "não uso criptografia, wep ou wpa nem nada, apenas hotspot".
    Criptografia do tráfego, da comunicação entre vc e a placa. WPA, WEP etc é criptografia para autenticação wireless, não tem nada a ver. Como eu disse utilize SSH para se conectar a placa, ou então crie um tunel ssl para isso.
Página 1 de 2 12 ÚltimoÚltimo

+ Enviar Comentário