GCP - IAM, Principals & Org Unauthenticated Enum
Reading time: 6 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।
Iam & GCP Principals
अधिक जानकारी के लिए देखें:
GCP - IAM, Principals & Org Policies Enum
क्या डोमेन Workspace में उपयोग किया गया है?
- DNS रिकॉर्ड जांचें
यदि इसमें google-site-verification
रिकॉर्ड है, तो यह संभावना है कि यह (या यह था) Workspace का उपयोग कर रहा है:
dig txt hacktricks.xyz
[...]
hacktricks.xyz. 3600 IN TXT "google-site-verification=2mWyPXMPXEEy6QqWbCfWkxFTcQhyYdwHrOxee1Yeo-0"
hacktricks.xyz. 3600 IN TXT "google-site-verification=C19PtLcZ1EGyzUYYJTX1Tp6bOGessxzN9gqE-SVKhRA"
hacktricks.xyz. 300 IN TXT "v=spf1 include:usb._netblocks.mimecast.com include:_spf.google.com include:_spf.psm.knowbe4.com include:_spf.salesforce.com include:spf.mandrillapp.com ~all"
यदि कुछ ऐसा include:_spf.google.com
भी दिखाई देता है, तो यह इसकी पुष्टि करता है (ध्यान दें कि यदि यह नहीं दिखाई देता है, तो यह यह नहीं कहता कि एक डोमेन Workspace में हो सकता है बिना gmail को मेल प्रदाता के रूप में उपयोग किए)।
- उस डोमेन के साथ एक Workspace सेटअप करने की कोशिश करें
एक और विकल्प है कि उस डोमेन का उपयोग करके एक Workspace सेटअप करने की कोशिश करें, यदि यह शिकायत करता है कि डोमेन पहले से ही उपयोग में है (जैसे कि चित्र में), तो आप जानते हैं कि यह पहले से ही उपयोग में है!
Workspace डोमेन सेटअप करने के लिए अनुसरण करें: https://workspace.google.com/business/signup/welcome
.png)
- उस डोमेन का उपयोग करके एक ईमेल का पासवर्ड पुनर्प्राप्त करने की कोशिश करें
यदि आप जानते हैं कि उस डोमेन में कोई मान्य ईमेल पता है (जैसे: admin@email.com या info@email.com) तो आप खाता पुनर्प्राप्त करने की कोशिश कर सकते हैं https://accounts.google.com/signin/v2/recoveryidentifier, और यदि प्रयास कोई त्रुटि नहीं दिखाता है जो यह संकेत करता है कि Google को उस खाते के बारे में कोई जानकारी नहीं है, तो यह Workspace का उपयोग कर रहा है।
ईमेल और सेवा खातों की गणना करें
यह संभव है कि Workspace डोमेन और SA ईमेल के मान्य ईमेल की गणना करें उन्हें अनुमतियाँ सौंपने की कोशिश करके और त्रुटि संदेशों की जांच करके। इसके लिए आपको केवल एक प्रोजेक्ट को अनुमति देने के लिए अनुमतियाँ होनी चाहिए (जो केवल आपके द्वारा स्वामित्व में हो सकता है)।
ध्यान दें कि उन्हें जांचने के लिए लेकिन यदि वे मौजूद हैं तो उन्हें अनुमति न दें, आप serviceAccount
का प्रकार उपयोग कर सकते हैं जब यह user
है और user
जब यह SA
है:
# Try to assign permissions to user 'unvalid-email-34r434f@hacktricks.xyz'
# but indicating it's a service account
gcloud projects add-iam-policy-binding <project-controlled-by-you> \
--member='serviceAccount:unvalid-email-34r434f@hacktricks.xyz' \
--role='roles/viewer'
## Response:
ERROR: (gcloud.projects.add-iam-policy-binding) INVALID_ARGUMENT: User unvalid-email-34r434f@hacktricks.xyz does not exist.
# Now try with a valid email
gcloud projects add-iam-policy-binding <project-controlled-by-you> \
--member='serviceAccount:support@hacktricks.xyz' \
--role='roles/viewer'
# Response:
ERROR: (gcloud.projects.add-iam-policy-binding) INVALID_ARGUMENT: Principal support@hacktricks.xyz is of type "user". The principal should appear as "user:support@hacktricks.xyz". See https://cloud.google.com/iam/help/members/types for additional documentation.
एक तेज़ तरीका है ज्ञात परियोजनाओं में सेवा खातों को सूचीबद्ध करने का, बस इस URL तक पहुँचने की कोशिश करें: https://iam.googleapis.com/v1/projects/<project-id>/serviceAccounts/<sa-email>
उदाहरण के लिए: https://iam.googleapis.com/v1/projects/gcp-labs-3uis1xlx/serviceAccounts/appengine-lab-1-tarsget@gcp-labs-3uis1xlx.iam.gserviceaccount.com
यदि प्रतिक्रिया 403 है, तो इसका मतलब है कि SA मौजूद है। लेकिन यदि उत्तर 404 है, तो इसका मतलब है कि यह मौजूद नहीं है:
// Exists
{
"error": {
"code": 403,
"message": "Method doesn't allow unregistered callers (callers without established identity). Please use API Key or other form of API consumer identity to call this API.",
"status": "PERMISSION_DENIED"
}
}
// Doesn't exist
{
"error": {
"code": 404,
"message": "Unknown service account",
"status": "NOT_FOUND"
}
}
ध्यान दें कि जब उपयोगकर्ता का ईमेल मान्य था, तो त्रुटि संदेश ने संकेत दिया कि उनका प्रकार नहीं है, इसलिए हम यह पता लगाने में सफल रहे कि ईमेल support@hacktricks.xyz मौजूद है बिना इसे कोई विशेषाधिकार दिए।
आप Service Accounts के साथ भी user:
प्रकार का उपयोग करके समान कर सकते हैं, बजाय serviceAccount:
के:
# Non existent
gcloud projects add-iam-policy-binding <project-controlled-by-you> \
--member='serviceAccount:<invalid-sa-name>@<proj-uniq-name>.iam.gserviceaccount.com' \
--role='roles/viewer'
# Response
ERROR: (gcloud.projects.add-iam-policy-binding) INVALID_ARGUMENT: User <invalid-sa-name>@<proj-uniq-name>.iam.gserviceaccount.com does not exist.
# Existent
gcloud projects add-iam-policy-binding <project-controlled-by-you> \
--member='serviceAccount:<sa-name>@<proj-uniq-name>.iam.gserviceaccount.com' \
--role='roles/viewer'
# Response
ERROR: (gcloud.projects.add-iam-policy-binding) INVALID_ARGUMENT: Principal testing@digital-bonfire-410512.iam.gserviceaccount.com is of type "serviceAccount". The principal should appear as "serviceAccount:testing@digital-bonfire-410512.iam.gserviceaccount.com". See https://cloud.google.com/iam/help/members/types for additional documentation.
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।