
Uma ferramenta Python para ingerir HTML e produzir código-fonte HTML adequado para campanhas de phishing.
(É uma piada de "peixe no barril". Gosto de trocadilhos!)
Uma ferramenta Python para ingerir HTML e produzir fonte HTML adequada para campanhas de phishing.
O Cooper simplifica o processo de clonar um site ou e-mail alvo para uso em uma campanha de phishing. Basta encontrar uma URL ou baixar o conteúdo bruto de um e-mail que você deseja usar e alimentar o Cooper. O Cooper clonará o conteúdo e o preparará automaticamente para uso em sua campanha. Scripts, imagens e CSS podem ser modificados para usar links diretos em vez de links relativos, links são alterados para apontar para seu servidor de phishing e formulários são atualizados para enviar dados para você — tudo em questão de segundos. O Cooper é multiplataforma e deve funcionar com macOS, Linux e Windows.
Chega de editar manualmente links e formulários depois de usar wget para buscar um site. Você pode se concentrar no trabalho de detalhes.
O Cooper oferece vários módulos com diferentes finalidades:
O módulo page é o principal módulo do Cooper. O único argumento necessário é -t para especificar uma URL alvo. Você pode então adicionar --selenium para usar opcionalmente o Selenium em vez do Requests. Basicamente, se a saída parecer errada ou estiver incompleta (talvez apenas um fundo e algum estilo, por exemplo), tente usar --selenium.
Alguns sites exigem JavaScript para gerar o conteúdo HTML. Se a saída parecer errada ou estiver incompleta, tente usar --selenium.
Além disso, você pode adicionar -u com uma URL para ser usada como URL base para imagens, scripts e folhas de estilo. O Cooper substituirá links relativos (por exemplo, /wp-content/images/foo.bar) pela URL completa para você.
Sempre forneça URLs válidas com o protocolo correto para -t e -u (ou seja, http://www.example.com).
Uma lista completa de configurações está abaixo:
O módulo email é útil quando você deseja usar um e-mail que tem como base para um novo phish. Lidar com codificação e mensagens MIME de várias partes pode ser uma dor quando feito manualmente, então deixe o Cooper fazer isso para você. Este módulo analisará o conteúdo da mensagem, descartará partes desnecessárias, como anexos, e fornecerá uma versão totalmente decodificada do corpo principal do e-mail, as partes de texto simples/texto HTML que você deseja.
Uma lista completa de configurações está abaixo:
Como mencionado acima, este módulo é único. O argumento necessário, e único, é -i para fornecer o arquivo de imagem a ser codificado. É útil se você estiver construindo sua própria página de destino ou editando uma página e precisar adicionar uma imagem. Se você decidir incorporá-la, experimente este módulo. Ele codificará em Base64 o arquivo fornecido e produzirá o texto necessário para incorporar a imagem.
O Cooper requer várias bibliotecas para raspar sites e analisar o HTML. Use pip ou pipenv para instalar tudo. Há um requirements.txt para pip e um Pipfile para ambientes virtuais pipenv. Se você usar pip, certifique-se de usar o adequado no seu sistema para Python 3.9 (por exemplo, pip3 ou pip3.9)
Você pode garantir que a versão correta seja usada chamando pip com sua versão do Python:
python3 -m pip install -r requirements.txt
Um ambiente virtual é ainda mais fácil de usar:
pipenv installpipenv shellUsar o Selenium para um navegador headless requer que o Google Chrome esteja instalado e o download de um arquivo Chromewebdriver correspondente de: https://chromedriver.chromium.org/downloads
Baixe e extraia o webdriver para a raiz deste projeto. Você pode colocá-lo em outro lugar, mas certifique-se de atualizar a configuração (veja a próxima seção).
Depois, você precisa configurar seu arquivo de configuração. O arquivo cooper.config fornecido com este repositório vem pré-configurado para uso com GoPhish (as URLs são definidas para serem alteradas para {{.URL}}). A configuração padrão também assume que você colocará um webdriver do Chrome na raiz do diretório.
O arquivo de configuração se parece com isso:
[Replacement URLs]
landing_page_url_replacement: {{.URL}}
landing_page_form_action: {{.URL}}
email_replacement_url: {{.URL}}
[Browser]
driver_path: ./chromedriver
user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.87 Safari/537.36
Faça as alterações necessárias. Você pode criar vários arquivos de configuração para diferentes plataformas de phishing que usa, servidores de ataque adicionais ou user-agents alternativos. Diferentes arquivos de configuração podem ser usados incluindo os argumentos -c ou --config junto com seu arquivo alternativo. Caso contrário, o arquivo cooper.config será usado por padrão.
A seção [Replacement URLs] contém todas as URLs que o Cooper usará ao substituir links e ações de formulário.
A landing_page_url_replacement é a URL usada para a página de destino. Você pode querer que ela seja definida para o IP do servidor de phishing para que os visitantes sejam redirecionados de volta para a página de destino ou enviados para outro lugar.
A landing_page_form_action é a URL para a qual você deseja que os dados do formulário sejam enviados quando um formulário for submetido.
A email_replacement_url é a URL usada para e-mails e deve ser definida para o domínio ou endereço IP do seu servidor de phishing.
Se alguma dessas URLs estiver vazia, o Cooper não substituirá essas URLs. Isso é mais prático para landing_page_url_replacement, onde você pode desejar que a página de destino continue apontando para links reais. No entanto, esteja avisado: a página alvo pode usar links relativos como /home.php em vez de links diretos, o que significaria que sua página de destino estará cheia de links quebrados.
A seção [Browser] é apenas para configurações relacionadas à navegação na web. Use esta seção para apontar o Selenium e o Cooper para o webdriver do seu navegador se você optar por usar um arquivo ou localização de driver diferente. O user-agent usado para navegação na web também é definido aqui. O Cooper tem um user-agent padrão que você pode substituir com o arquivo de configuração.
Imagens podem ser codificadas em Base64 antes de serem incorporadas em um modelo. Isso é feito para que os modelos não dependam do site estar disponível / manter as imagens onde estão. O tamanho adicional para um site é (provavelmente) insignificante, mas usar esta opção para um e-mail pode ser um problema. Alguns clientes de e-mail não suportam imagens Base64, como o Outlook(!). Lembre-se do cliente de e-mail do alvo.
A opção de servidor HTTP existe para permitir que você revise facilmente a saída do Cooper acessando 127.0.0.1:PORT. Você poderia simplesmente abrir o arquivo HTML, mas isso não é tão elegante.
img se parecem com: <img src="https://raw.githubusercontent.com/chrismaddalena/cooper/HEAD/static1.squarespace.com/static/52ebedcae4b0ad4aad060b4a/t/533b687ae4b01d79d0ae12a3/1437187699809/?format=1500w"\>Agradecimentos especiais a Ninjasl0th e Hagbard pela ajuda com este projeto!