
Un outil Python pour ingérer du HTML et produire du code source HTML adapté aux campagnes de phishing.
(C'est une blague de "poisson dans un tonneau". J'aime les jeux de mots !)
Un outil Python pour ingérer du HTML et produire une source HTML adaptée aux campagnes de phishing.
Cooper simplifie le processus de clonage d'un site web ou d'un email cible pour une utilisation dans une campagne de phishing. Trouvez simplement une URL ou téléchargez le contenu brut d'un email que vous souhaitez utiliser et passez-le à Cooper. Cooper clonera le contenu puis le préparera automatiquement pour votre campagne. Les scripts, images et CSS peuvent être modifiés pour utiliser des liens directs au lieu de liens relatifs, les liens sont changés pour pointer vers votre serveur de phishing, et les formulaires sont mis à jour pour vous envoyer les données – le tout en quelques secondes. Cooper est multiplateforme et devrait fonctionner avec macOS, Linux et Windows.
Fini l'édition manuelle des liens et des formulaires après avoir utilisé wget pour récupérer un site. Vous pouvez vous concentrer sur les détails.
Cooper propose plusieurs modules avec des objectifs différents :
Page est le module principal de Cooper. Le seul argument requis est -t pour spécifier une URL cible. Vous pouvez ensuite ajouter --selenium pour utiliser éventuellement Selenium au lieu de Requests. En gros, si le résultat semble erroné ou incomplet (peut-être juste un fond et du style, par exemple), essayez d'utiliser --selenium.
Certains sites web nécessitent JavaScript pour générer le contenu HTML. Si le résultat semble erroné ou incomplet, essayez d'utiliser --selenium.
De plus, vous pouvez ajouter -u avec une URL à utiliser comme URL de base pour les images, les scripts et les feuilles de style. Cooper remplacera les liens relatifs (par exemple /wp-content/images/foo.bar) par l'URL complète pour vous.
Fournissez toujours des URL valides avec le protocole correct pour -t et -u (c'est-à-dire http://www.example.com).
Une liste complète des paramètres est ci-dessous :
Le module email est pratique lorsque vous souhaitez utiliser un email que vous possédez comme base pour un nouveau phish. Gérer l'encodage et les messages MIME multiparties peut être pénible à faire manuellement, alors laissez Cooper le faire pour vous. Ce module analysera le contenu du message, supprimera les parties inutiles comme les pièces jointes, et vous obtiendrez une version entièrement décodée du corps de l'email principal, les parties texte brut ou texte/html qui vous intéressent.
Une liste complète des paramètres est ci-dessous :
Comme mentionné précédemment, ce module est ponctuel. L'argument requis, et unique, est -i pour fournir le fichier image à encoder. Il est pratique si vous construisez votre propre page d'atterrissage ou modifiez une page et avez besoin d'ajouter une image. Si vous décidez de l'intégrer, essayez ce module. Il encodera en Base64 le fichier fourni et produira le texte nécessaire pour intégrer l'image.
Cooper nécessite plusieurs bibliothèques pour le scraping de sites web et l'analyse du HTML. Utilisez pip ou pipenv pour tout installer. Il y a un fichier requirements.txt pour pip et un Pipfile pour les environnements virtuels pipenv. Si vous utilisez pip, assurez-vous d'utiliser la version appropriée sur votre système pour Python 3.9 (par exemple, pip3 ou pip3.9).
Pour être sûr d'utiliser la bonne version, appelez pip avec votre version de Python :
python3 -m pip install -r requirements.txt
Un environnement virtuel est encore plus simple à utiliser :
pipenv installpipenv shellL'utilisation de Selenium pour un navigateur sans tête nécessite que Google Chrome soit installé et de télécharger un fichier Chromewebdriver correspondant depuis : https://chromedriver.chromium.org/downloads
Téléchargez et extrayez le webdriver à la racine de ce projet. Vous pouvez le placer ailleurs, mais assurez-vous de mettre à jour la configuration (voir la section suivante).
Ensuite, vous devez configurer votre fichier de configuration. Le fichier cooper.config fourni avec ce dépôt est préconfiguré pour une utilisation avec GoPhish (les URL sont définies pour être changées en {{.URL}}). La configuration par défaut suppose également que vous placerez un webdriver Chrome à la racine du répertoire.
Le fichier de configuration ressemble à ceci :
[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
Apportez les modifications nécessaires. Vous pouvez créer plusieurs fichiers de configuration pour différentes plateformes de phishing que vous utilisez, des serveurs d'attaque supplémentaires ou des user-agents alternatifs. Différents fichiers de configuration peuvent être utilisés en incluant les arguments -c ou --config avec votre fichier alternatif. Sinon, le fichier cooper.config sera utilisé par défaut.
La section [Replacement URLs] contient toutes les URL que Cooper utilisera lors du remplacement des liens et des actions de formulaire.
landing_page_url_replacement est l'URL utilisée pour la page d'atterrissage. Vous voudrez peut-être la définir sur l'IP du serveur de phishing afin que les visiteurs soient redirigés vers la page d'atterrissage ou envoyés ailleurs.
landing_page_form_action est l'URL vers laquelle vous souhaitez que les données du formulaire soient envoyées lors de la soumission.
email_replacement_url est l'URL utilisée pour les emails et doit être définie sur le domaine ou l'adresse IP de votre serveur de phishing.
Si l'une de ces URL est définie sur rien, Cooper ne remplacera pas ces URL. Cela est plus pratique pour landing_page_url_replacement où vous pouvez souhaiter que la page d'atterrissage continue de pointer vers de vrais liens. Cependant, attention, la page web cible peut utiliser des liens relatifs comme /home.php au lieu de liens directs, ce qui signifierait que votre page d'atterrissage sera pleine de liens brisés.
La section [Browser] est uniquement pour les paramètres liés à la navigation web. Utilisez cette section pour pointer Selenium et Cooper vers votre webdriver de navigateur si vous choisissez d'utiliser un fichier ou un emplacement de pilote différent. Le user-agent utilisé pour la navigation web est également défini ici. Cooper a un user-agent par défaut que vous pouvez remplacer avec le fichier de configuration.
Les images peuvent être encodées en Base64 avant d'être intégrées dans un modèle. Cela permet aux modèles de ne pas dépendre de la disponibilité du site web ou du maintien des images à leur emplacement. La taille ajoutée pour un site web est (fort probablement) négligeable, mais l'utilisation de cette option pour un email pourrait poser problème. Certains clients de messagerie ne prennent pas en charge les images Base64, comme Outlook(!). Gardez à l'esprit le client de messagerie de la cible.
L'option de serveur HTTP est là pour vous permettre de consulter facilement la sortie de Cooper en accédant à 127.0.0.1:PORT. Vous pourriez simplement ouvrir le fichier HTML, mais ce n'est pas aussi net.
img ressemblent à : <img src="https://raw.githubusercontent.com/chrismaddalena/cooper/HEAD/static1.squarespace.com/static/52ebedcae4b0ad4aad060b4a/t/533b687ae4b01d79d0ae12a3/1437187699809/?format=1500w"\>Remerciements particuliers à Ninjasl0th et Hagbard pour son aide sur ce projet !