Schutzmaßnahmen für die IT-Infrastruktur vernachlässigen oft das Einfallstor E-Mail. Zwar bringen die meisten Unternehmen einen Spam-Filter an den Start, doch dem Phishing schenken sie viel zu wenig Aufmerksamkeit. Das Phishing-Framework Gophish erlaubt mit eigenen Phishing-Kampagnen, Sicherheitslecks zu finden und auch die Anwender für diese Gefahren zu sensibilisieren.
Neun von zehn Unternehmen sind in Deutschland bereits Opfer von Datendiebstahl, Spionage und Sabotage geworden. Der Brancheverband Bitkom kalkuliert die jährliche Schadenssumme durch diese Angriffe auf über 200 Milliarden Euro. Dabei handelt es sich längst nicht mehr nur um schlecht organisierte Attacken, sondern die Art und Weise der Angriffe wird immer professioneller.
Während die meisten Unternehmen ihre sicherheitsspezifischen Maßnahmen auf die Absicherung der eigenen Infrastrukturen konzentrieren, übersehen sie, dass die eigentlichen Gefahren woanders lauern: 85 Prozent der Verletzungen der Cybersicherheit sind auf menschliches Versagen zurückzuführen und 94 Prozent aller Malware findet per E-Mail ihren Empfänger. Über 80 Prozent der sicherheitsrelevanten Ereignisse sind Phishing-Attacken. Dabei konzentrieren sich die Angreifer längst nicht mehr nur auf die scheinbar attraktiven Konzerne und Großunternehmen, sondern zunehmend auf kleine und mittlere Unternehmen (KMU). Diese KMU rücken gerade auch deshalb verstärkt in das Visier der Angreifer, weil sie deutlich weniger in ihre Sicherheitsarchitektur investieren (können).
Die Konsequenzen aus diesen Erkenntnissen: Unternehmen müssen verstärkt in ihre E-Mail-Sicherheit investieren; insbesondere den Schutz gegen Phishing-Attacken gilt es, signifikant zu verbessern. An diesem Punkt setzt Phishing Penetration Testing an, mit dessen Hilfe sich Firmen hinsichtlich der Anfälligkeit gegenüber Phishing-Attacken prüfen lassen. Mit Gophish [1] steht Ihnen ein Open-Source-Framework für exakt diese Aufgabe zur Verfügung.
Neun von zehn Unternehmen sind in Deutschland bereits Opfer von Datendiebstahl, Spionage und Sabotage geworden. Der Brancheverband Bitkom kalkuliert die jährliche Schadenssumme durch diese Angriffe auf über 200 Milliarden Euro. Dabei handelt es sich längst nicht mehr nur um schlecht organisierte Attacken, sondern die Art und Weise der Angriffe wird immer professioneller.
Während die meisten Unternehmen ihre sicherheitsspezifischen Maßnahmen auf die Absicherung der eigenen Infrastrukturen konzentrieren, übersehen sie, dass die eigentlichen Gefahren woanders lauern: 85 Prozent der Verletzungen der Cybersicherheit sind auf menschliches Versagen zurückzuführen und 94 Prozent aller Malware findet per E-Mail ihren Empfänger. Über 80 Prozent der sicherheitsrelevanten Ereignisse sind Phishing-Attacken. Dabei konzentrieren sich die Angreifer längst nicht mehr nur auf die scheinbar attraktiven Konzerne und Großunternehmen, sondern zunehmend auf kleine und mittlere Unternehmen (KMU). Diese KMU rücken gerade auch deshalb verstärkt in das Visier der Angreifer, weil sie deutlich weniger in ihre Sicherheitsarchitektur investieren (können).
Die Konsequenzen aus diesen Erkenntnissen: Unternehmen müssen verstärkt in ihre E-Mail-Sicherheit investieren; insbesondere den Schutz gegen Phishing-Attacken gilt es, signifikant zu verbessern. An diesem Punkt setzt Phishing Penetration Testing an, mit dessen Hilfe sich Firmen hinsichtlich der Anfälligkeit gegenüber Phishing-Attacken prüfen lassen. Mit Gophish [1] steht Ihnen ein Open-Source-Framework für exakt diese Aufgabe zur Verfügung.
Gophish im Überblick
Angesichts der hohen Relevanz der Phishing-Problematik und der damit verbundenen Bedrohungslage erstaunt es, dass sich die meisten Unternehmen auf Erweiterungen von etablierten Filterprogrammen wie SpamAssassin verlassen, die meist erst über ein Plug-in den effizienten Kampf gegen Phishing-Mails ermöglichen. Doch dabei genügt es nicht, kritische Nachrichten herauszufiltern; vielmehr muss der IT-Verantwortliche die eigene Infrastruktur auf etwaige Schwachstellen hin überprüfen. Dabei stellen dynamische Umgebungen und temporär eingeloggte Clients wie die Notebooks von Außendienstmitarbeitern, Tablets und Smartphones eine besondere Herausforderung dar.
An diesem Punkt setzt Gophish an. Es handelt sich um ein Framework, das die Simulation von Phishing-Angriffen erlaubt und so Phishing-Training für jeden Unternehmenstypus ermöglicht. Gophish ist in der Programmiersprache Go geschrieben. Der zentrale Gewinn dabei: Die kompilierten Binärdateien besitzen keinerlei Abhängigkeiten.
Inbetriebnahme
Sie können die Software einfach herunterladen und ausführen – eine Installation entfällt. Bei der Quellcode-basierten Installation müssen Sie das Zusammenspiel mit einem MySQL-Server konfigurieren, außerdem benötigen Sie SSL-Zertifikate und private Schlüssel. Schließlich müssen Sie über die "config.json"-Datei, die sich im Root-Verzeichnis der Gophish-Installation befindet, verschiedene Anpassungen wie die IP-Adressen- und Port-Konfiguration vornehmen. Über [2] stehen die kompilierten Pakete für Linux, macOS und Windows zum Download bereit. Zur Inbetriebnahme genügt das Entpacken und Starten des Gophish-Servers.
Penetration-Tester greifen bei ihrer Arbeit meist zu Kali Linux. Gophish ist zwar nicht in Kali vorinstalliert, doch das lässt sich mit wenigen Handgriffen ändern. Nach dem Download entpacken Sie Gophish in ein Verzeichnis Ihrer Wahl. Dann weisen Sie die notwendigen Berechtigungen zu:
chmod +x gophish
Anschließend passen Sie die Konfiguration über das config.json-File an. Neben der IP-Adresse geben Sie insbesondere die Pfade zu den SSL-Schlüsseln und -Zertifikaten an. Zum Start verwenden Sie ./gophish.
Die Durchführung von Phishing-Kampagnen ist durch drei Schritte gekennzeichnet. Im ersten generieren Sie die Templates und bestimmen die Ziele. Dann bringen Sie die Phishing-Mails auf den Weg – bei Bedarf auch zeitgesteuert. Der letzte Schritt dient dem Tracking der Ergebnisse. Diese visualisiert Gophish in seinem Dashboard in Echtzeit.
Eine Kampagne vorbereiten
Unter Windows starten Sie die Umgebung durch die Ausführung von "gophish.exe", unter macOS und Linux entsprechend über die jeweiligen Binaries. Der Zugriff auf das Webinterface erfolgt standardmäßig über die URL "https://127.0.0.1:3333/". Der Benutzername lautet "admin", das Passwort wird auf der Konsolenebene ausgegeben. Bevor Sie auf die Administrationszentrale zugreifen können, müssen Sie ein neues Passwort anlegen. Anschließend steht Ihnen die Umgebung zur Verfügung. Bei der Erstinstallation informiert Sie Gophish darüber, dass noch keine Kampagne existiert.
Im ersten Schritt legen Sie nun ein sogenanntes Sendeprofil an. Dazu wechseln Sie zum Menü "Sending Profiles" und erstellen mit "New Profile" eine erste Konfiguration. Unsere nachfolgende Beschreibung nutzt eine VM mit der IP-Adresse "192.168.178.100" und dient als Sender der Phishing-Mails. Diesem Sender weisen Sie die typischen Daten für den E-Mail-Versand zu und anschließend wartet er unter der angegebenen E-Mail-Adresse auf Nachrichten. Wichtig ist, dass Sie einen gültigen Sender-Port verwenden. Außerdem können Sie einen benutzerdefinierten Header verwenden.
Bei ersten Gehversuchen bietet es sich an, eine Testmail zu versenden, um die Funktionalität zu prüfen. Dazu klicken Sie auf "Send Test Email". Mit einem weiteren Klick auf "Save Profile" sichern Sie die erste Profilkonfiguration.
Vor dem Start einer Phishing-Kampagne müssen Sie die Ziele bestimmen, die Sie ins Visier nehmen möchten. Dabei können Sie sich verschiedener Instrumente bedienen. Wenn Sie E-Mail-Adressen aus öffentlichen Informationen sammeln wollen, um ein möglichst realistisches Szenario zu simulieren, können Sie beispielsweise zu OSINT greifen. Um die lokale Infrastruktur zu testen, benötigen Sie die lokalen E-Mail-Adressen. Unabhängig von der Datenquelle müssen Sie im Menü "Users & Groups" eine erste Gruppe anlegen. Das geschieht mit einem Klick auf "New Group". Hier vergeben Sie einen Namen und hinterlegen die Adressen Ihrer Zielgruppe. Am einfachsten geht das mit der Bulk-Importfunktion einer CSV-Datei. Damit der Import funktioniert, muss diese die Header-Werte Vorname, Nachname, E-Mail-Adresse und Position besitzen. Für erste Gehversuche können Sie einige Testempfänger auch manuell anlegen. Mit einem Klick auf "Save changes" speichern Sie die Gruppe.
Template für Phishing-Mail erstellen
Sind die Empfänger Ihrer ersten Phishing-Kampagne angelegt, ist des Erstellen eines Templates dran. Dahinter verbirgt sich die eigentliche Phishing-Mail, genauer gesagt deren Inhalt. Dazu wechseln Sie zum Menü "Email Template". Mithilfe der Importfunktion können Sie bestehenden E-Mail-Content übernehmen. Ein typischer Angriffsvektor bei Phishing-Mails ist es, den Empfänger der Nachricht zu einem Reset des Passworts zu bewegen. Dazu stellen Ihnen die Vorlagen verschiedene Funktionen zur Verfügung und Sie können mit Variablen arbeiten. In der Betreffzeile verwenden Sie folgende Konfiguration, um alle Empfänger aus einem E-Mail-Adressenpool zu kontaktieren: "Passwort zurücksetzen für {{.Email}}".
Im Textfeld beginnen Sie mit der Eingabe des Nachrichteninhalts, den Sie über die Registerkarte "HTML" gestalten. Gophish verfügt auch über einen einfachen visuellen Editor; diesen öffnen Sie mit einem Klick auf die Schaltfläche "Source". Um die Funktionsweise des Templates zu verdeutlichen, geben Sie folgenden Text in der HTML-Ansicht ein:
Hallo {{.FirstName}},
Ihr Passwort für {{.Email}} ist abgelaufen. Bitte beantragen Sie hier ein neues Passwort.
Viele Grüße,
Ihr Support-Team.
Nun müssen Sie dem Nachrichtenempfänger noch den "Hier"-Link anbieten. Dazu markieren Sie das Wort "hier", klicken auf das Ketten-Symbol und weisen dem Verweis auf der Registerkarte "Link Info" den Link-Typ "URL", das Protokoll "http://" und die Ziel-URL zu. Anstelle einer fixen URL verwenden Sie wieder eine Variable, dieses Mal "{{.URL}}". Diese Konfiguration sorgt dafür, dass Sie verschiedenen Kampagnen individuelle URLs zuweisen können. Stellen Sie sicher, dass das Hinzufügen von Tracking-Images aktiviert ist, um die Nachverfolgung der User sicherzustellen.
Auf der Landing Page Passwörter abgreifen
Das Ziel von Phishing-Mails ist es, die personenbezogenen Informationen zu gewinnen. Dabei geht es vorrangig darum, Zugangsdaten abzugreifen und diese für weitere Betrügereien einzusetzen. Dazu locken die Angreifer ihre Opfer auf Websites, die oftmals perfekt nachgebildet sind. Daher erfordert auch Ihr Phishing-Test ein entsprechendes Portal. Dies erledigen Sie mit den Funktionen des Menüs "Landing Pages".
Dieser Schritt gestaltet sich recht einfach. Mit einem Klick auf "New Page" generieren Sie schnell eine Kopie der Seite, deren URL Sie über "Import Site" hinterlegen. In unserem Beispiel simulieren wir den Zugriff auf den Admin-Bereich einer webbasierten ERP-Installation. Nach dem Import zeigt sich der HTML-Code der Seite und ein Klick auf die Schaltfläche "Source" liefert eine Vorschau.
Damit die Formulareingaben der Opfer aufgezeichnet werden, aktivieren Sie die Schaltfläche "Capture Submitted Data". Anschließend findet sich eine zweite Option namens "Capture Passwords". Diese Eingaben sind nicht verschlüsselt und wandern im Klartext in die Gophish-Datenbank. Hat das Opfer diese Daten hinterlassen, leiten Sie es zu einer weiteren Seite weiter, die beispielsweise die Änderung der Passwortaktualisierung bestätigt, damit sich das Opfer in Sicherheit wiegt. Die Weiterleitungs-URL geben Sie im Eingabefeld "Redirect to:" an. Mit einem abschließenden Klick auf "Save Page" speichern Sie die Zielseite.
Unterstützte Variablen
Innerhalb der E-Mail-Templates und der Landing Page können Sie verschiedene Variablen verwenden. Beachten Sie, dass die Software bei Vorlagen zwischen Groß- und Kleinschreibung unterscheidet. Folgende Variablen stehen Ihnen zur Verfügung:- {{.RId}}: Eindeutige ID der Zielperson.- {{.FirstName}}: Vorname der Zielperson.- {{.LastName}}: Nachname des Empfängers.- {{.Position}}: Berufliche Position.- {{.Email}}: E-Mail-Adresse.- {{.From}}: Gefälschte E-Mail-Adresse des Absenders.- {{.TrackingURL}}: URL zum Tracking-Handler.- {{.Tracker}}: Alias für <img src="{{.Tracking-URL}}"/>.- {{.URL}}: Phishing-URL.- {{.BaseURL}}: Basis-URL ohne Pfad und rid-Parameter. Sinnvoll zum Erstellen von Links zu statischen Dateien.
Eine Kampagne durchführen
Damit sind die Vorbereitungen abgeschlossen und Sie können eine erste Phishing-Kampagne auf den Weg bringen. Dazu wechseln Sie zum Menü "Campaigns" und legen mit "New Campaign" eine erste ebensolche an. Die meisten Einstellungen sind selbsterklärend: Sie weisen der Kampagne eine Bezeichnung zu, wählen das E-Mail-Template aus und bestimmen die Landing-Page. Einzig die Konfiguration des Eingabefelds "URL" bedarf der Erklärung. Hier geben Sie die IP-Adresse des Gophish-Servers an. Wichtig ist, dass dieser während der Kampagne erreichbar ist und so die Clientaktionen verfolgen und aufzeichnen kann.
Die Kampagnenkonfiguration erlaubt über das Eingabefeld "Launch Date" die zeitliche Steuerung. Geben Sie weiter das Senderprofile und die Zielgruppe an. Mit einem Klick auf "Lauch Campaign" bringen Sie ihren ersten Test auf den Weg. Nach dem Start der Kampagne werden Sie automatisch auf die Ergebnisseite weitergeleitet. Dort können Sie in Echtzeit den E-Mail-Versand und geöffnete Nachrichten verfolgen. Die Visualisierung zeigt die Anzahl der verschickten, der geöffneten sowie die Zahl der E-Mails, bei denen die Zielpersonen dem Link gefolgt sind und sogar Formulareingaben übermittelt haben.
Im Abschnitt "Details" listet das Dashboard Detailinformationen wie den Namen der Zielpersonen und den jeweiligen Status. Der Statusspalte können Sie entnehmen, welche Mitarbeiter auf die Phishing-Mail hereingefallen sind. Möglicherweise lassen sich Muster bei erfolgreichen Attacken erkennen und daraus Konsequenzen für die Anpassung der Infrastruktur ableiten. Oft hilft es auch, die Mitarbeiter noch einmal für die Problematik zu sensibilisieren.
Hinter der Reportfunktion verbirgt sich das Modul "Goreport" [3] samt Exportmöglichkeiten, die eine Weiterverarbeitung erlauben. Dazu folgen Sie im Dashboard dem Link "View Results" am Ende der jeweiligen Testkonfiguration. In der Ergebnisansicht listet Goreport die Details einer Kampagne. Aus der Detailansicht heraus ist ein Export der Ergebnisse beziehungsweise der Rohdaten in eine CSV-Datei möglich.
Für benutzerdefinierte Berichte, um beispielsweise die Ergebnisse von mehreren Kampagnen zu bündeln, steht die Gophish-API zur Verfügung. Die Entwickler stellen einen Python-API-Client zur Implementierung entsprechender Funktionen bereit. Um eine Kampagne zu beenden, führen Sie in der Ergebnisübersicht den Befehl "Complete" aus. Das automatische Beenden von Kampagnen sieht die aktuelle Gophish-Version nicht vor.
Berichte per E-Mail erhalten
Wenn Sie aufmerksam die Konsolenausgabe während des Startvorgangs von Gophish verfolgt haben, ist Ihnen vermutlich nicht entgangen, dass sich hier auch das Starten des IMAP-Managers vorfindet. Da Gophish bislang noch über keine eigene Funktion für den Versand von Report-E-Mails verfügt, haben sich die Entwickler dazu entschieden, einen Meldemechanismus zu implementieren. Der Hintergrund: Im Idealfall ist nur ein geringer Teil der Benutzer auf die gefälschten E-Mails hereingefallen, doch der Administrator kann nur dann aktiv werden, wenn er über entsprechende Vorfälle informiert ist. Daher sieht Gophish einen Meldemechanismus vor. Dazu müssen Sie eine E-Mail-Adresse einrichten, die die entsprechenden Hinweise entgegennimmt.
Gophish bietet die Zugriffsmöglichkeit auf ein IMAP-Postfach. Sobald sie eine Kampagnen-E-Mail identifiziert, meldet die Software dieses Ergebnis. Dazu müssen Sie zuvor für jeden Gophish-Benutzer die IMAP-Einstellungen über das Menü "Account Settings / Reporting Settings" konfigurieren. Mit den erweiterten Einstellungen unter "Advanced Setting" bestimmen Sie die Ordner und die Polling-Frequenz. Auch hier besteht die Möglichkeit, die Konfiguration mit einem Klick auf "Test Settings" zu prüfen.
E-Mail-Anlagen einsetzen
Ein echtes Highlight von Gophish ist die Funktion "Attachment Tracking". Sie können den Gophish-Templates Anhänge mit den Dateitypen DOCX, DOCM, PPTX, XLSX, XLSM, TXT, HTML und ICS mitgeben. Beim Start einer Kampagne werden die in diesen Dokumenten platzierten Variablen durch die entsprechenden Werte ersetzet. Der Gewinn ist offensichtlich, denn so sind Sie beispielsweise bei Office-Attachments in der Lage festzustellen, ob die Opfer diese öffnen. Dies gelingt, da beim Öffnen eines präparierten Dokuments die Office-Applikation versucht, das Bild nachzuladen. Diesen Zugriff registriert dann der Gophish-Server.
Dazu erzeugen Sie beispielsweise ein Word-Dokument und fügen über das Menü "Einfügen" im Abschnitt "Text" einen Schnellbaustein ein. Hier wählen Sie "Feld", geben in dessen Eigenschaften "{{.TrackingURL}}" ein und in den Feldoptionen aktivieren Sie die Option "Daten nicht in Dokument gespeichert". Um auch die Variable für den Vor- und Nachnamen im Word-Dokument zu verwenden, müssen Sie die Grammatik- und Rechtschreibprüfung deaktivieren, da Word ansonsten einen Fehler registriert. Gophish kann nach diesem Muster auch die Ausführung von Makros registrieren. In den Template-Einstellungen hängen Sie das modifizierte Dokument an.
Gophish verwalten
Die internen administrativen Funktionen von Gophish sind überschaubar und beschränken sich auf das Benutzermanagement, die Webhook-Konfiguration und das Logging. Neben dem Admin-User, den Sie bei der Inbetriebnahme von Gophish angelegt haben, können Sie im Menü "User Management" mit "New User" weitere Benutzer anlegen. Im zugehörigen Dialog weisen Sie neben dem Benutzernamen und dem Passwort eine Rolle zu. Sie haben die Wahl zwischen der Admin- und Standardbenutzerrolle. Das Hinzufügen weiterer Rollen sieht die aktuelle Version nicht vor.
Grundsätzlich bietet Gophish die Möglichkeit, die Ergebnisse über die API abzurufen. Doch in der Praxis ist es oftmals wünschenswert, dass Updates unmittelbar nach der Registrierung eines Ereignisses gemeldet werden. Dieses Problem löst Gophish durch die Webhook-Unterstützung. Bei einer Webhook-Konfiguration sendet Gophish eine HTTP-Anforderung an einen spezifischen Endpunkt – bei Bedarf auch signiert. Diese Anfrage enthält den JSON-Text des gerade registrierten Ereignisses. Das Ereignis lässt sich dann in einer Drittanwendung weiterverarbeiten. Die Webhook-Konfiguration erfolgt im gleichnamigen Menü.
Die Logging-Funktionen fallen ebenfalls rudimentär aus. Standardmäßig werden die Protokolle an der Standardfehlerausgabe ("stderr") ausgegeben. Sollen die Protokolle in eine Datei geschrieben werden, verwenden Sie den Befehl:
gophish.log 2>&1
Auf diesem Weg ist auch der Einsatz eines externen SIEM-Systems möglich.
Fazit
Gophish eröffnet eine neue Dimension bei der Bekämpfung von Phishing-Mails. Die Phishing-Penetration-Testing-Umgebung erlaubt es IT-Verantwortlichen, dieses Problem aus der Perspektive der Angreifer anzugehen und aus den gewonnenen Erkenntnissen Rückschlüsse bezüglich der Optimierung der Sicherheitsstrukturen zu ziehen. Trotz gewisser Einschränkungen bietet Gophish einen bedeutenden Mehrwert.