Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cuddlephish — Bewaffneter Browser-in-the-Middle (BitM) für Penetrationstester | Kitploit
Tools/GitHubGitHub/fkasler/cuddlephish
Phishing-ToolsWebanwendungs-ExploitationPhishingPenetrationstestsSocial EngineeringRed Teaming
GitHubfkasler/cuddlephish

cuddlephish

Bewaffneter Browser-in-the-Middle (BitM) für Penetrationstester

Repository anzeigen
6738065vor 12 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CuddlePhish

phishy

Einsatzbereites Multi-User Browser-in-the-Middle (BitM) für Penetrationstester. Dieser Angriff kann verwendet werden, um die Multi-Faktor-Authentifizierung auf vielen hochwertigen Webanwendungen zu umgehen. Er funktioniert sogar bei Anwendungen, die keine Sitzungstoken verwenden und daher mit traditionellen Token-Diebstahlangriffen nicht ausnutzbar wären. Dies ist ein Social-Engineering-Tool und nutzt keine technischen Schwachstellen im Zielservice aus.

Schnellstart

Dieses Tool ist ein spezialisierter Webserver. Es ist für den Betrieb auf einem Debian 11 (Bullseye) Linux-Server ausgelegt und verlässt sich auf öffentliche IP-Informationen, um die Admin-Funktionalität zu schützen. Erwarten Sie nicht, dass Sie lokal testen können, ohne einige ernsthafte Hürden zu nehmen.

Warnung: Chromium wird auf ARM nicht unterstützt. Obwohl es technisch möglich ist, die Verwendung einer ARM-Chromium-Binärdatei zu erzwingen, verlieren Sie alle zusätzlichen Funktionen/Schutzmaßnahmen von puppeteer-extra.

Dieses Beispiel-Setup verwendet Caddy, um TLS, SNI zu handhaben und ein paar benutzerdefinierte Header wie 'X-Real-IP' zu jeder Anfrage hinzuzufügen. Sie müssen Caddy nicht mit Cuddlephish verwenden, da derselbe Reverse-Proxy mit Nginx, Apache usw. eingerichtet werden kann. Ich mag Caddy einfach, weil es einfach mit Docker zu installieren ist und Plugins zur Verwaltung von Letsencrypt-Zertifikaten für die meisten Domain-Registrare besitzt. Die beispielhafte Caddyfile zeigt, wie man es für Gandi einrichtet. Überprüfen Sie die Dokumentation für Ihren Registrar.

Installieren Sie Docker, Node, XVFB und einige andere Abhängigkeiten:

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

Sie können dann Docker verwenden, um Caddy mit einem Wildcard-Zertifikats-Plugin für Ihren Registrar zu erstellen. Das Beispiel ist für Gandi. Überprüfen Sie die Dokumentation hier und die Liste der DNS-Provider-Module hier. Sie können die Dockerfile vor dem Bauen für Ihren Registrar anpassen:

sudo docker build -t caddy .

Ändern Sie nun die Caddyfile, um Ihre Domain und den Gandi (oder anderen Registrar) API-Key auszutauschen, und starten Sie Caddy. Ich empfehle, dies in einem screen- oder tmux-Fenster zu starten, damit Sie den Node-Server gleich in einem anderen Fenster ausführen können:

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

Mit Caddy, das den Datenverkehr für uns auf den Ports 80 und 443 abfängt, können wir endlich das Tool ausführen!

Installieren Sie die Node-Abhängigkeiten:

npm install

Ein paar Konfigurationsanpassungen: KRITISCHER SCHRITT: Stellen Sie sicher, dass Sie die beispielhafte config.json anpassen, um Ihre genehmigte(n) öffentliche(n) IP(s) für den Admin-Zugriff hinzuzufügen. Diese Whitelist von IPs bestimmt den Zugriff auf das "/admin"-Webinterface. Sie sollten auch den Standardschlüssel für den Socket durch etwas Sichereres ersetzen.

Das Tool ist standardmäßig nicht auf Login-Seiten eingestellt, daher müssen Sie einige hinzufügen. Es gibt ein Skript 'add_target.js', das diesen Schritt einfach macht. Führen Sie einfach das Skript aus und fügen Sie die URL des Login-Portals, das Sie anvisieren möchten, ein, wenn Sie dazu aufgefordert werden:

node add_target.js

Dieses Skript holt den Dienstnamen, den Tab-Titel und das Favicon für Sie und fügt einen Eintrag in 'targets.json' hinzu. Sie können dieses Skript mehrmals ausführen, und es wird Ihre neuen Ziele hinzufügen. Das Skript benennt jeden Dienst basierend auf der Domain, ohne die Top-Level-Domain. Für 'https://www.example.com/login.php' würde der Dienst also nur 'example' sein, wenn Sie Ihr Ziel angeben, wenn Sie...

Führen Sie es aus!

node index.js example

Nach ein paar Sekunden sollten Sie eine Meldung in der Konsole sehen, wenn Ihre erste automatisierte Chrome-Instanz über Websockets eingecheckt wird. Jetzt sollten Besucher Ihrer Phishing-Seite das sehen, was wie die Ziel-Login-Seite aussieht, aber tatsächlich ein Video-Feed Ihrer automatisierten Browser-Instanz ist. Sie können auch mit Ihrer Browser-Instanz interagieren und sich für Sie einloggen.

Wenn Sie Ihre Admin-IP(s) korrekt in der config.json konfiguriert haben, sollten Sie in der Lage sein, ein spezielles '/admin'-Webinterface anzuzeigen, um Benutzer zu verfolgen, Tastenprotokolle anzuzeigen, die Kontrolle über eingeloggte Browser-Instanzen zu übernehmen, Cookies zu stehlen und unerwünschte Browser-Instanzen zu löschen.

Hinweis: Sie werden nichts auf der Admin-Seite sehen, bis Sie einige Opfer haben. Sobald Sie ein Opfer haben, sollte dessen Browser-Instanz auf der Admin-Benutzeroberfläche erscheinen.

Fehlerbehebung ("Ich sehe nur eine leere Seite")

Ich hatte mehrere Leute, die Issues über eine 'Blank White Page' eröffnet haben, was eher ein Symptom für viele mögliche Probleme ist, und kein Problem an sich. Bitte eröffnen Sie keine Issues unter vagen Symptomnamen. Versuchen Sie stattdessen, wenn Sie auf der Benutzerseite eine leere Seite haben, zunächst Folgendes zu überprüfen:

  • Überprüfen Sie, ob der Tab-Titel des Zieldienstes keine Sonderzeichen enthält. Wir verwenden '--auto-select-desktop-capture-source', um unserem automatisierten Browser mitzuteilen, welcher Tab gestreamt werden soll. Diese Option schlägt bei Titeln mit Sonderzeichen fehl. Sie benötigen jedoch nicht den vollständigen Tab-Titel, sondern nur einen ausreichenden Teilstring für eine eindeutige Übereinstimmung.
  • In der gleichen Richtung: Wenn Ihr Zieldienst eine 302 oder ähnliche Weiterleitung an Ihren automatisierten Browser sendet und sich der Tab-Titel ändert, bevor wir die WebRTC-Übertragung an ein Opfer starten, dann wird '--auto-select-desktop-capture-source' fehlschlagen. Sie können sich ansehen, wie add_target.js diese Informationen abruft, und dies in index.js zusammen mit einer console.log()-Anweisung replizieren, um zu sehen, ob sich der Titel geändert hat, bevor WebRTC ausgehandelt wird.
  • Überprüfen Sie, ob das cuddlephish-HTML geladen wird und ob es keine offensichtlichen JavaScript-Fehler in der Entwicklerkonsole auf der Frontend-Seite gibt. Die beispielhafte Caddy-Konfiguration enthält einige grundlegende Sperren für User-Agent-Strings wie curl. Mindestens sollten Sie sehen, dass der Tab-Titel und das Favicon gefälscht werden.
  • Stellen Sie sicher, dass Sie von Ihrem Server aus mit dem beispielhaften STUN-Dienst und Port (stun.l.google.com:19302) interagieren können.
  • Stellen Sie sicher, dass das Netzwerk, von dem aus Sie arbeiten, STUN überhaupt zulässt. STUN funktioniert nur mit 'Full-Cone NAT', 'Address-Restricted-Cone NAT' und 'Port-Restricted-Cone NAT'. Es funktioniert NICHT mit 'Symmetric NAT'.
  • Stellen Sie sicher, dass Sie von Ihrem Test-Opfer-Browser aus mit dem beispielhaften STUN-Dienst und Port (stun.l.google.com:19302) interagieren können. Versuchen Sie es mit https://icetest.info/.
  • Wenn Ihr Netzwerk den beispielhaften STUN-Server nicht erreichen kann, ändern Sie ihn zu einem, den Sie erreichen können. Wenn Ihr Netzwerk STUN nicht zulässt, gibt es eine beispielhafte Konfiguration für einen TURN-Server in den cuddlephish- und broadcast-HTML-Seiten. Sie müssen Ihren eigenen TURN-Server einrichten oder bezahlen. HINWEIS: Ein TURN-Server hat die besten Chancen, Phishing-Opfer mit Ihren Browser-Instanzen zu verbinden.
Tool herunterladen