Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
cuddlephish — Browser-in-the-Middle (BitM) armé pour les testeurs de pénétration | Kitploit
Outils/GitHubGitHub/fkasler/cuddlephish
Outils de PhishingExploitation d'Applications WebHameçonnageTests d'IntrusionIngénierie SocialeRed Teaming
GitHubfkasler/cuddlephish

cuddlephish

Browser-in-the-Middle (BitM) armé pour les testeurs de pénétration

Voir le dépôt
6738065il y a 12 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CuddlePhish

phishy

Navigateur-dans-le-milieu (BitM) multi-utilisateur armé pour les testeurs d'intrusion. Cette attaque peut être utilisée pour contourner l'authentification multi-facteurs sur de nombreuses applications Web à haute valeur ajoutée. Elle fonctionne même pour les applications qui n'utilisent pas de jetons de session et qui ne seraient donc pas exploitables via des attaques traditionnelles de vol de jetons. Il s'agit d'un outil d'ingénierie sociale et n'exploite aucune faille technique dans le service cible.

Démarrage rapide

Cet outil est un serveur Web spécialisé. Il est conçu pour fonctionner sur un serveur Linux Debian 11 (Bullseye) et repose sur les informations d'adresse IP publique pour protéger les fonctionnalités d'administration. Ne vous attendez pas à pouvoir le tester localement sans passer par des contraintes importantes.

Attention : Chromium n'est pas pris en charge sur ARM. Bien qu'il soit techniquement possible de forcer l'utilisation d'un binaire Chromium ARM, vous perdrez toutes les fonctionnalités/protections supplémentaires de puppeteer-extra.

Cet exemple de configuration utilise Caddy pour gérer TLS, SNI et ajouter quelques en-têtes personnalisés comme 'X-Real-IP' à chaque requête. Vous n'êtes pas obligé d'utiliser Caddy avec Cuddlephish, car le même proxy inverse peut être configuré avec Nginx, Apache, etc. J'aime Caddy car il est facile à installer avec Docker et dispose de plugins pour gérer les certificats Letsencrypt pour la plupart des registraires de domaines. Le fichier Caddyfile d'exemple montre comment le configurer pour Gandi. Consultez la documentation de votre registraire.

Installez Docker, Node, XVFB et d'autres dépendances :

git clone https://github.com/fkasler/cuddlephish
cd cuddlephish
sudo bash install_deps.sh

Vous pouvez ensuite utiliser Docker pour construire Caddy avec un plugin de certificat wildcard pour votre registraire. L'exemple est pour Gandi. Consultez la documentation ici et la liste des modules de fournisseurs DNS ici. Vous pouvez modifier le Dockerfile pour votre registraire avant la construction :

sudo docker build -t caddy .

Maintenant, modifiez le fichier Caddyfile pour échanger votre domaine et votre clé API Gandi (ou autre registraire), puis démarrez Caddy. Je recommande de le lancer dans une fenêtre screen ou tmux afin de pouvoir exécuter le serveur Node dans une autre fenêtre dans un instant :

sudo docker run -p 80:80 -p 443:443 -p 2019:2019 -v $PWD/Caddyfile:/etc/caddy/Caddyfile --network=host caddy:latest

Avec Caddy qui gère le trafic pour nous sur les ports 80 et 443, nous pouvons enfin exécuter l'outil !

Installez les dépendances Node :

npm install

Quelques ajustements de configuration : ÉTAPE CRITIQUE : Assurez-vous de modifier le fichier config.json d'exemple pour ajouter votre/vos adresse(s) IP publique(s) approuvée(s) pour l'accès administrateur. Cette liste blanche d'IP est ce qui détermine l'accès à l'interface Web "/admin". Vous devez également changer la clé de socket par défaut pour quelque chose de plus sécurisé.

L'outil n'est pas configuré pour cibler des connexions par défaut, vous devrez donc en ajouter. Il existe un script 'add_target.js' pour faciliter cette étape. Exécutez simplement le script et collez l'URL du portail de connexion que vous souhaitez cibler lorsque vous y êtes invité :

node add_target.js

Cela récupérera le nom du service, le titre de l'onglet et le favicon pour vous, et ajoutera une entrée à 'targets.json'. Vous pouvez exécuter ce script plusieurs fois et il ajoutera vos nouvelles cibles. Le script nommera chaque service en fonction du domaine, sans le niveau supérieur. Ainsi, pour 'https://www.example.com/login.php', le service serait simplement 'example' lorsque vous spécifiez votre cible lorsque vous...

Exécutez-le !

node index.js example

Après quelques secondes, vous devriez voir un message dans la console lorsque votre première instance Chrome automatisée se connecte via websockets. Désormais, les visiteurs de votre site de phishing devraient voir ce qui semble être la page de connexion cible mais qui est en réalité un flux vidéo de votre instance de navigateur automatisée. Ils peuvent également interagir avec votre instance de navigateur et se connecter pour vous.

Si vous avez correctement configuré votre/vos IP(s) d'administration dans config.json, vous devriez pouvoir consulter une interface Web spéciale '/admin' pour suivre les utilisateurs, consulter les journaux de frappe, prendre le contrôle des instances de navigateur connectées, voler des cookies et supprimer les instances de navigateur indésirables.

Remarque : Vous ne verrez rien dans la page d'administration tant que vous n'aurez pas de victimes. Une fois que vous avez une victime, son instance de navigateur devrait apparaître dans l'interface administrateur.

Dépannage ("Je vois juste une page blanche")

Plusieurs personnes ont ouvert des problèmes concernant une "Page blanche", ce qui est plutôt un symptôme de nombreux problèmes possibles, et non un problème en soi. Veuillez ne pas ouvrir de problèmes sous des noms de symptômes vagues. Au lieu de cela, si vous avez une page blanche côté utilisateur, essayez d'abord d'examiner les points suivants :

  • Vérifiez que le titre de l'onglet du service cible ne contient pas de caractères spéciaux. Nous utilisons "--auto-select-desktop-capture-source" pour indiquer à notre navigateur automatisé quel onglet diffuser. Cette option échoue pour les titres contenant des caractères spéciaux. Cependant, vous n'avez pas besoin que le titre complet de l'onglet corresponde, juste une sous-chaîne suffisante pour une correspondance unique.
  • Dans le même ordre d'idée, si votre service cible envoie une redirection 302 ou similaire à votre navigateur automatisé et que le titre de l'onglet change avant que nous commencions la diffusion WebRTC vers une victime, alors "--auto-select-desktop-capture-source" échouera. Vous pouvez regarder comment add_target.js récupère cette information et la reproduire dans index.js avec une instruction console.log() pour voir si le titre a changé avant la négociation WebRTC.
  • Vérifiez que le HTML de cuddlephish se charge et qu'il n'y a pas d'erreurs JavaScript évidentes dans la console développeur côté front-end. La configuration Caddy d'exemple comporte des blocages de base sur les chaînes d'agent utilisateur comme curl. Au minimum, vous devriez voir que le titre de l'onglet et le favicon sont usurpés.
  • Assurez-vous que vous pouvez interagir avec le service et le port STUN d'exemple (stun.l.google.com:19302) depuis votre serveur.
  • Assurez-vous que le réseau depuis lequel vous travaillez autorise STUN. STUN ne fonctionne qu'avec "full-cone NAT", "(Address)-restricted-cone NAT" et "Port-restricted cone NAT". Il NE fonctionne PAS avec "Symmetric NAT".
  • Assurez-vous que vous pouvez interagir avec le service et le port STUN d'exemple (stun.l.google.com:19302) depuis le navigateur de votre victime test. Essayez d'utiliser https://icetest.info/.
  • Si votre réseau ne peut pas atteindre le serveur STUN d'exemple, changez-le pour un que vous pouvez atteindre. Si votre réseau n'autorise pas STUN, il existe une configuration d'exemple pour un serveur TURN dans les pages HTML cuddlephish et broadcast. Vous devrez configurer ou payer votre propre serveur TURN. NOTE : Un serveur TURN a les meilleures chances de connecter les victimes de phishing à vos instances de navigateur.
Télécharger l’outil