"Phishing? Das bekämpfen wir mit Awareness-Maßnahmen" – so oder so ähnlich sind Verlautbarungen aus vielen Unternehmen zu hören. Und trotzdem ist Phishing für Kriminelle nach wie vor ein ertragreiches Geschäft. Dabei greifen die Hacker auch Cookies ab, um gültige Sitzungen trotz Zweifaktor-Authentifizierung zu übernehmen. Der Security-Tipp zeigt auf, wie Angreifer dabei vorgehen und wie Sie mit Evilginx eigene Tests fahren.
Der erste Baustein für den Schutz von Konten ist die Passwortsicherheit. Sichere Kennwörter sollten aus langen Zeichenketten mit einer großen Entropie bestehen. Die Komplexität und Länge eines Passworts ist dann wichtig, wenn ein Angreifer etwa Zugriff auf Passwort-Hashes erlangt und das Klartextpasswort mittels Bruteforce ermitteln möchte. Für Attacken aus der Ferne eignet sich dieses Vorgehen nicht, denn die meisten Plattformen machen nach einer gewissen Anzahl falscher Logins automatisch dicht.
Passwörter sind, wenn Sie den genannten Kriterien entsprechen, aber nur so lange sicher, bis ein Angreifer Zugriff auf das Kennwort im Klartext erhält. Gefährlich wird es vor allem dann, wenn Benutzer dieselben Passwörter für unterschiedliche Dienste verwenden. Gelangen nun Zugangsdaten durch einen Einbruch in die IT-Infrastruktur eines dieser Dienste in die Hände von Angreifern, probieren sie diese oft auf verschiedenen anderen Plattformen aus (Credential Stuffing).
Mehr Schutz durch Zweifaktor-Authentifizierung
Um trotz schwacher oder geleakter Kennwörter die Kontosicherheit zu gewährleisten, eignet sich die Zweifaktor-Authentifizierung. Hierfür gibt es unterschiedliche Systeme, die sich vor allem beim verwendeten Übertragungsmedium unterscheiden. Einmalcodes per SMS oder E-Mail sind heute üblich. Ebenso die Verwendung generierter Token durch eine App auf einem Mobilgerät, wie etwa mittels Google Authenticator.
Der erste Baustein für den Schutz von Konten ist die Passwortsicherheit. Sichere Kennwörter sollten aus langen Zeichenketten mit einer großen Entropie bestehen. Die Komplexität und Länge eines Passworts ist dann wichtig, wenn ein Angreifer etwa Zugriff auf Passwort-Hashes erlangt und das Klartextpasswort mittels Bruteforce ermitteln möchte. Für Attacken aus der Ferne eignet sich dieses Vorgehen nicht, denn die meisten Plattformen machen nach einer gewissen Anzahl falscher Logins automatisch dicht.
Passwörter sind, wenn Sie den genannten Kriterien entsprechen, aber nur so lange sicher, bis ein Angreifer Zugriff auf das Kennwort im Klartext erhält. Gefährlich wird es vor allem dann, wenn Benutzer dieselben Passwörter für unterschiedliche Dienste verwenden. Gelangen nun Zugangsdaten durch einen Einbruch in die IT-Infrastruktur eines dieser Dienste in die Hände von Angreifern, probieren sie diese oft auf verschiedenen anderen Plattformen aus (Credential Stuffing).
Mehr Schutz durch Zweifaktor-Authentifizierung
Um trotz schwacher oder geleakter Kennwörter die Kontosicherheit zu gewährleisten, eignet sich die Zweifaktor-Authentifizierung. Hierfür gibt es unterschiedliche Systeme, die sich vor allem beim verwendeten Übertragungsmedium unterscheiden. Einmalcodes per SMS oder E-Mail sind heute üblich. Ebenso die Verwendung generierter Token durch eine App auf einem Mobilgerät, wie etwa mittels Google Authenticator.
Gelingt es einem Angreifer jedoch, neben einem gültigen Passwort auch einen Einmaltoken zu erlangen, kann er eine gültige Sitzung starten und im Namen des Kontoinhabers agieren. Allerdings muss er dann im gleichen Moment aktiv sein wie der Benutzer. Die meisten Token sind nämlich zeitlich begrenzt gültig und unmittelbare Aktivität ist oft nicht im Sinne des Angreifers.
Um den zweiten Faktor abzugreifen, können Hacker auf existierende Darkweb-Dienste zurückgreifen: SIM-Swapping und Telefonanrufe oder Instant Messaging werden genutzt, um den Accountinhaber zu verwirren oder in Stresssituationen zu bringen und Zeitdruck zu erzeugen – bis er den zweiten Faktor herausgibt.
Neuerdings haben Angreifer es auch gezielt auf Cookies gültiger Sitzungen abgesehen. Da Benutzer ihre Sitzungen häufig nicht per Logout beenden, bleibt auch die Gültigkeit der Sitzungscookies einschließlich der Session-ID bestehen. Bei vielen Plattformen können Angreifer dann einfach mit dem Cookie eine fremde Sitzung übernehmen – ohne weitere Abfrage eines zweiten Faktors.
Phishing-Tests mit Evilginx
Um das Phishing von Logindaten und Cookies zu demonstrieren, lässt sich das Tool Evilginx [1] verwenden. Die Entwicklung der Software zielt eigentlich auf Red Teams ab, die Schwachstellen in der Unternehmensinfrastruktur aus der Perspektive eines Angreifers aufspüren. Evilginx ist also ein offensives Werkzeug, dessen sollten Sie sich beim Ausprobieren bewusst sein. Sprechen Sie den praktischen Einsatz deshalb mit der Unternehmensführung ab.
Evilginx ist technisch im Grunde ein Webproxy. Sie leiten ein potenzielles Phishing-Opfer auf eine Webseite, die dem Original möglichst ähnlich sieht, mit dem Ziel, dass die Person die eigenen Logindaten in das angebotene Formular eingibt. Evilginx fragt also das eigentliche Loginformular der Webseite ab und ersetzt beziehungsweise hinterlegt im HTML-Code der Seite notwendige Informationen für den Angriff. Der Browser des Benutzers sendet anschließend also die Logindaten wieder an Evilginx, das diese dann an die tatsächliche Webseite weiterleitet. Die Antwort des Webservers lässt sich nun durch Evilginx auswerten und der Erfolg überprüfen. Anschließend wird der Benutzer wieder auf die normale Webseite umgeleitet.
Phishlets als Regelwerk
Evilginx unterstützt mehrere Phishing-Aktivitäten zur selben Zeit. Das bedeutet, dass Sie die Logindaten unterschiedlicher Webseiten ergaunern können. Die Methodik, wie bei einer Webseite die Logindaten und Cookies übermittelt, und damit natürlich auch, wie diese Daten durch Evilginx abgephisht werden, ist in sogenannten Phishlets hinterlegt. Phishlets sind YAMLDateien mit Informationen für das Proxysetup von Evilginx, der Angabe möglicher Subdomains für eine Webseite sowie Filtern und Regulären Ausdrücken, um die tatsächliche Loginwebseite eines Dienstes anzuzeigen, zu manipulieren und übermittelte Logindaten aus den übertragenen Inhalten zu extrahieren.
Die Erstellung der Phishlets ist, je nach fokussierter Webseite, relativ komplex. Evilginx selbst bietet in der aktuellen Version keine Beispiel-Phishlets mehr an. Es gibt jedoch Benutzer-Repositories, wo für gängige Webseiten Beispiele hinterlegt sind. Das Repository unter [2] ist zwar nicht immer für alle Webseiten aktuell, allerdings ist es möglich, sich beim Erstellen eigener Phishlets daran zu orientieren.
Evilginx im Einsatz
Nachdem Sie mit git clone das Evilginx-Repository geladen haben, können Sie das Programm mit make einfach übersetzen. Sollten Sie eine Fehlermeldung erhalten, prüfen Sie, dass Sie die aktuelle Go-Version installiert haben. Nach kurzer Zeit finden Sie das Evilginx-Binary im Ordner "build", von dort können Sie es direkt starten.
Wenn Sie das Phishlet-Repository neben dem Evilginx-Repository abgelegt haben, starten Sie den Evilginx-Proxy mit dem folgenden Kommando:
Wir müssen Evilginx hier mit root-Rechten aufrufen, um die entsprechenden Ports für HTTP und HTTPS verwenden zu können. Nach dem Start landen Sie nach einer Menge Warnungen, die Sie alle erst einmal ignorieren können, und der Anzeige der vorhandenen Phishlets in der Konsole. Hier können Sie nun den Proxy konfigurieren. Als Beispiel möchten wir nun Logindaten und Sitzungscookies von Amazon abphishen, das Repository hat dafür zwei Phishlets mit den Namen amazon und Amazon--. Wir probieren beide aus.
Dafür benötigen wir zunächst eine Domain, die wir konfigurieren müssen. Fügen Sie in der Datei "/etc/vhosts" einen zusätzlichen Hosteintrag, sagen wir "amzn.phishme.com", hinzu. Anschließend setzen wir diesen Hostnamen in Evilginx für die beiden Phishlets und aktivieren diese mit den folgenden Kommandos:
: phishlets hostname amazon amzn.phishme.com
: phishlets hostname Amazon-- amzn.phishme.com
: phishlets enable amazon
: phishlets enable Amazon--
Bevor wir nun Opfer auf unseren Proxy leiten können, benötigen wir noch sogenannte Köder. Diese legen wir mit dem lure Kommando in Evilginx an:
: lures create amazon
: lures create Amazon--
Geben Sie nur lures an, erhalten Sie eine Übersicht der bereits angelegten Köder. Wenn Sie nun für einen Köder, etwa für das Phishlet Amazon--, die URL herausfinden möchten, die Sie einem Opfer nennen müssen, ermitteln Sie mit lures die ID des Köders und fragen dann die URL ab:
: lures
: lures get-url 2
Besuchen Sie dann die Webseite mit Ihrem Browser, sehen Sie natürlich einen Zertifikatsfehler. Wenn Sie Evilginx auf einem Server betreiben, können Sie sich etwa über Let's Encrypt ein passendes Zertifikat holen. Nachdem Sie gültige Logindaten eingegeben haben, können Sie in der Konsole von Evilginx entsprechende Aktivitäten erkennen. Um nun an vorhandene Logindaten zu gelangen, nutzen Sie das session-Kommando. Auch hier erhalten Sie bei Eingabe der ID in dem Kommando Detailinformationen. Wie Sie im Bild sehen können, kommen Sie so an die Logindaten und Sessioncookies für Amazon von Ihren Opfern.
Mit Evilginx ergaunerte Credentials in Form von Sitzungscookies.
Fazit
Evilginx eignet sich neben der Tätigkeit in Red-Teams auch zur Demonstration von Phishing-Aktivitäten und des möglichen Erfolgs der Phisher, etwa im Rahmen von Schulungen oder Awareness-Veranstaltungen. Der Security-Tipp hat Ihnen dafür die ersten Schritte gezeigt. Bleiben Sie aber bei der Benutzung von Evilginx im legalen Rahmen.