Phishing Methodology
Metodologia
Reconhecer a vítima
Selecione o domínio da vítima.
Realize alguma enumeração web básica procurando por portais de login usados pela vítima e decida qual você irá falsificar.
Use algumas OSINT para encontrar emails.
Preparar o ambiente
Compre o domínio que você vai usar para a avaliação de phishing
Configure os registros relacionados ao serviço de email (SPF, DMARC, DKIM, rDNS)
Configure o VPS com gophish
Preparar a campanha
Prepare o modelo de email
Prepare a página web para roubar as credenciais
Lançar a campanha!
Gerar nomes de domínio semelhantes ou comprar um domínio confiável
Técnicas de Variação de Nomes de Domínio
Palavra-chave: O nome de domínio contém uma palavra-chave importante do domínio original (por exemplo, zelster.com-management.com).
Subdomínio com hífen: Troque o ponto por um hífen de um subdomínio (por exemplo, www-zelster.com).
Novo TLD: Mesmo domínio usando um novo TLD (por exemplo, zelster.org)
Homóglifo: Ele substitui uma letra no nome de domínio por letras que se parecem (por exemplo, zelfser.com).
Transposição: Ele troca duas letras dentro do nome de domínio (por exemplo, zelsetr.com).
Singularização/Pluralização: Adiciona ou remove um "s" no final do nome de domínio (por exemplo, zeltsers.com).
Omissão: Ele remove uma das letras do nome de domínio (por exemplo, zelser.com).
Repetição: Ele repete uma das letras no nome de domínio (por exemplo, zeltsser.com).
Subdominado: Introduza um ponto dentro do nome de domínio (por exemplo, ze.lster.com).
Inserção: Ele insere uma letra no nome de domínio (por exemplo, zerltser.com).
Ponto ausente: Acrescente o TLD ao nome de domínio. (por exemplo, zelstercom.com)
Ferramentas Automáticas
Websites
Bitflipping
Existe a possibilidade de que um ou alguns bits armazenados ou em comunicação possam ser automaticamente invertidos devido a vários fatores como erupções solares, raios cósmicos ou erros de hardware.
Quando esse conceito é aplicado a solicitações DNS, é possível que o domínio recebido pelo servidor DNS não seja o mesmo que o domínio solicitado inicialmente.
Por exemplo, uma modificação de um único bit no domínio "windows.com" pode alterá-lo para "windnws.com."
Os atacantes podem aproveitar isso registrando vários domínios com inversão de bits que são semelhantes ao domínio da vítima. Sua intenção é redirecionar usuários legítimos para sua própria infraestrutura.
Para mais informações, leia https://www.bleepingcomputer.com/news/security/hijacking-traffic-to-microsoft-s-windowscom-with-bitflipping/
Comprar um domínio confiável
Você pode pesquisar em https://www.expireddomains.net/ por um domínio expirado que você poderia usar. Para garantir que o domínio expirado que você vai comprar já tenha um bom SEO, você pode verificar como ele está categorizado em:
Descobrindo Emails
https://github.com/laramies/theHarvester (100% gratuito)
https://phonebook.cz/ (100% gratuito)
Para descobrir mais endereços de email válidos ou verificar os que você já descobriu, você pode verificar se pode fazer brute-force nos servidores smtp da vítima. Aprenda como verificar/descobrir endereço de email aqui. Além disso, não se esqueça de que se os usuários usam qualquer portal web para acessar seus emails, você pode verificar se ele é vulnerável a brute force de nome de usuário, e explorar a vulnerabilidade se possível.
Configurando o GoPhish
Instalação
Você pode baixá-lo em https://github.com/gophish/gophish/releases/tag/v0.11.0
Baixe e descompacte dentro de /opt/gophish
e execute /opt/gophish/gophish
Você receberá uma senha para o usuário admin na porta 3333 na saída. Portanto, acesse essa porta e use essas credenciais para alterar a senha do admin. Você pode precisar tunelar essa porta para o local:
Configuração
Configuração do certificado TLS
Antes deste passo, você deve já ter comprado o domínio que irá utilizar e ele deve estar apontando para o IP do VPS onde você está configurando o gophish.
Configuração de Email
Comece instalando: apt-get install postfix
Em seguida, adicione o domínio nos seguintes arquivos:
/etc/postfix/virtual_domains
/etc/postfix/transport
/etc/postfix/virtual_regexp
Altere também os valores das seguintes variáveis dentro de /etc/postfix/main.cf
myhostname = <domínio>
mydestination = $myhostname, <domínio>, localhost.com, localhost
Por fim, modifique os arquivos /etc/hostname
e /etc/mailname
para o nome do seu domínio e reinicie seu VPS.
Agora, crie um registro A DNS de mail.<domínio>
apontando para o endereço IP do VPS e um registro MX DNS apontando para mail.<domínio>
Agora vamos testar o envio de um email:
Configuração do Gophish
Pare a execução do gophish e vamos configurá-lo.
Modifique /opt/gophish/config.json
para o seguinte (observe o uso de https):
Configurar o serviço gophish
Para criar o serviço gophish para que ele possa ser iniciado automaticamente e gerenciado como um serviço, você pode criar o arquivo /etc/init.d/gophish
com o seguinte conteúdo:
Terminar de configurar o serviço e verificá-lo fazendo:
Configurando servidor de e-mail e domínio
Aguarde e seja legítimo
Quanto mais antigo for um domínio, menos provável é que ele seja identificado como spam. Portanto, você deve esperar o máximo de tempo possível (pelo menos 1 semana) antes da avaliação de phishing. Além disso, se você colocar uma página sobre um setor reputacional, a reputação obtida será melhor.
Observe que mesmo que você tenha que esperar uma semana, você pode terminar de configurar tudo agora.
Configurar registro de DNS reverso (rDNS)
Defina um registro rDNS (PTR) que resolva o endereço IP do VPS para o nome de domínio.
Registro do Framework de Política do Remetente (SPF)
Você deve configurar um registro SPF para o novo domínio. Se você não sabe o que é um registro SPF, leia esta página.
Você pode usar https://www.spfwizard.net/ para gerar sua política SPF (use o IP da máquina VPS)
Este é o conteúdo que deve ser definido dentro de um registro TXT dentro do domínio:
Registo de Autenticação, Relatórios e Conformidade de Mensagens Baseadas em Domínio (DMARC)
Deve configurar um registo DMARC para o novo domínio. Se não souber o que é um registo DMARC, leia esta página.
Deve criar um novo registo DNS TXT apontando o nome do host _dmarc.<domínio>
com o seguinte conteúdo:
DomainKeys Identified Mail (DKIM)
Deve configurar um DKIM para o novo domínio. Se não souber o que é um registro DMARC, leia esta página.
Este tutorial é baseado em: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy
É necessário concatenar ambos os valores B64 que a chave DKIM gera:
Teste a pontuação da configuração do seu email
Você pode fazer isso usando https://www.mail-tester.com/ Apenas acesse a página e envie um email para o endereço que eles fornecem:
Você também pode verificar a configuração do seu email enviando um email para check-auth@verifier.port25.com
e lendo a resposta (para isso você precisará abrir a porta 25 e ver a resposta no arquivo /var/mail/root se enviar o email como root).
Verifique se você passa em todos os testes:
Você também pode enviar mensagem para um Gmail sob seu controle, e verificar os cabeçalhos do email na sua caixa de entrada do Gmail, dkim=pass
deve estar presente no campo de cabeçalho Authentication-Results
.
Remoção da Lista de Spamhouse
A página www.mail-tester.com pode indicar se o seu domínio está sendo bloqueado pelo spamhouse. Você pode solicitar a remoção do seu domínio/IP em: https://www.spamhaus.org/lookup/
Remoção da Lista Negra da Microsoft
Você pode solicitar a remoção do seu domínio/IP em https://sender.office.com/.
Criar e Lançar uma Campanha de Phishing com o GoPhish
Perfil de Envio
Defina um nome para identificar o perfil do remetente
Decida de qual conta você vai enviar os e-mails de phishing. Sugestões: noreply, support, servicedesk, salesforce...
Você pode deixar em branco o nome de usuário e a senha, mas certifique-se de marcar a opção Ignorar Erros de Certificado
É recomendado usar a funcionalidade "Enviar Email de Teste" para verificar se tudo está funcionando. Recomendo enviar os e-mails de teste para endereços de 10min mails para evitar ser colocado em listas negras durante os testes.
Modelo de Email
Defina um nome para identificar o modelo
Em seguida, escreva um assunto (nada estranho, apenas algo que você esperaria ler em um e-mail regular)
Certifique-se de ter marcado "Adicionar Imagem de Rastreamento"
Escreva o modelo de e-mail (você pode usar variáveis como no exemplo a seguir):
Observe que para aumentar a credibilidade do e-mail, é recomendável usar alguma assinatura de um e-mail do cliente. Sugestões:
Envie um e-mail para um endereço inexistente e verifique se a resposta possui alguma assinatura.
Procure por e-mails públicos como info@ex.com ou press@ex.com ou public@ex.com e envie um e-mail para eles e aguarde a resposta.
Tente contatar algum e-mail válido descoberto e aguarde a resposta
O Modelo de E-mail também permite anexar arquivos para enviar. Se você também deseja roubar desafios NTLM usando arquivos/documentos especialmente criados leia esta página.
Página de Destino
Escreva um nome
Escreva o código HTML da página da web. Observe que você pode importar páginas da web.
Marque Capturar Dados Enviados e Capturar Senhas
Defina um redirecionamento
Normalmente você precisará modificar o código HTML da página e fazer alguns testes localmente (talvez usando um servidor Apache) até gostar dos resultados. Em seguida, escreva esse código HTML na caixa. Observe que se precisar usar alguns recursos estáticos para o HTML (talvez algumas páginas CSS e JS) você pode salvá-los em /opt/gophish/static/endpoint e depois acessá-los em /static/<filename>
Para o redirecionamento, você poderia redirecionar os usuários para a página web principal legítima da vítima, ou redirecioná-los para /static/migration.html por exemplo, colocar uma roda giratória (https://loading.io/) por 5 segundos e depois indicar que o processo foi bem-sucedido.
Usuários e Grupos
Defina um nome
Importe os dados (observe que para usar o modelo do exemplo você precisa do nome, sobrenome e endereço de e-mail de cada usuário)
Campanha
Por fim, crie uma campanha selecionando um nome, o modelo de e-mail, a página de destino, a URL, o perfil de envio e o grupo. Observe que a URL será o link enviado para as vítimas
Observe que o Perfil de Envio permite enviar um e-mail de teste para ver como será o e-mail de phishing final:
Eu recomendaria enviar os e-mails de teste para endereços de e-mail de 10 minutos para evitar ser colocado em listas negras durante os testes.
Uma vez que tudo estiver pronto, basta lançar a campanha!
Clonagem de Websites
Se por algum motivo você deseja clonar o site, verifique a seguinte página:
pageClone a WebsiteDocumentos e Arquivos Com Backdoor
Em algumas avaliações de phishing (principalmente para Red Teams), você também vai querer enviar arquivos contendo algum tipo de backdoor (talvez um C2 ou talvez apenas algo que acionará uma autenticação). Confira a seguinte página para alguns exemplos:
pagePhishing Files & DocumentsPhishing MFA
Via Proxy MitM
O ataque anterior é bastante inteligente, pois você está falsificando um site real e coletando as informações inseridas pelo usuário. Infelizmente, se o usuário não inserir a senha correta ou se a aplicação que você falsificou estiver configurada com 2FA, essas informações não permitirão que você se passe pelo usuário enganado.
É aí que ferramentas como evilginx2, CredSniper e muraena são úteis. Essa ferramenta permitirá que você gere um ataque tipo MitM. Basicamente, os ataques funcionam da seguinte maneira:
Você falsifica o formulário de login da página real.
O usuário envia suas credenciais para sua página falsa e a ferramenta as envia para a página real, verificando se as credenciais funcionam.
Se a conta estiver configurada com 2FA, a página MitM solicitará isso e, uma vez que o usuário o insira, a ferramenta o enviará para a página web real.
Uma vez que o usuário estiver autenticado, você (como atacante) terá capturado as credenciais, o 2FA, o cookie e qualquer informação de cada interação sua enquanto a ferramenta estiver realizando um MitM.
Via VNC
E se, em vez de enviar a vítima para uma página maliciosa com a mesma aparência que a original, você a enviar para uma sessão VNC com um navegador conectado à página web real? Você poderá ver o que ele faz, roubar a senha, o MFA usado, os cookies... Você pode fazer isso com EvilnVNC
Detectando a detecção
Obviamente, uma das melhores maneiras de saber se você foi descoberto é pesquisar seu domínio em listas negras. Se ele aparecer listado, de alguma forma seu domínio foi detectado como suspeito. Uma maneira fácil de verificar se seu domínio aparece em alguma lista negra é usar https://malwareworld.com/
No entanto, existem outras maneiras de saber se a vítima está procurando ativamente por atividades de phishing suspeitas na natureza, conforme explicado em:
pageDetecting PhishingVocê pode comprar um domínio com um nome muito semelhante ao domínio da vítima e/ou gerar um certificado para um subdomínio de um domínio controlado por você contendo a palavra-chave do domínio da vítima. Se a vítima realizar algum tipo de interação DNS ou HTTP com eles, você saberá que ela está procurando ativamente por domínios suspeitos e você precisará ser muito furtivo.
Avalie o phishing
Use Phishious para avaliar se seu e-mail será enviado para a pasta de spam ou se será bloqueado ou bem-sucedido.
Referências
Last updated