GWS - Google Platforms Phishing

Support HackTricks

Generische Phishing-Methodologie

Google Groups Phishing

Offensichtlich können Mitglieder in der Workspace standardmäßig Gruppen erstellen und Personen einladen. Du kannst dann die E-Mail, die an den Benutzer gesendet wird, mit einigen Links ändern. Die E-Mail wird von einer Google-Adresse kommen, sodass sie legitim aussieht und die Leute möglicherweise auf den Link klicken.

Es ist auch möglich, die FROM-Adresse als die Google-Gruppen-E-Mail festzulegen, um mehr E-Mails an die Benutzer innerhalb der Gruppe zu senden, wie im folgenden Bild, wo die Gruppe google--support@googlegroups.com erstellt wurde und eine E-Mail an alle Mitglieder der Gruppe gesendet wurde (die ohne Zustimmung hinzugefügt wurden).

Google Chat Phishing

Du könntest entweder einen Chat mit einer Person beginnen, indem du nur ihre E-Mail-Adresse hast, oder eine Einladung zum Gespräch senden. Darüber hinaus ist es möglich, einen Space zu erstellen, der jeden Namen haben kann (z.B. "Google Support") und Mitglieder einzuladen. Wenn sie akzeptieren, könnten sie denken, dass sie mit dem Google Support sprechen:

In meinen Tests haben die eingeladenen Mitglieder jedoch nicht einmal eine Einladung erhalten.

Du kannst überprüfen, wie das in der Vergangenheit funktioniert hat: https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s

Google Doc Phishing

Früher war es möglich, ein anscheinend legitimes Dokument zu erstellen und in einem Kommentar eine E-Mail (wie @user@gmail.com) zu erwähnen. Google sendete eine E-Mail an diese E-Mail-Adresse, um zu benachrichtigen, dass sie im Dokument erwähnt wurden. Heutzutage funktioniert das nicht mehr, aber wenn du dem Opfer E-Mail-Zugriff auf das Dokument gibst, wird Google eine E-Mail senden, die dies anzeigt. Dies ist die Nachricht, die erscheint, wenn du jemanden erwähnst:

Opfer könnten Schutzmechanismen haben, die verhindern, dass E-Mails, die darauf hinweisen, dass ein externes Dokument mit ihnen geteilt wurde, ihre E-Mail erreichen.

Google Calendar Phishing

Du kannst ein Kalenderevent erstellen und so viele E-Mail-Adressen des Unternehmens, das du angreifst, hinzufügen, wie du hast. Plane dieses Kalenderevent in 5 oder 15 Minuten von der aktuellen Zeit. Lass das Event legitim aussehen und füge einen Kommentar und einen Titel hinzu, der darauf hinweist, dass sie etwas lesen müssen (mit dem Phishing-Link).

Dies ist die Warnung, die im Browser mit dem Meeting-Titel "Leute entlassen" erscheint, sodass du einen phishinger Titel festlegen könntest (und sogar den Namen ändern, der mit deiner E-Mail verbunden ist).

Um es weniger verdächtig aussehen zu lassen:

  • Richte es so ein, dass Empfänger die anderen eingeladenen Personen nicht sehen können

  • Sende keine E-Mails, die über das Event benachrichtigen. Dann werden die Leute nur ihre Warnung über ein Meeting in 5 Minuten sehen und dass sie diesen Link lesen müssen.

  • Offensichtlich kannst du über die API einstellen, dass die Personen das Event akzeptiert haben und sogar Kommentare in ihrem Namen erstellen.

App Scripts Redirect Phishing

Es ist möglich, ein Skript in https://script.google.com/ zu erstellen und es als Webanwendung zu exponieren, die für jeden zugänglich ist, die die legitime Domain script.google.com verwendet. Mit etwas Code wie dem folgenden könnte ein Angreifer das Skript dazu bringen, beliebige Inhalte auf dieser Seite zu laden, ohne die Domain zu stoppen:

function doGet() {
return HtmlService.createHtmlOutput('<meta http-equiv="refresh" content="0;url=https://cloud.hacktricks.xyz/pentesting-cloud/workspace-security/gws-google-platforms-phishing#app-scripts-redirect-phishing">')
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}

Zum Beispiel, wenn Sie https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec aufrufen, sehen Sie:

Beachten Sie, dass eine Warnung erscheint, während der Inhalt in einem iframe geladen wird.

App Scripts OAuth Phishing

Es ist möglich, App Scripts zu erstellen, die an Dokumente angehängt sind, um zu versuchen, Zugriff auf das OAuth-Token eines Opfers zu erhalten. Für weitere Informationen siehe:

OAuth Apps Phishing

Eine der vorherigen Techniken kann verwendet werden, um den Benutzer dazu zu bringen, auf eine Google OAuth-Anwendung zuzugreifen, die den Benutzer um Zugriff bittet. Wenn der Benutzer der Quelle vertraut, könnte er der Anwendung vertrauen (auch wenn sie nach hochprivilegierten Berechtigungen fragt).

Beachten Sie, dass Google in mehreren Fällen eine hässliche Aufforderung anzeigt, die warnt, dass die Anwendung nicht vertrauenswürdig ist, und Workspace-Administratoren können sogar verhindern, dass Personen OAuth-Anwendungen akzeptieren.

Google erlaubt es, Anwendungen zu erstellen, die im Namen von Benutzern mit mehreren Google-Diensten interagieren: Gmail, Drive, GCP...

Beim Erstellen einer Anwendung, die im Namen anderer Benutzer agiert, muss der Entwickler eine OAuth-Anwendung innerhalb von GCP erstellen und die Scopes (Berechtigungen) angeben, die die Anwendung benötigt, um auf die Benutzerdaten zuzugreifen. Wenn ein Benutzer diese Anwendung verwenden möchte, wird er aufgefordert, zu akzeptieren, dass die Anwendung Zugriff auf seine in den Scopes angegebenen Daten hat.

Dies ist eine sehr verlockende Möglichkeit, nicht-technische Benutzer dazu zu bringen, Anwendungen zu verwenden, die auf sensible Informationen zugreifen, da sie die Konsequenzen möglicherweise nicht verstehen. In Unternehmenskonten gibt es jedoch Möglichkeiten, dies zu verhindern.

Unbestätigte App-Aufforderung

Wie bereits erwähnt, wird Google dem Benutzer immer eine Aufforderung zur Annahme der Berechtigungen anzeigen, die er der Anwendung in seinem Namen erteilt. Wenn die Anwendung jedoch als gefährlich eingestuft wird, zeigt Google zuerst eine Aufforderung an, die darauf hinweist, dass sie gefährlich ist und es dem Benutzer schwieriger macht, der App die Berechtigungen zu erteilen.

Diese Aufforderung erscheint in Apps, die:

  • Irgendeinen Scope verwenden, der auf private Daten zugreifen kann (Gmail, Drive, GCP, BigQuery...)

  • Apps mit weniger als 100 Benutzern (bei Apps > 100 ist ein Überprüfungsprozess erforderlich, um die unbestätigte Aufforderung nicht mehr anzuzeigen)

Interessante Scopes

Hier finden Sie eine Liste aller Google OAuth-Scopes.

  • cloud-platform: Sehen und verwalten Sie Ihre Daten über Google Cloud Platform-Dienste. Sie können den Benutzer in GCP impersonifizieren.

  • admin.directory.user.readonly: Sehen und laden Sie das GSuite-Verzeichnis Ihrer Organisation herunter. Erhalten Sie Namen, Telefonnummern, Kalender-URLs aller Benutzer.

Erstellen einer OAuth-App

Beginnen Sie mit der Erstellung einer OAuth-Client-ID

  1. Gehen Sie zu https://console.cloud.google.com/apis/credentials/oauthclient und klicken Sie auf die Konfiguration des Zustimmungsbildschirms.

  2. Dann werden Sie gefragt, ob der Benutzertyp intern (nur für Personen in Ihrer Organisation) oder extern ist. Wählen Sie den aus, der Ihren Bedürfnissen entspricht.

  • Intern könnte interessant sein, wenn Sie bereits einen Benutzer der Organisation kompromittiert haben und diese App erstellen, um einen anderen zu phishen.

  1. Geben Sie der App einen Namen, eine Support-E-Mail (beachten Sie, dass Sie eine Google-Gruppe-E-Mail festlegen können, um sich ein wenig mehr zu anonymisieren), ein Logo, autorisierte Domains und eine andere E-Mail für Updates.

  2. Wählen Sie die OAuth-Scopes aus.

  • Diese Seite ist in nicht sensible Berechtigungen, sensible Berechtigungen und eingeschränkte Berechtigungen unterteilt. Jedes Mal, wenn Sie eine neue Berechtigung hinzufügen, wird sie in ihrer Kategorie hinzugefügt. Je nach den angeforderten Berechtigungen erscheinen unterschiedliche Aufforderungen für den Benutzer, die darauf hinweisen, wie sensibel diese Berechtigungen sind.

  • Sowohl admin.directory.user.readonly als auch cloud-platform sind sensible Berechtigungen.

  1. Fügen Sie die Testbenutzer hinzu. Solange der Status der App auf Test steht, können nur diese Benutzer auf die App zugreifen, also stellen Sie sicher, dass Sie die E-Mail hinzufügen, die Sie phishen möchten.

Jetzt lassen Sie uns Anmeldeinformationen für eine Webanwendung mit der zuvor erstellten OAuth-Client-ID abrufen:

  1. Gehen Sie zurück zu https://console.cloud.google.com/apis/credentials/oauthclient, diesmal wird eine andere Option angezeigt.

  2. Wählen Sie Anmeldeinformationen für eine Webanwendung erstellen.

  3. Legen Sie die benötigten Javascript-Ursprünge und Umleitungs-URIs fest.

  • Sie können in beiden etwas wie http://localhost:8000/callback zum Testen festlegen.

  1. Holen Sie sich Ihre Anwendungs-Anmeldeinformationen.

Schließlich lassen Sie uns eine Webanwendung ausführen, die die Anmeldeinformationen der OAuth-Anwendung verwendet. Ein Beispiel finden Sie unter https://github.com/carlospolop/gcp_oauth_phishing_example.

git clone ttps://github.com/carlospolop/gcp_oauth_phishing_example
cd gcp_oauth_phishing_example
pip install flask requests google-auth-oauthlib
python3 app.py --client-id "<client_id>" --client-secret "<client_secret>"

Gehe zu http://localhost:8000, klicke auf die Schaltfläche "Mit Google anmelden", du wirst mit einer Nachricht wie dieser auffordert:

Die Anwendung zeigt das Zugriffs- und Aktualisierungstoken, das leicht verwendet werden kann. Für weitere Informationen darüber, wie man diese Tokens verwendet, siehe:

Verwendung von glcoud

Es ist möglich, etwas mit gcloud anstelle der Webkonsole zu tun, siehe:

Referenzen

Unterstütze HackTricks

Last updated