GWS - Google Platforms Phishing
Last updated
Last updated
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Φαίνεται ότι, από προεπιλογή, στα workspace τα μέλη μπορούν να δημιουργούν ομάδες και να προσκαλούν άτομα σε αυτές. Μπορείτε στη συνέχεια να τροποποιήσετε το email που θα σταλεί στον χρήστη προσθέτοντας μερικούς συνδέσμους. Το email θα προέρχεται από μια διεύθυνση google, οπότε θα φαίνεται νόμιμο και οι άνθρωποι μπορεί να κάνουν κλικ στον σύνδεσμο.
Είναι επίσης δυνατό να ορίσετε τη διεύθυνση FROM ως το email της Google group για να στείλετε περισσότερα emails στους χρήστες μέσα στην ομάδα, όπως στην παρακάτω εικόνα όπου η ομάδα google--support@googlegroups.com
δημιουργήθηκε και ένα email στάλθηκε σε όλα τα μέλη της ομάδας (που προστέθηκαν χωρίς καμία συγκατάθεση)
Μπορείτε είτε να ξεκινήσετε μια συνομιλία με ένα άτομο απλά γνωρίζοντας τη διεύθυνση email του ή να στείλετε μια πρόσκληση για συνομιλία. Επιπλέον, είναι δυνατό να δημιουργήσετε έναν Χώρο που μπορεί να έχει οποιοδήποτε όνομα (π.χ. "Google Support") και να προσκαλέσετε μέλη σε αυτόν. Αν αποδεχτούν, μπορεί να νομίζουν ότι μιλούν με την Υποστήριξη της Google:
Ωστόσο, κατά τη διάρκεια των δοκιμών μου, τα προσκαλεσμένα μέλη δεν έλαβαν καν πρόσκληση.
Μπορείτε να δείτε πώς λειτούργησε αυτό στο παρελθόν στο: https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s
Στο παρελθόν ήταν δυνατό να δημιουργήσετε ένα φαινομενικά νόμιμο έγγραφο και σε ένα σχόλιο να αναφέρετε κάποιο email (όπως @user@gmail.com). Η Google έστειλε ένα email σε αυτή τη διεύθυνση email ενημερώνοντας ότι αναφέρθηκαν στο έγγραφο. Σήμερα, αυτό δεν λειτουργεί αλλά αν δώσετε στον θύμα πρόσβαση στο έγγραφο η Google θα στείλει ένα email που θα το υποδεικνύει. Αυτό είναι το μήνυμα που εμφανίζεται όταν αναφέρετε κάποιον:
Τα θύματα μπορεί να έχουν μηχανισμό προστασίας που δεν επιτρέπει σε αυτά τα emails που υποδεικνύουν ότι ένα εξωτερικό έγγραφο μοιράστηκε μαζί τους να φτάσουν στο email τους.
Μπορείτε να δημιουργήσετε ένα γεγονός ημερολογίου και να προσθέσετε όσες διευθύνσεις email της εταιρείας επιτίθεστε έχετε. Προγραμματίστε αυτό το γεγονός ημερολογίου σε 5 ή 15 λεπτά από την τρέχουσα ώρα. Κάντε το γεγονός να φαίνεται νόμιμο και βάλτε ένα σχόλιο και έναν τίτλο που να υποδεικνύει ότι πρέπει να διαβάσουν κάτι (με τον σύνδεσμο phishing).
Αυτή είναι η ειδοποίηση που θα εμφανιστεί στον περιηγητή με τίτλο συνάντησης "Απόλυση Ανθρώπων", οπότε θα μπορούσατε να ορίσετε έναν πιο phishing τίτλο (και ακόμη και να αλλάξετε το όνομα που σχετίζεται με το email σας).
Για να φαίνεται λιγότερο ύποπτο:
Ρυθμίστε το έτσι ώστε οι παραλήπτες να μην μπορούν να δουν τους άλλους προσκεκλημένους
ΜΗ στείλετε emails που να ειδοποιούν για το γεγονός. Έτσι, οι άνθρωποι θα δουν μόνο την προειδοποίησή τους για μια συνάντηση σε 5 λεπτά και ότι πρέπει να διαβάσουν αυτόν τον σύνδεσμο.
Φαίνεται ότι χρησιμοποιώντας το API μπορείτε να ορίσετε σε True ότι οι άνθρωποι έχουν αποδεχτεί το γεγονός και ακόμη και να δημιουργήσετε σχόλια εκ μέρους τους.
Είναι δυνατό να δημιουργήσετε ένα script στο https://script.google.com/ και να το εκθέσετε ως μια διαδικτυακή εφαρμογή προσβάσιμη από όλους που θα χρησιμοποιεί το νόμιμο domain script.google.com
.
Με κάποιον κώδικα όπως ο παρακάτω, ένας επιτιθέμενος θα μπορούσε να κάνει το script να φορτώνει αυθαίρετο περιεχόμενο σε αυτή τη σελίδα χωρίς να σταματήσει να έχει πρόσβαση στο domain:
Για παράδειγμα, αν αποκτήσετε πρόσβαση στο https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec θα δείτε:
Σημειώστε ότι θα εμφανιστεί μια προειδοποίηση καθώς το περιεχόμενο φορτώνεται μέσα σε ένα iframe.
Είναι δυνατόν να δημιουργηθούν App Scripts που συνδέονται με έγγραφα για να προσπαθήσουν να αποκτήσουν πρόσβαση στο OAuth token ενός θύματος, για περισσότερες πληροφορίες δείτε:
GWS - App ScriptsΟποιαδήποτε από τις προηγούμενες τεχνικές μπορεί να χρησιμοποιηθεί για να κάνει τον χρήστη να αποκτήσει πρόσβαση σε μια Google OAuth εφαρμογή που θα ζητήσει από τον χρήστη κάποια πρόσβαση. Αν ο χρήστης εμπιστεύεται την πηγή, μπορεί να εμπιστευτεί την εφαρμογή (ακόμα και αν ζητάει υψηλά προνόμια).
Σημειώστε ότι η Google παρουσιάζει μια άσχημη προτροπή που προειδοποιεί ότι η εφαρμογή είναι μη αξιόπιστη σε πολλές περιπτώσεις και οι διαχειριστές του Workspace μπορούν ακόμη και να αποτρέψουν τους ανθρώπους από το να αποδεχτούν OAuth εφαρμογές.
Google επιτρέπει τη δημιουργία εφαρμογών που μπορούν να αλληλεπιδρούν εκ μέρους των χρηστών με πολλές υπηρεσίες Google: Gmail, Drive, GCP...
Όταν δημιουργείτε μια εφαρμογή για να δράσει εκ μέρους άλλων χρηστών, ο προγραμματιστής πρέπει να δημιουργήσει μια OAuth εφαρμογή μέσα στο GCP και να υποδείξει τους τομείς (δικαιώματα) που χρειάζεται η εφαρμογή για να αποκτήσει πρόσβαση στα δεδομένα των χρηστών. Όταν ένας χρήστης θέλει να χρησιμοποιήσει αυτή την εφαρμογή, θα προτροπεί να αποδεχτεί ότι η εφαρμογή θα έχει πρόσβαση στα δεδομένα του που καθορίζονται στους τομείς.
Αυτή είναι μια πολύ ελκυστική μέθοδος για να phish μη τεχνικούς χρήστες να χρησιμοποιούν εφαρμογές που αποκτούν ευαίσθητες πληροφορίες επειδή μπορεί να μην κατανοούν τις συνέπειες. Ωστόσο, σε οργανωτικούς λογαριασμούς, υπάρχουν τρόποι να αποτραπεί αυτό.
Όπως αναφέρθηκε, η Google θα παρουσιάσει πάντα μια προτροπή στον χρήστη να αποδεχτεί τα δικαιώματα που δίνουν στην εφαρμογή εκ μέρους τους. Ωστόσο, αν η εφαρμογή θεωρείται επικίνδυνη, η Google θα δείξει πρώτα μια προτροπή που υποδεικνύει ότι είναι επικίνδυνη και καθιστά πιο δύσκολο για τον χρήστη να παραχωρήσει τα δικαιώματα στην εφαρμογή.
Αυτή η προτροπή εμφανίζεται σε εφαρμογές που:
Χρησιμοποιούν οποιονδήποτε τομέα που μπορεί να αποκτήσει πρόσβαση σε ιδιωτικά δεδομένα (Gmail, Drive, GCP, BigQuery...)
Εφαρμογές με λιγότερους από 100 χρήστες (εφαρμογές > 100 απαιτούν επίσης διαδικασία αναθεώρησης για να σταματήσουν να εμφανίζουν την προτροπή μη επαληθευμένης εφαρμογής)
Εδώ μπορείτε να βρείτε μια λίστα με όλους τους τομείς OAuth της Google.
cloud-platform: Δείτε και διαχειριστείτε τα δεδομένα σας σε υπηρεσίες Google Cloud Platform. Μπορείτε να προσποιηθείτε τον χρήστη στο GCP.
admin.directory.user.readonly: Δείτε και κατεβάστε τον κατάλογο GSuite της οργάνωσής σας. Αποκτήστε ονόματα, τηλέφωνα, διευθύνσεις URL ημερολογίου όλων των χρηστών.
Ξεκινήστε τη δημιουργία ενός OAuth Client ID
Μεταβείτε στο https://console.cloud.google.com/apis/credentials/oauthclient και κάντε κλικ στην παραμετροποίηση της οθόνης συγκατάθεσης.
Στη συνέχεια, θα σας ζητηθεί αν ο τύπος χρήστη είναι εσωτερικός (μόνο για άτομα στην οργάνωσή σας) ή εξωτερικός. Επιλέξτε αυτόν που ταιριάζει στις ανάγκες σας
Ο εσωτερικός μπορεί να είναι ενδιαφέρον αν έχετε ήδη παραβιάσει έναν χρήστη της οργάνωσης και δημιουργείτε αυτή την εφαρμογή για να phishing έναν άλλο.
Δώστε ένα όνομα στην εφαρμογή, ένα email υποστήριξης (σημειώστε ότι μπορείτε να ορίσετε ένα email ομάδας Google για να προσπαθήσετε να ανωνυμοποιηθείτε λίγο περισσότερο), ένα λογότυπο, εξουσιοδοτημένα domains και ένα άλλο email για ενημερώσεις.
Επιλέξτε τους τομείς OAuth.
Αυτή η σελίδα είναι χωρισμένη σε μη ευαίσθητα δικαιώματα, ευαίσθητα δικαιώματα και περιορισμένα δικαιώματα. Κάθε φορά που προσθέτετε μια νέα άδεια, προστίθεται στην κατηγορία της. Ανάλογα με τα ζητούμενα δικαιώματα, θα εμφανιστούν διαφορετικές προτροπές στον χρήστη που υποδεικνύουν πόσο ευαίσθητα είναι αυτά τα δικαιώματα.
Και οι δύο admin.directory.user.readonly
και cloud-platform
είναι ευαίσθητα δικαιώματα.
Προσθέστε τους δοκιμαστικούς χρήστες. Όσο η κατάσταση της εφαρμογής είναι δοκιμαστική, μόνο αυτοί οι χρήστες θα μπορούν να αποκτήσουν πρόσβαση στην εφαρμογή, οπότε βεβαιωθείτε ότι προσθέτετε το email που θα phishing.
Τώρα ας αποκτήσουμε διαπιστευτήρια για μια διαδικτυακή εφαρμογή χρησιμοποιώντας το προηγουμένως δημιουργημένο OAuth Client ID:
Επιστρέψτε στο https://console.cloud.google.com/apis/credentials/oauthclient, μια διαφορετική επιλογή θα εμφανιστεί αυτή τη φορά.
Επιλέξτε να δημιουργήσετε διαπιστευτήρια για μια διαδικτυακή εφαρμογή
Ορίστε τις απαραίτητες Javascript origins και redirect URIs
Μπορείτε να ορίσετε και στα δύο κάτι σαν http://localhost:8000/callback
για δοκιμές
Αποκτήστε τα διαπιστευτήρια της εφαρμογής σας
Τέλος, ας τρέξουμε μια διαδικτυακή εφαρμογή που θα χρησιμοποιεί τα διαπιστευτήρια της OAuth εφαρμογής. Μπορείτε να βρείτε ένα παράδειγμα στο https://github.com/carlospolop/gcp_oauth_phishing_example.
Μεταβείτε στο http://localhost:8000
και κάντε κλικ στο κουμπί Σύνδεση με Google, θα σας ζητηθεί ένα μήνυμα όπως αυτό:
Η εφαρμογή θα εμφανίσει το access and refresh token που μπορεί να χρησιμοποιηθεί εύκολα. Για περισσότερες πληροφορίες σχετικά με το πώς να χρησιμοποιήσετε αυτά τα tokens ελέγξτε:
GCP - Token Persistanceglcoud
Είναι δυνατόν να κάνετε κάτι χρησιμοποιώντας gcloud αντί για την κονσόλα ιστού, ελέγξτε:
GCP - ClientAuthConfig Priveschttps://www.youtube-nocookie.com/embed/6AsVUS79gLw - Matthew Bryant - Hacking G Suite: The Power of Dark Apps Script Magic
https://www.youtube.com/watch?v=KTVHLolz6cE - Mike Felch και Beau Bullock - OK Google, Πώς μπορώ να κάνω Red Team GSuite;
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)