GWS - Google Platforms Phishing

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Generic Phishing Methodology

Phishing Methodology - HackTricks

Google Groups Phishing

Προφανώς, από προεπιλογή, στα μέλη του workspace μπορούν να δημιουργούν ομάδες και να προσκαλούν άτομα σε αυτές. Μπορείτε στη συνέχεια να τροποποιήσετε το email που θα σταλεί στον χρήστη προσθέτοντας μερικούς συνδέσμους. Το email θα προέρχεται από μια διεύθυνση google, οπότε θα φαίνεται νόμιμο και οι άνθρωποι μπορεί να κάνουν κλικ στον σύνδεσμο.

Είναι επίσης δυνατό να ορίσετε τη διεύθυνση FROM ως το email της ομάδας Google για να στείλετε περισσότερα emails στους χρήστες μέσα στην ομάδα, όπως στην παρακάτω εικόνα όπου η ομάδα google--support@googlegroups.com δημιουργήθηκε και ένα email στάλθηκε σε όλα τα μέλη της ομάδας (που προστέθηκαν χωρίς καμία συγκατάθεση)

Google Chat Phishing

Μπορείτε να ξεκινήσετε μια συνομιλία με ένα άτομο απλά γνωρίζοντας τη διεύθυνση email του ή να στείλετε μια πρόσκληση για συνομιλία. Επιπλέον, είναι δυνατό να δημιουργήσετε έναν Χώρο που μπορεί να έχει οποιοδήποτε όνομα (π.χ. “Google Support”) και να προσκαλέσετε μέλη σε αυτόν. Αν αποδεχτούν, μπορεί να νομίζουν ότι μιλούν με την Υποστήριξη της Google:

Tip

Στις δοκιμές μου, ωστόσο, τα προσκαλούμενα μέλη δεν έλαβαν καν πρόσκληση.

Μπορείτε να δείτε πώς λειτούργησε αυτό στο παρελθόν στο: https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s

Google Doc Phishing

Στο παρελθόν ήταν δυνατό να δημιουργηθεί ένα φαινομενικά νόμιμο έγγραφο και σε ένα σχόλιο να αναφερθεί κάποιο email (όπως @user@gmail.com). Η Google έστειλε ένα email σε αυτή τη διεύθυνση ενημερώνοντάς την ότι αναφέρθηκε στο έγγραφο.
Σήμερα, αυτό δεν λειτουργεί αλλά αν δώσετε στον θύμα πρόσβαση στο έγγραφο η Google θα στείλει ένα email που θα το υποδεικνύει. Αυτό είναι το μήνυμα που εμφανίζεται όταν αναφέρετε κάποιον:

Tip

Τα θύματα μπορεί να έχουν μηχανισμούς προστασίας που δεν επιτρέπουν στα emails που υποδεικνύουν ότι ένα εξωτερικό έγγραφο μοιράστηκε μαζί τους να φτάσουν στο email τους.

Google Calendar Phishing

Μπορείτε να δημιουργήσετε ένα γεγονός ημερολογίου και να προσθέσετε όσες διευθύνσεις email της εταιρείας επιτίθεστε έχετε. Προγραμματίστε αυτό το γεγονός ημερολογίου σε 5 ή 15 λεπτά από την τρέχουσα ώρα. Κάντε το γεγονός να φαίνεται νόμιμο και βάλτε ένα σχόλιο και έναν τίτλο που να υποδεικνύει ότι πρέπει να διαβάσουν κάτι (με τον σύνδεσμο phishing).

Αυτή είναι η ειδοποίηση που θα εμφανιστεί στον περιηγητή με τίτλο συνάντησης “Απόλυση Ανθρώπων”, οπότε θα μπορούσατε να ορίσετε έναν πιο phishing τίτλο (και ακόμη και να αλλάξετε το όνομα που σχετίζεται με το email σας).

Για να φαίνεται λιγότερο ύποπτο:

  • Ρυθμίστε το έτσι ώστε οι παραλήπτες να μην μπορούν να δουν τους άλλους προσκεκλημένους
  • ΜΗ στείλετε emails που να ειδοποιούν για το γεγονός. Έτσι, οι άνθρωποι θα δουν μόνο την προειδοποίησή τους για μια συνάντηση σε 5 λεπτά και ότι πρέπει να διαβάσουν αυτόν τον σύνδεσμο.
  • Προφανώς, χρησιμοποιώντας το API μπορείτε να ορίσετε σε True ότι οι άνθρωποι έχουν αποδεχτεί το γεγονός και ακόμη και να δημιουργήσετε σχόλια εκ μέρους τους.

App Scripts Redirect Phishing

Είναι δυνατό να δημιουργήσετε ένα σενάριο στο https://script.google.com/ και να το εκθέσετε ως μια διαδικτυακή εφαρμογή προσβάσιμη από όλους που θα χρησιμοποιεί το νόμιμο domain script.google.com.
Με κάποιον κώδικα όπως ο παρακάτω, ένας επιτιθέμενος θα μπορούσε να κάνει το σενάριο να φορτώνει αυθαίρετο περιεχόμενο σε αυτή τη σελίδα χωρίς να σταματήσει να έχει πρόσβαση στο domain:

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

Για παράδειγμα, αν αποκτήσετε πρόσβαση στο https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec θα δείτε:

Tip

Σημειώστε ότι θα εμφανιστεί μια προειδοποίηση καθώς το περιεχόμενο φορτώνεται μέσα σε ένα iframe.

App Scripts OAuth Phishing

Είναι δυνατόν να δημιουργηθούν App Scripts που συνδέονται με έγγραφα για να προσπαθήσουν να αποκτήσουν πρόσβαση στο OAuth token ενός θύματος, για περισσότερες πληροφορίες δείτε:

GWS - App Scripts

OAuth Apps Phishing

Οποιαδήποτε από τις προηγούμενες τεχνικές μπορεί να χρησιμοποιηθεί για να κάνει τον χρήστη να αποκτήσει πρόσβαση σε μια Google OAuth εφαρμογή που θα ζητήσει από τον χρήστη κάποια πρόσβαση. Αν ο χρήστης εμπιστεύεται την πηγή, μπορεί να εμπιστευτεί την εφαρμογή (ακόμα και αν ζητάει υψηλά προνόμια).

Note

Σημειώστε ότι η Google παρουσιάζει μια άσχημη προτροπή που προειδοποιεί ότι η εφαρμογή είναι μη αξιόπιστη σε πολλές περιπτώσεις και οι διαχειριστές του Workspace μπορούν ακόμη και να αποτρέψουν τους ανθρώπους από το να αποδεχτούν OAuth εφαρμογές.

Google επιτρέπει τη δημιουργία εφαρμογών που μπορούν να αλληλεπιδρούν εκ μέρους των χρηστών με πολλές υπηρεσίες Google: Gmail, Drive, GCP…

Όταν δημιουργείτε μια εφαρμογή για να δράσετε εκ μέρους άλλων χρηστών, ο προγραμματιστής πρέπει να δημιουργήσει μια OAuth εφαρμογή μέσα στο GCP και να υποδείξει τους τομείς (δικαιώματα) που χρειάζεται η εφαρμογή για να αποκτήσει πρόσβαση στα δεδομένα των χρηστών.
Όταν ένας χρήστης θέλει να χρησιμοποιήσει αυτή την εφαρμογή, θα προτροπεί να αποδεχτεί ότι η εφαρμογή θα έχει πρόσβαση στα δεδομένα του που καθορίζονται στους τομείς.

Αυτή είναι μια πολύ ελκυστική μέθοδος για να phish μη τεχνικούς χρήστες ώστε να χρησιμοποιούν εφαρμογές που αποκτούν ευαίσθητες πληροφορίες επειδή μπορεί να μην κατανοούν τις συνέπειες. Ωστόσο, σε οργανωτικούς λογαριασμούς, υπάρχουν τρόποι να αποτραπεί αυτό.

Unverified App prompt

Όπως αναφέρθηκε, η Google θα παρουσιάσει πάντα μια προτροπή στον χρήστη να αποδεχτεί τα δικαιώματα που δίνει στην εφαρμογή εκ μέρους του. Ωστόσο, αν η εφαρμογή θεωρείται επικίνδυνη, η Google θα δείξει πρώτα μια προτροπή που υποδεικνύει ότι είναι επικίνδυνη και καθιστά πιο δύσκολο για τον χρήστη να παραχωρήσει τα δικαιώματα στην εφαρμογή.

Αυτή η προτροπή εμφανίζεται σε εφαρμογές που:

  • Χρησιμοποιούν οποιονδήποτε τομέα που μπορεί να αποκτήσει πρόσβαση σε ιδιωτικά δεδομένα (Gmail, Drive, GCP, BigQuery…)
  • Εφαρμογές με λιγότερους από 100 χρήστες (εφαρμογές > 100 απαιτούν επίσης διαδικασία αναθεώρησης για να σταματήσουν να εμφανίζουν την προτροπή μη επαληθευμένης εφαρμογής)

Interesting Scopes

Εδώ μπορείτε να βρείτε μια λίστα με όλους τους τομείς OAuth της Google.

  • cloud-platform: Δείτε και διαχειριστείτε τα δεδομένα σας σε υπηρεσίες Google Cloud Platform. Μπορείτε να προσποιηθείτε τον χρήστη στο GCP.
  • admin.directory.user.readonly: Δείτε και κατεβάστε τον κατάλογο GSuite της οργάνωσής σας. Λάβετε ονόματα, τηλέφωνα, διευθύνσεις URL ημερολογίου όλων των χρηστών.

Create an OAuth App

Ξεκινήστε δημιουργώντας ένα OAuth Client ID

  1. Μεταβείτε στο https://console.cloud.google.com/apis/credentials/oauthclient και κάντε κλικ στην παραμετροποίηση της οθόνης συγκατάθεσης.
  2. Στη συνέχεια, θα σας ζητηθεί αν ο τύπος χρήστη είναι εσωτερικός (μόνο για άτομα στην οργάνωσή σας) ή εξωτερικός. Επιλέξτε αυτόν που ταιριάζει στις ανάγκες σας
  • Ο εσωτερικός μπορεί να είναι ενδιαφέρον αν έχετε ήδη παραβιάσει έναν χρήστη της οργάνωσης και δημιουργείτε αυτή την εφαρμογή για να phishing έναν άλλο.
  1. Δώστε ένα όνομα στην εφαρμογή, μια διεύθυνση email υποστήριξης (σημειώστε ότι μπορείτε να ορίσετε μια διεύθυνση email ομάδας Google για να προσπαθήσετε να ανωνυμοποιηθείτε λίγο περισσότερο), ένα λογότυπο, εξουσιοδοτημένους τομείς και μια άλλη διεύθυνση email για ενημερώσεις.
  2. Επιλέξτε τους τομείς OAuth.
  • Αυτή η σελίδα είναι χωρισμένη σε μη ευαίσθητα δικαιώματα, ευαίσθητα δικαιώματα και περιορισμένα δικαιώματα. Κάθε φορά που προσθέτετε μια νέα άδεια, προστίθεται στην κατηγορία της. Ανάλογα με τα ζητούμενα δικαιώματα, θα εμφανιστούν διαφορετικές προτροπές στον χρήστη που υποδεικνύουν πόσο ευαίσθητα είναι αυτά τα δικαιώματα.
  • Και οι δύο admin.directory.user.readonly και cloud-platform είναι ευαίσθητα δικαιώματα.
  1. Προσθέστε τους δοκιμαστικούς χρήστες. Όσο η κατάσταση της εφαρμογής είναι δοκιμαστική, μόνο αυτοί οι χρήστες θα μπορούν να αποκτήσουν πρόσβαση στην εφαρμογή, οπότε βεβαιωθείτε ότι προσθέτετε τη διεύθυνση email που θα phishing.

Τώρα ας αποκτήσουμε διαπιστευτήρια για μια διαδικτυακή εφαρμογή χρησιμοποιώντας το προηγουμένως δημιουργημένο OAuth Client ID:

  1. Επιστρέψτε στο https://console.cloud.google.com/apis/credentials/oauthclient, μια διαφορετική επιλογή θα εμφανιστεί αυτή τη φορά.
  2. Επιλέξτε να δημιουργήσετε διαπιστευτήρια για μια διαδικτυακή εφαρμογή
  3. Ορίστε τις απαραίτητες Javascript origins και redirect URIs
  • Μπορείτε να ορίσετε και στα δύο κάτι σαν http://localhost:8000/callback για δοκιμές
  1. Αποκτήστε τα διαπιστευτήρια της εφαρμογής σας

Τέλος, ας τρέξουμε μια διαδικτυακή εφαρμογή που θα χρησιμοποιεί τα διαπιστευτήρια της OAuth εφαρμογής. Μπορείτε να βρείτε ένα παράδειγμα στο 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>"

Μεταβείτε στο http://localhost:8000 και κάντε κλικ στο κουμπί Σύνδεση με Google, θα σας ζητηθεί ένα μήνυμα όπως αυτό:

Η εφαρμογή θα εμφανίσει το access και refresh token που μπορεί να χρησιμοποιηθεί εύκολα. Για περισσότερες πληροφορίες σχετικά με το πώς να χρησιμοποιήσετε αυτά τα tokens ελέγξτε:

GCP - Token Persistence

Χρησιμοποιώντας το glcoud

Είναι δυνατόν να κάνετε κάτι χρησιμοποιώντας το gcloud αντί για την κονσόλα ιστού, ελέγξτε:

GCP - ClientAuthConfig Privesc

Αναφορές

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks