GCP - IAM, Principals & Org Unauthenticated Enum

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Iam & GCP Principals

अधिक जानकारी के लिए देखें:

GCP - IAM, Principals & Org Policies Enum

क्या डोमेन Workspace में उपयोग किया गया है?

  1. 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"

If something like include:_spf.google.com भी दिखाई देता है, तो यह इसकी पुष्टि करता है (ध्यान दें कि यदि यह नहीं दिखाई देता है, तो यह इसे अस्वीकार नहीं करता है क्योंकि एक डोमेन Workspace में बिना gmail को मेल प्रदाता के रूप में उपयोग किए हो सकता है)।

  1. उस डोमेन के साथ एक Workspace सेटअप करने की कोशिश करें

एक और विकल्प है कि उस डोमेन का उपयोग करके एक Workspace सेटअप करने की कोशिश करें, यदि यह शिकायत करता है कि डोमेन पहले से ही उपयोग में है (जैसे कि चित्र में), तो आप जानते हैं कि यह पहले से ही उपयोग में है!

Workspace डोमेन सेटअप करने के लिए अनुसरण करें: https://workspace.google.com/business/signup/welcome

  1. उस डोमेन का उपयोग करके एक ईमेल का पासवर्ड पुनर्प्राप्त करने की कोशिश करें

यदि आप जानते हैं कि उस डोमेन में कोई मान्य ईमेल पता उपयोग में है (जैसे: 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.

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें

Last updated