Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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
Tools/GitHubGitHub/chrismaddalena/goreport
OSINT (Open-Source-Intelligence)Phishing-ToolsInformationsbeschaffungPhishing
GitHubchrismaddalena/goreport

Goreport

Ein Python-Skript zum Sammeln von Kampagnendaten aus Gophish und zum Erstellen eines Berichts

Repository anzeigen
202533vor 3 JahrenVon 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

Goreport v3.0, ein Gophish Reporting Tool

Dieses Skript akzeptiert Ihre Gophish-Kampagnen-ID(s) als Parameter und sammelt dann die Kampagnenergebnisse, um die Statistiken darzustellen sowie User-Agent-Parsing und Geolokalisierungssuchen für IP-Adressen durchzuführen. Goreport generiert Listen von IP-Adressen, Betriebssystemen, Browsertypen und -versionen sowie Standorten mit Zählungen, wie oft jeder Eintrag während der Kampagne gesehen wurde.

Ein Hinweis zu den Statistiken: Goreport meldet die Gesamtzahl der Ereignisse und die Anzahl der E-Mail-Empfänger, die an jedem Ereignis teilgenommen haben. Mit anderen Worten, Goreport zeigt an, wie oft Gophish ein "Clicked Link"-Ereignis aufgezeichnet hat und wie viele Empfänger einen Link angeklickt haben. Das sind sehr unterschiedliche Zahlen. Eine Kampagne, die an 10 Personen gesendet wurde, könnte 9 Geklickter-Link-Ereignisse haben, obwohl nur 3 Empfänger einen Link angeklickt haben. Zu wissen, dass Empfänger einen Link mehrfach angeklickt oder Daten mehr als einmal übermittelt haben, ist wertvolle Information, aber stellen Sie sicher, dass Sie die Zahlen nicht durcheinanderbringen.

Goreport Anforderungen

Dieses Skript erfordert einen Gophish-Server, eine aktive oder abgeschlossene Kampagne und den API-Schlüssel für Ihre Gophish-Anwendung. Erhalten Sie diesen Schlüssel, indem Sie auf den Reiter Einstellungen klicken. Der API-Schlüssel befindet sich auf der ersten Seite. Jedes Gophish-Benutzerkonto hat seinen eigenen API-Schlüssel, der als Authentifizierungsmethode für diesen Benutzer gegenüber der Gophish-API fungiert. Wenn Sie mehrere Konten mit Gophish verwenden, stellen Sie sicher, dass Sie den richtigen API-Schlüssel des Benutzers verwenden.

Diese Python-Bibliotheken werden ebenfalls benötigt:

  • Gophish
  • requests
  • xlsxwriter
  • configparser
  • python-docx
  • click
  • user-agents
  • python-dateutil (Wird von der Gophish-Bibliothek benötigt)

Goreport Einrichtung

Sie müssen einige Dinge tun, um loszulegen:

  • Führen Sie pip install -r requirements.txt aus.
  • Bearbeiten/erstellen Sie eine Gophish.config-Konfigurationsdatei, die wie die untenstehende aussieht.
    • Hinweis: Die vollständige Host-URL ist erforderlich, geben Sie also http://IP:PORT oder https://IP:PORT an.
      • Achten Sie auf die Verwendung von HTTP vs. HTTPS. Wenn Sie die falsche eingeben, erhalten Sie Verbindungsfehler.
  • Ermitteln Sie Ihre Kampagnen-ID(s), indem Sie auf Ihre Kampagne(n) klicken und die URL(s) überprüfen (es ist die Zahl am Ende).
  • Wenn Sie Word-docx-Berichte erstellen möchten, legen Sie eine Vorlagendatei "template.docx" in das Goreport-Verzeichnis (weitere Informationen unten unter Auswahl der Berichtsausgabe).

Grundlegende Verwendung

Dieses Beispiel geht davon aus, dass Gophish auf einem anderen Server läuft und HTTPS verwendet wird. Um den API-Endpunkt zu erreichen, müssen Sie SSH-Portweiterleitung mit Port 3333 (oder einem anderen lokalen Port Ihrer Wahl) verwenden:

Gophish.config

root@kitploit:~
[Gophish]
gp_host: https://127.0.0.1:3333
api_key: <YOUR_API_KEY>

[ipinfo.io]
ipinfo_token: <IPINFO_API_KEY>

[Google]
geolocate_key: <GEOLOCATE_API_KEY>

Ein grundlegender Befehl

python3 Goreport.py --id 26 --format excel

Das würde die Ergebnisse der Kampagne 26 von https://localhost:3333/api/campaigns/26/?api_key=<Your_API_Key> abrufen und die Ergebnisse in eine xlsx-Datei ausgeben.

Mehrere IDs können gleichzeitig für mehrere Berichte angegeben werden. Die IDs können als kommagetrennte Liste, als Bereich oder beides angegeben werden.

Beispiel: python3 Goreport.py --id 26,29-33,54 --format csv

Ändern von Konfigurationsdateien

Wenn Sie mehrere Gophish-Benutzerkonten oder -Server verwenden, haben Sie mehrere API-Schlüssel. Um das Wechseln zwischen Schlüsseln zu erleichtern, ermöglicht Ihnen die --config-Option von Goreport, die Standardkonfigurationsdatei gophish.config durch eine von Ihnen benannte Konfigurationsdatei zu überschreiben. Wenn dieses Argument mit einer gültigen, lesbaren Konfigurationsdatei angegeben wird, verwendet Goreport diese anstelle von gophish.config, um die API-Verbindungen einzurichten.

Sie könnten diese Option verwenden, wenn Sie beispielsweise drei Phishing-Server mit Gophish betreiben. Sie könnten drei Konfigurationsdateien einrichten, jede mit einem anderen Gophish-API-Schlüssel, und diese dann nach Bedarf verwenden.

Beispiel: python3 Goreport.py --id 26,29-33,54 --format csv --config phish_server_2.config

Kombinieren von Berichten

Wenn Sie mehrere Kampagnen mit denselben Einstellungen für verschiedene Zielgruppen durchgeführt haben, möchten Sie möglicherweise Goreport für all diese Kampagnen auf einmal ausführen und die Ergebnisse dann zu einem Bericht zusammenfassen. Dies kann durch Hinzufügen des --combine-Flags von Goreport erreicht werden.

Beispiel: python3 Goreport.py --id 26,29-33,54 --format excel --combine

Dieser Befehl würde die Ergebnisse für die Kampagnen 26, 29, 30, 31, 32, 33 und 54 sammeln. Normalerweise würde Goreport sieben xlsx-Dateien ausgeben, aber durch Hinzufügen von --combine wird Goreport angewiesen, die Ergebnisse zu kombinieren und nur einen Bericht auszugeben, als ob es sich um eine einzige große Kampagne handeln würde.

Auswahl der Berichtsausgabe

Goreport kann entweder eine Excel-Tabelle (xlsx) oder ein Word-Dokument (docx) ausgeben. Es gibt auch eine "Quick"-Berichtsoption. Wählen Sie einfach Ihr bevorzugtes Format mit dem Befehlszeilenargument --format, wie oben im Abschnitt Beispielverwendung gezeigt. Über das csv-Format gibt es nicht viel zu sagen.

Das Word-Dokument wird aus einer Vorlage, template.docx, erstellt. Legen Sie Ihre Vorlagendatei mit dem Namen template.docx in das Goreport-Verzeichnis zusammen mit dem Hauptskript. Ihre Vorlage sollte einen gewünschten Tabellenstil und Überschriftenstile für Überschrift 1 und Überschrift 1 enthalten. Benennen Sie Ihren bevorzugten Tabellenstil "Goreport" und richten Sie Ihre Überschrift-1- und -2-Stile ein.

Sie können gerne einen benutzerdefinierten Stil erstellen oder einen vorhandenen Stil verwenden. Das Einzige, worauf es ankommt, ist, dass eine template.docx-Datei existiert und sie einen "Goreport"-Tabellenstil enthält.

Um einen Stil umzubenennen, klicken Sie mit der rechten Maustaste auf den Stil, wählen Sie Tabellenstil ändern und legen Sie einen neuen Namen fest.

Die Excel-Option gibt eine schön formatierte Excel-Arbeitsmappe mit mehreren Arbeitsblättern für die verschiedenen Sammlungen von Ergebnissen und Statistiken aus. Dies ist eine gute Option, wenn Sie Ergebnistabellen einfach sortieren oder filtern möchten.

Schließlich gibt es eine "Quick"-Option. Diese erzeugt keinen Bericht. Statt eines Berichts gibt sie grundlegende Informationen über die Kampagne auf Ihrem Terminal aus. Dies ist praktisch, um schnell den Kampagnenfortschritt zu überprüfen oder nach Abschluss der Kampagne auf Ergebnisse zu verweisen.

Kampagnen als abgeschlossen markieren

Wenn Sie den Status einer Kampagne bei der Berichtserstellung auf "Complete" setzen möchten, kann Goreport Ihnen dies automatisch mit dem --complete-Flag ermöglichen. Wenn Sie dieses Flag angeben, verwendet Goreport die API, um jede Kampagnen-ID als "Complete" zu markieren, um die Kampagne zu beenden und den Status in Gophish zu aktualisieren.

Zusätzliche Informationen

Gophish führt eigene Geolokalisierungssuchen mit IP-Adressen durch und gibt Breiten- und Längengrade zurück. Dies funktioniert einigermaßen, kann aber fehlschlagen und Koordinaten von 0,0 zurückgeben oder veraltete Informationen liefern.

Goreport hat zwei Optionen, die verwendet werden können, um die Standortergebnisse zu verbessern. Die erste und empfohlene Option ist die ipinfo.io API. Der API-Zugang ist kostenlos, solange Sie weniger als 1.000 Abfragen pro 24-Stunden-Zeitraum durchführen. Das sollte für eine Phishing-Kampagne nicht allzu schwierig sein.

Wenn ein ipinfo.io-API-Schlüssel zur Konfigurationsdatei hinzugefügt wird, verwendet Goreport automatisch ipinfo.io, um aktuelle Geolokalisierungsinformationen für jede eindeutige IP-Adresse zu sammeln.

Die zweite Option ist die Google Maps API. Goreport v1.0 verwendete die Maps API, als sie noch kostenlos war. Google verlangt jetzt $0,005 pro Anfrage für die Geolocate API (wie sie jetzt heißt). Wenn Sie ipinfo.io nicht verwenden möchten, aktivieren Sie die Maps Geolocate API in einem Google-Konto und fügen Sie den API-Schlüssel zur Goreport-Konfigurationsdatei hinzu. Fügen Sie dann das --google-Flag zu Ihrem Goreport-Befehl hinzu, wann immer Sie möchten, dass Goreport die API verwendet, um die Koordinaten von Gophish nachzuschlagen und eine formatierte Adresse zu erhalten.

Technische Informationen

Wenn Sie den Code überprüfen möchten, hier eine grundlegende Übersicht des Prozesses:

Goreport.py verwendet Python 3 und die Bibliothek Command Line Interface Creation Kit (CLICK). Wenn das Skript ausgeführt wird, wird ein neues Goreport-Objekt erstellt. Die __init__-Funktion der Goreport-Klasse stellt eine Verbindung zu Ihrem Gophish-Server her, wobei der bereitgestellte API-Schlüssel zur Authentifizierung verwendet wird. Dann wird die run()-Funktion aufgerufen.

Run() verwendet die Befehlszeilenoptionen, um die Berichterstellung zu starten. Eine For-Schleife wird verwendet, um alle mit --id angegebenen Kampagnen-IDs zu durchlaufen. Ihr Gophish-Server wird für Kampagnendetails für jede einzelne ID kontaktiert.

Zuerst wird collect_all_campaign_info() aufgerufen, um grundlegende Kampagneninformationen in Variablen zu speichern. Dies umfasst Daten wie den Namen der Kampagne, wann sie durchgeführt wurde, ihren Status, den verwendeten SMTP-Server, den Namen der Vorlage und mehr.

Zweitens wird process_timeline_events() aufgerufen, um das Zeitachsenmodell von Gophish für die ID zu erhalten. Dies umfasst die von Gophish aufgezeichneten Ereignisse. Diese Funktion wird als zweite ausgeführt, weil sie einige Listen füllt, die von process_results() überprüft werden.

Drittens wird process_results() aufgerufen, um das Ergebnismodell von Gophish für die ID zu erhalten. Dies liefert Daten wie die Anzahl der Ziele in der Kampagne.

Goreport verwendet diese Schritte, um einige Listen einzurichten, um die grundlegenden Ergebnisse der Kampagne zu ermitteln, z. B. wem erfolgreich eine E-Mail gesendet wurde, welche Empfänger einen Link angeklickt haben und welche Empfänger Daten bereitgestellt haben.

Mit dieser Grundlage kann Goreport die Daten auf beliebig viele Arten für einen Bericht anordnen. Jederzeit können die Listen abgefragt werden, um zu überprüfen, ob eine bestimmte E-Mail-Adresse im Ergebnismodell in der targets_clicked-Liste erscheint, um zu bestätigen, ob dieser Empfänger einen Link angeklickt hat. Dies kann dann eine Überprüfung des Zeitachsenmodells auslösen, um Details zu sammeln. Gophish speichert die Details wie IP-Adresse und User-Agent im Zeitachsenmodell und grundlegende Informationen im Ergebnismodell.

Tool herunterladen