Anatomia de um kit de phishing: o que acontece por trás da página falsa
Uma página de phishing quase nunca é escrita à mão. Na grande maioria dos casos, ela sai de um arquivo já pronto, um kit de phishing: um ficheiro .zip que se baixa, coloca-se num servidor alugado ou invadido, e que fica operacional em poucos minutos. Eis o que se esconde por baixo do capô, da fachada até aos dados roubados.
Uma caixa de ferramentas montada em cinco minutos
A primeira peça do kit é a fachada: uma cópia do código HTML, CSS e JavaScript de um site real (um banco, um serviço de mensagens, a administração fiscal…). Obter esse código é simples, qualquer navegador permite guardá-lo. O trabalho do kit consiste em torná-lo funcional: os campos de entrada são ligados a um script que captura tudo o que aí é digitado, em vez de verificar uma palavra-passe junto do serviço real.
Para sobreviver mais tempo, o kit costuma esconder o seu próprio funcionamento. O script que captura os dados é frequentemente codificado (em Base64, por exemplo), o que o torna ilegível à primeira vista e mais difícil de detetar por um rastreador ou um scanner de segurança automatizado que percorre o código à procura de palavras-chave conhecidas. Não se trata de uma cifra forte: um humano que se dê ao trabalho de descodificar o script consegue-o sem dificuldade. É sobretudo uma forma de ganhar algumas horas ou dias antes de ser detetado.
O que a página verifica enquanto a vítima digita
Um kit bem construído não se limita a registar qualquer coisa. Ele valida os dados em tempo real, exatamente como faria o site verdadeiro, por duas razões: dar a ilusão de um formulário sério e, sobretudo, não sobrecarregar o atacante com dados inutilizáveis.
- O formato do e-mail é verificado ao pormenor (presença de um «@», um domínio válido…).
- O número do cartão bancário passa pelo algoritmo de Luhn: uma fórmula matemática simples que verifica se uma sequência de dezasseis dígitos poderia corresponder a um cartão real, sem saber nada sobre o cartão em si. Um número inventado ao acaso falha quase sempre neste teste; o kit rejeita a entrada e volta a pedir o cartão, dando a impressão de um site rigoroso.
A parte mais eficaz, e mais discreta, diz respeito à autenticação de dois fatores (MFA / 2FA). Muitos kits recentes exibem, logo após a introdução da palavra-passe, um ecrã de carregamento do tipo «A verificar…». Entretanto, nos bastidores, o atacante liga-se em tempo real ao site verdadeiro com as credenciais que acabaram de ser roubadas. O site verdadeiro envia então um código real por SMS à vítima, que o digita na página falsa com toda a confiança: o kit transmite-o de imediato ao atacante, que por sua vez o insere no site verdadeiro. A vítima só vê um ecrã que demora um pouco mais do que devia; o atacante, esse, acaba de obter acesso total, código de utilização única incluído.
Este mecanismo continua a ser um esquema artesanal, a validar manualmente pelo atacante. Existem versões muito mais automatizadas, em que um servidor intercala a página falsa entre a vítima e o site verdadeiro sem qualquer intervenção humana: é o tema do guia AiTM: quando o phishing rouba a sua sessão, não só a sua palavra-passe.
Para onde vão realmente os dados: três portas de saída
Uma vez validados, os dados têm de sair do servidor para chegar ao atacante. Três canais surgem constantemente nos kits atuais:
- Os webhooks do Telegram ou Discord: o método mais utilizado atualmente. O kit envia um simples pedido a um canal privado do Telegram ou Discord, e cada credencial roubada aparece instantaneamente numa conversa, no telemóvel do atacante. Rápido, gratuito e difícil de detetar sem olhar para o código-fonte da página.
- O envio de e-mails: o kit usa a função
mail()da linguagem PHP para transmitir cada entrada sob a forma de um pequeno relatório de texto, para um endereço escolhido pelo atacante. - Os ficheiros de registo locais: mais rudimentar, o kit escreve cada dado roubado num ficheiro oculto (
.txtou.csv) diretamente no servidor, que o atacante irá recuperar mais tarde.
Estes três canais não se excluem mutuamente: muitos kits combinam um webhook instantâneo para serem avisados de imediato, e um ficheiro de reserva para o caso de o webhook deixar de funcionar.
A cortina cai: redirecionamento e limpeza
Uma vez enviados os dados, a página falsa não para de repente: redireciona a vítima para a página de início de sessão verdadeira do serviço imitado (por exemplo login.live.com), muitas vezes com uma mensagem de erro discreta. O efeito procurado é preciso: a vítima pensa que se enganou na palavra-passe, volta a digitar as credenciais no site verdadeiro, liga-se normalmente… e não suspeita de nada.
Alguns kits vão mais longe e protegem-se a si próprios após uma primeira passagem bem-sucedida: apagando os registos que poderiam denunciar o seu funcionamento, ou bloqueando o endereço IP da vítima para que um segundo acesso (por exemplo, o de um investigador que voltasse a examinar a página) caia numa página em branco ou num erro, em vez da armadilha completa.
Como um esquema tão bem montado acaba por cair
Apesar de todo este cuidado, os kits deixam vestígios exploráveis. O mais frequente é um erro de configuração do servidor: um diretório aberto (directory listing), que permite a qualquer pessoa percorrer a pasta do site e, com ela, descarregar o arquivo .zip do kit tal como foi colocado. Uma vez esse arquivo em mãos, um investigador encontra muitas vezes, em texto simples ou pouco codificadas, as credenciais que realmente importam: o token do bot do Telegram, o identificador do canal do Discord, ou o endereço de e-mail de receção.
Estas credenciais não dizem respeito a uma única página: o mesmo token de bot é muitas vezes reutilizado em várias campanhas do mesmo atacante. Denunciá-lo ao Telegram ou ao Discord pode assim cortar de uma vez toda uma série de sites, muito além daquele que foi encontrado. É o mesmo princípio da infraestrutura de envio de e-mails, detalhado no guia Analisar um phishing: da mensagem à infraestrutura: cada elemento encontrado é também uma alavanca, e o servidor que aloja o kit continua a ser denunciável ao seu alojador como qualquer página de phishing (ver encontrar o endereço de abuso certo num alojador).
Antes de chegar a esse ponto, o primeiro reflexo continua a ser verificar o link que levou até à página. Ao colar o e-mail suspeito em Baitback, a ferramenta segue os redirecionamentos, identifica o servidor de envio e o seu alojador, e prepara diretamente as mensagens de denúncia, sem ser preciso vasculhar o código do kit por conta própria.
- Uma página de phishing quase sempre sai de um kit já pronto, clonado e depois ofuscado para atrasar a sua deteção.
- A verificação em tempo real (Luhn, formato de e-mail, MFA retransmitido em tempo real) serve para filtrar dados inutilizáveis e roubar códigos de utilização única.
- Os dados roubados saem na maioria das vezes por um webhook do Telegram ou Discord, um e-mail em PHP, ou um ficheiro de registo local.
- O redirecionamento final para o site verdadeiro serve para adormecer as suspeitas da vítima.
- Um diretório aberto pode entregar o arquivo completo do kit, e com ele, as credenciais que permitem cortar de uma vez toda a infraestrutura do atacante.