GCP - IAM, Prensipler ve Org Kimlik Doğrulaması Olmadan Enum
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
Iam & GCP Prensipleri
Daha fazla bilgi için kontrol edin:
GCP - IAM, Principals & Org Policies Enum
Workspace’de alan adı kullanılıyor mu?
- DNS kayıtlarını kontrol et
Eğer google-site-verification kaydı varsa, muhtemelen Workspace kullanıyordur (veya kullanıyordu):
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"
Eğer include:_spf.google.com gibi bir şey de görünüyorsa, bu durumu doğrular (görünmüyorsa, bir alan adının gmail’i mail sağlayıcısı olarak kullanmadan Workspace’te olabileceğini unutmayın).
- O alan adıyla bir Workspace kurmayı deneyin
Başka bir seçenek, alan adını kullanarak bir Workspace kurmayı denemektir. Eğer alan adının zaten kullanıldığını bildirirse (resimdeki gibi), bunun zaten kullanıldığını bilirsiniz!
Bir Workspace alan adı kurmayı denemek için: https://workspace.google.com/business/signup/welcome
.png)
- O alan adıyla bir e-posta adresinin şifresini kurtarmayı deneyin
Eğer o alan adında kullanılan geçerli bir e-posta adresini biliyorsanız (örneğin: admin@email.com veya info@email.com), https://accounts.google.com/signin/v2/recoveryidentifier adresinde hesabı kurtarmayı deneyebilirsiniz. Eğer deneme, Google’ın o hesap hakkında hiçbir fikri olmadığını belirten bir hata göstermezse, o zaman Workspace kullanılıyor demektir.
E-postaları ve hizmet hesaplarını listele
Bir Workspace alan adının geçerli e-postalarını ve SA e-postalarını listelemek mümkündür; bunları izin atamayı deneyerek ve hata mesajlarını kontrol ederek yapabilirsiniz. Bunun için sadece bir projeye izin atama yetkinizin olması gerekir (bu proje sadece sizin sahip olduğunuz bir proje olabilir).
Onları kontrol etmek için, var olsalar bile onlara izin vermemek için serviceAccount türünü user olduğunda ve user türünü SA olduğunda kullanabilirsiniz:
# 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.
Hizmet Hesaplarını bilinen projelerde listelemenin daha hızlı bir yolu, URL’ye erişmeye çalışmaktır: https://iam.googleapis.com/v1/projects/<project-id>/serviceAccounts/<sa-email>
Örneğin: https://iam.googleapis.com/v1/projects/gcp-labs-3uis1xlx/serviceAccounts/appengine-lab-1-tarsget@gcp-labs-3uis1xlx.iam.gserviceaccount.com
Eğer yanıt 403 ise, bu SA’nın var olduğu anlamına gelir. Ancak yanıt 404 ise, bu SA’nın mevcut olmadığı anlamına gelir:
// 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"
}
}
Kullanıcı e-posta geçerli olduğunda, hata mesajının türün geçerli olmadığını belirttiğini not edin, bu nedenle support@hacktricks.xyz e-postasının var olduğunu herhangi bir ayrıcalık vermeden keşfetmeyi başardık.
Aynısını Hizmet Hesaplarıyla da yapabilirsiniz, serviceAccount: yerine user: türünü kullanarak:
# 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 Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

