https://forumupload.ru/uploads/001b/c9/09/2/t613814.png

Introdução
Durante o pentesting, os especialistas do “Red Team” (Atacantes) simulam cenários de ataque realistas, como em condições reais de campo, para atingir seus objetivos. Phishing é um dos cenários de ataque para obter acesso inicial.

No contexto do “Red Team” (Ataques), phishing é a atividade de envio de e-mails de fontes aparentemente confiáveis ​​com a finalidade de coletar informações pessoais ou influenciar as vítimas a realizarem determinadas ações em nome dos invasores.

Embora o conceito de phishing em si pareça relativamente simples, criar uma infraestrutura de phishing e as ferramentas/estrutura necessárias para isso geralmente é uma tarefa tediosa e demorada por si só. Como resultado, a pessoa que conduz o ataque de phishing acaba se envolvendo mais na instalação da infraestrutura de phishing e na configuração do que é necessário para realizar o ataque do que no ataque em si.

Este artigo se concentra em como simplificar o cenário de ataque de phishing do Red Team e fornecer um ambiente consistente e previsível para ataques de phishing.

O que é necessário para um ataque de phishing bem-sucedido?​
O phishing pode ser realizado por meio de diversos meios de comunicação , como e-mail, mensageiros instantâneos, mensagens de texto, etc. Normalmente, em um cenário Red Team, o phishing é realizado por e-mail, pois é um método de comunicação relativamente formal e mais adequado para um ambiente corporativo típico. O objetivo final é roubar informações confidenciais ou entregar malware à vítima. Mas neste artigo vamos nos concentrar na primeira opção, ou seja, na coleta de credenciais.

https://forumupload.ru/uploads/001b/c9/09/2/t728091.png

A seguir estão os principais componentes de um ataque de phishing bem-sucedido:
Pretexto
Nome do domínio
Plataforma de software para ataques
Estrutura de phishing
Serviço de correspondência
Proxy reverso
UPS
No contexto do “Como” é necessário discutir “O quê” e “Porquê”.

1. Preposição
O primeiro passo fundamental é desenvolver um pretexto para um ataque bem-sucedido. Um pretexto é uma história inventada usada por engenheiros sociais para convencer uma vítima a fornecer informações confidenciais ou a cometer um ato criminoso.

No cenário “Red Team”, o ataque de phishing utiliza a curiosidade ou o medo da vítima para induzi-la a agir de acordo com o script/instruções dos atacantes, apesar do seu melhor julgamento. Mecanismos populares incluem formulários de emprego, atualizações de contratos médicos, faturas ou solicitações de RH, dependendo da organização e de funcionários específicos, seguidos de um link que direciona a vítima a uma página de login para coletar credenciais. Algumas ideias sobre preposições podem ser encontradas aqui . https://pretext-project.github.io/

2. Nome de domínio
O domínio é o coração de um ataque de phishing. É a porta de entrada da vítima para os problemas e a porta de entrada do “Red Team” (Atacantes) para a rede interna da organização. A escolha do nome de domínio para um ataque de phishing depende em grande parte da natureza do pretexto.

Um caso típico de coleta de credenciais é imitar a página de login de uma aplicação web real, o que requer o uso de um nome de domínio de aparência semelhante ao nome original.

Para obter um nome de domínio tentador, você pode usar técnicas como domínios "typosquat" (Typesquatting é o registro de nomes de domínio com grafia semelhante, por exemplo, "wwwsite.example" com base no usuário que deseja acessar http://www.site.example/    "), domínios incomuns (".site", "walm.art"), domínios expirados, domínios legítimos que foram hackeados, etc. Como regra geral, evite obter nomes de domínio homoglíficos (aqueles que contenham caracteres especiais, por exemplo, "éxámple.org", "ḛxamƿle.org").

3. Plataforma de software para ataques (framework)​

https://forumupload.ru/uploads/001b/c9/09/2/t723399.png

Para o processo de configuração de modelos e um ataque completo do zero, o https://getgophish.com/ como estrutura é a melhor solução de código aberto. É necessário realizar um ataque porque, caso contrário, o analista pode ficar confuso ao rastrear os endereços de e-mail das vítimas, os padrões de e-mail e os cronogramas de ataque.

Listados abaixo estão alguns dos componentes do Gophish e seus usos.
Ataques: Gophish foi projetado para lançar ataques. Isso envolve o envio de e-mails para um ou mais grupos e o rastreamento de quais foram abertos, quais links foram clicados e quais detalhes foram inseridos.
Usuários e grupos: Gophish permite gerenciar grupos de usuários envolvidos em um ataque.
Perfis de correspondência: Para enviar e-mails, Gophish requer a configuração de um retransmissor SMTP conhecido como “perfis de envio”. Para fazer isso, você pode usar serviços como

https://aws.amazon.com/ses/    https://www.mailgun.com/

etc.
Modelos de e-mail: O conteúdo dos e-mails entregues aos alvos é chamado de “modelo”. Os modelos podem ser criados do zero ou importados de um email existente. Eles também permitem que você envie anexos. Os modelos também podem rastrear quando uma pessoa visualiza um email.
Páginas de destino: após receber o e-mail, quando as vítimas clicam nos links de phishing recebidos, são apresentadas páginas HTML de destino. Modelos que permitem interceptar credenciais e redirecionar usuários para outro site após inserirem os dados. Funcionalidade menos interessante devido ao advento da autenticação multifator (2FA)

4. Estrutura de phishing
Devido ao uso generalizado de métodos de autenticação de dois fatores (2FA), a maioria das pessoas acredita que não é mais possível ser enganada. Esta visão é reforçada pelo fato de que cada vez mais sites utilizam o protocolo HTTPS por padrão.

https://github.com/kgretzky/evilginx2   é um mecanismo de ataque man-in-the-middle usado para forçar credenciais de login junto com cookies de sessão, o que por sua vez permite ignorar a proteção de autenticação de dois fatores.

A cada login bem-sucedido no site, é gerado um token de autenticação para aquela sessão, que é incluído em cada solicitação que o usuário envia ao site (cookie).

Evilginx2 rouba tokens de autenticação transmitidos na forma de cookies, o que permite ignorar login/senha e autenticação de dois fatores. Essencialmente, duplica a sessão. Nesse caso, o invasor é percebido como um usuário logado com êxito e com cookies e token(s) instalados.

Vale a pena mencionar o Phishlet .

Phishlet é uma espécie de bloco de construção do Evilginx. Arquivos de configuração em formato YAML para proxy (redirecionamento/cópia) de um aplicativo da web legítimo para um de phishing.

Esses arquivos indicam os subdomínios que precisam ser phishing, alterações na página web em tempo real, a hora e o tipo de cookies interceptados, a URL da página de login, etc.

Escrever seu próprio Phishlet é útil quando você está lidando com um aplicativo da web não muito popular. Você pode aprender como criar seu próprio Phishlet https://mrturvey.co.uk/aiovg_videos/cre … fa-bypass/

5. Serviço de correspondência
GoPhish requer um servidor SMTP para enviar e-mails. É melhor não construir seu servidor SMTP do zero, pois há uma concorrência acirrada no setor de marketing por e-mail para melhorar a reputação dos servidores SMTP.

Isso, por sua vez, garante que seus e-mails sejam entregues na caixa de entrada e não colocados na pasta de spam. A probabilidade de os e-mails serem marcados como spam para um servidor SMTP recém-configurado é quase óbvia.

Existem muitas soluções de email em massa disponíveis no mercado, como  AWS SES , Mailgun , Office 365 . Eles são bem conhecidos e têm reputação.

6. Proxy reverso
É muito importante que os metadados de toda a infraestrutura permaneçam sempre ocultos. Isso inclui endereços IP, nomes de provedores de serviços, etc. Além disso, é necessário prever a possibilidade de implementação de roteamento de tráfego condicional e regras de firewall para combater bots e robôs de busca.

Tudo isso deve ser feito em local fisicamente separado do restante da infraestrutura. Tudo isso pode ser facilmente implementado usando um proxy reverso regular, mas existe uma solução mais eficiente e conveniente que não requer grandes despesas, Cloudflare .

Usar a Cloudflare para gerenciar seu nome de domínio de phishing traz inúmeros benefícios, incluindo certificados SSL, proteção DDoS, regras WAF, captcha, proxy reverso, CDN, etc.

7. VPN (servidor virtual privado)​
Dentre os componentes listados acima, alguns são SaaS (que podem ser alugados) e outros são de código aberto e requerem auto-hospedagem. Se você utiliza GoPhish e Evilginx2, também deverá incluir um VPS em sua infraestrutura. As opções mais populares são AWS EC2 , DigitalOcean Droplets , etc.

Uma maneira simples de configurar uma infraestrutura de phishing
Isso completa o “O quê” e o “Porquê” que constituem a infraestrutura básica do phishing.

Pode parecer muito trabalhoso configurar tudo isso manualmente. Dado o quão subjetivos e dinâmicos os ataques de phishing podem ser, automatizar a configuração de todos os componentes também não é fácil, pois haverá muitas variáveis ​​a ter em conta.

Antes de listar neste artigo o que está incluído na automação e o que não está, é necessário se familiarizar com os problemas e dúvidas que os especialistas do Payatu enfrentaram na fase inicial, bem como o que significa exatamente “Configuração Fácil da Infraestrutura de Phishing” .

Descrição das tarefas e possíveis dificuldades
Existem muitas complicações ao configurar GoPhish e Evilginx2. Ambos são de código aberto, escritos em Golang e requerem compilação. É esse fato que pode levar a uma grande decepção.
Por exemplo, ao compilar esses projetos, podem surgir conflitos de dependência devido a um commit incorreto, o que exigirá muita revisão manual da base de código para ser corrigido. Não há absolutamente nenhuma previsibilidade de compilação de código bem-sucedida sempre que um ataque de phishing precisa ser lançado.
Mesmo que você não desanime, a compilação e a configuração levam um tempo significativo. Ambos os problemas podem ser resolvidos criando imagens docker para esses projetos. Leia mais sobre Docker e conteinerização aqui .

Outro desafio é fazer com que GoPhish e Evilginx2 rodem no mesmo servidor ao mesmo tempo. Ambos requerem as portas 80 e 443 e, portanto, não podem coexistir sem um proxy reverso como o NGiNX . Ele pode escutar em 80/tcp ou 443/tcp e com base no subdomínio, rotear o tráfego para o contêiner Evilginx2 ou para o contêiner GoPhish.
Portanto, outro contêiner NGiNX Docker e um YAML docker-compose bem escrito são necessários.

Por padrão, Evilginx2 oferece a geração de certificados SSL do Let's Encrypt e requer verificação de domínio. Isso é completamente inútil, pois a Cloudflare já cuidou da necessidade de SSL.
Usar um certificado autoassinado funciona de forma simples e requer que o Evilginx2 esteja sendo executado no modo de desenvolvedor .

Tudo o que resta é escrever um script que aceite os dados, nome de domínio, subdomínios, phishlet usado, etc., e faça toda a mágica (modificando docker-compose.yml, gerando um certificado autoassinado, configurando NGiNX/GoPhish /Evilginx2) em si. Bash é bastante adequado neste caso.
Todo esse trabalho já foi feito sob o nome PACU e pode ser encontrado aqui . Informações mais detalhadas sobre a SRPA, incluindo configuração e uso, serão fornecidas em breve.

Opcional
Embora este item seja opcional, é interessante porque nos permite captar mais alguns problemas que tivemos que enfrentar na criação da SRPA.

Em primeiro lugar, para que Evilginx2 funcione para NGiNX, você precisa especificar essas linhas no arquivo de configuração NGiNX .
Em segundo lugar, dado o facto de todos os três contentores estarem numa rede privada e para o Evilginx2 o tráfego provém do IPv4 privado atribuído pelo NGiNX, o Evilginx2 nunca saberá o endereço IPv4 público real da vítima que visitou o phishlet, mas registará o endereço privado Endereço IPv4 do contêiner NGiNX para cada solicitação.

Isso foi corrigido fazendo uma pequena alteração no código Evilginx2 para usar o valor X-Real-IP, que é o cabeçalho http usado pelo NGiNX para obter o IP real do cliente. Mas mesmo neste caso, o endereço IP que Evilginx2 receberá pertencerá à Cloudflare.

Para que o NGiNX consiga acessar o IP de uma vítima se comunicando com a infraestrutura da Cloudflare, outra modificação foi feita no arquivo de configuração do NGiNX , configurando o cabeçalho X-Real-IP para o valor do cabeçalho CF-Connecting-IP que ele possui. recebe da Cloudflare. Este valor representa o IP público real do visitante.

Neste ponto, ficou claro que há de fato muitos problemas com a instalação e configuração do Evilginx2 e GoPhish para um ataque de phishing típico, e que estes já foram (em teoria ainda deveriam ser) resolvidos pelo PACU, incluindo provisionamento automatizado usando Docker, docker -compose e um script simples que ainda não foi demonstrado. Uma última coisa...

O PACU automatiza a instalação e configuração de apenas dois dos componentes já discutidos, GoPhish (Attack Framework) e Evilginx2 (Phishing Framework).

Conforme mencionado acima, estes são os únicos dois componentes que devem ser colocados de forma independente e são os que apresentam maior complexidade e problemas. Embora a integração de outros componentes como Cloudflare, AWS, MailGun seja possível, porque... são serviços gerenciados e soluções SaaS (serviços alugados). Alguns são pagos, alguns oferecem testes e outros oferecem recursos limitados gratuitamente.

Ao integrar vários desses serviços, o uso do PACU exigirá exatamente a mesma pilha de serviços. Levando isso em consideração, o PACU deixa a possibilidade de obter o IP real do visitante da Cloudflare modificando o arquivo de configuração do NGiNX.

PACU​
O nome vem do peixe onívoro de água doce sul-americano Serrasalmida, parente da piranha. Como esses peixes são bastante agressivos, o nome combina bem com a natureza agressiva do Red Team e dos ataques de phishing.

Configuração
Para instalar e configurar convenientemente o PACU para Ubuntu 20.04 LTS no AWS EC2, você só precisa de um comando.
Bash:Copiar para área de transferência
curl -sSL raw.githubusercontent.com/thirdbyte/pacu/main/init.sh | bash

Isso chama o script init.sh, que instala todas as dependências como docker, docker-compose e clona o repositório. Além disso, ele copia o script setup.sh para /usr/local/bin para que possa ser chamado de qualquer lugar com o comando pacu.

Opcional
Para garantir que o PACU possa ser usado em outras distribuições Linux e ambientes não AWS EC2, você pode usar o método manual para configurá-lo. Ele pressupõe que dependências como docker e docker-compose já estejam instaladas.
Bash:Copiar para área de transferência
git clone https://github.com/thirdbyte/pacu
cd pacu
chmod +x *.sh
./build.sh
./setup.sh (для запуска pacu)

Uso
Chamar pacu a partir do shell (terminal) resultará no seguinte.
Bash:Copiar para área de transferência
Usage: pacu -d example.org -p github              # Инициализация Evilginx2
       pacu -d example.org -g url                 # Инициализация GoPhish
       pacu -d example.org -p github -g url       # Инициализация Evilginx2 с GoPhish
       pacu -d example.org -p github -g url -c    # Включить поддержку Cloudflare при инициализации
       pacu evilmux                               # Войти в tmux-сессию Evilginx2
       pacu evilmux-print                         # Напечатать stdout из tmux-сессии Evilginx2
       pacu nginx-juice                           # Напечатать juice лог из NGiNX
       pacu nginx-stop                            # Остановить NGiNX
       pacu nginx-start                           # Запуск NGiNX
       pacu remove                                # Удаление pacu

A dica de uso é autoexplicativa.
-d é usado para especificar o nome de domínio a ser usado no ataque.
-p nome do phishlet sem extensão .yaml. Esses phishlets estão localizados em /opt/pacu/evilginx/phishlets/. Assim, se você precisar usar github.yaml, o comando completo será -p github.
-g é usado para definir o subdomínio para o qual o servidor de phishing GoPhish apontará .
-c sem um valor de argumento indica que Cloudflare é usado como proxy reverso na infraestrutura, portanto, o nginx-proxy deve obter o IP real do cliente do cabeçalho HTTP CF-Connecting-IP da Cloudflare.
É interessante notar que se -p estiver faltando, Evilginx2 não será usado e, da mesma forma, se -g estiver faltando, GoPhish não será usado. Isto é útil para algumas operações onde apenas uma das duas opções é necessária.

Depois que o comando inicial for executado, por exemplo, o seguinte comando
Bash:Copiar para área de transferência
pacu -d evil.com -p github -g track -c

Toda configuração e criação da isca ocorre somente através do script. Evilginx2 será enviado diretamente para stdout. Além disso, uma lista separada por vírgulas de nomes de host que devem ser configurados como DNS na Cloudflare ou outra hospedagem DNS usada. Esses nomes de host serão obtidos automaticamente do phishlet usado e do nome de domínio especificado junto com -d.

Alguns recursos adicionais são descritos abaixo.
evilmux se conecta à sessão tmux executando Evilginx2.
evilmux-print imprime o conteúdo de uma sessão tmux em stdout.
nginx-juice imprime vários logs de suco do NGiNX, incluindo IP de origem, cookies, corpo da solicitação POST, agente do usuário, etc. (outro benefício do uso da SRPA).
nginx-stop interrompe o NGiNX caso a comunicação precise ser suspensa temporariamente.
nginx-start inicia o NGiNX após interrompê-lo com nginx-stop.
remove remove a PACU completamente.
Se você usar a opção -g, o servidor de administração GoPhish estará disponível em https://172.16.238.4:3333 . Para acessá-lo de outro cliente, use o encaminhamento de porta SSH local da seguinte maneira.
Bash:Copiar para área de transferência
ssh -L 127.0.0.1:3333:172.16.238.4:3333 user@remotehost

Detalhes de login: admin:admin@gophish

A configuração do GoPhish deve ser feita manualmente, incluindo configuração de perfis de mailing, landing page, modelos de email, usuários e grupos, ataques, etc.

Conclusão​
A motivação para este artigo foi apontar os desafios que os atacantes do Red Team normalmente enfrentam ao configurar uma infraestrutura de phishing para atividades de engenharia social e propor uma solução simples para a infraestrutura de phishing. Ainda há muitos desafios pela frente, então fique ligado em mais postagens no blog.