From 18b044c1d29e8900879f212577e3d992fde67abc Mon Sep 17 00:00:00 2001 From: Translator Date: Sat, 15 Nov 2025 11:48:29 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/gcp-security/gcp-privilege-escalat --- .../gcp-misc-perms-privesc.md | 21 ++++++++++----- .../gcp-orgpolicy-privesc.md | 27 +++++++++++++++++-- 2 files changed, 39 insertions(+), 9 deletions(-) diff --git a/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-misc-perms-privesc.md b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-misc-perms-privesc.md index 5fa85282e..e32553efc 100644 --- a/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-misc-perms-privesc.md +++ b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-misc-perms-privesc.md @@ -1,4 +1,4 @@ -# GCP - Genel İzinler Privesc +# GCP - Generic Permissions Privesc {{#include ../../../banners/hacktricks-training.md}} @@ -6,20 +6,27 @@ ### \*.setIamPolicy -Eğer bir kaynağın **`setIamPolicy`** iznine sahip bir kullanıcıya sahipseniz, o kaynaktaki **yetkileri artırabilirsiniz** çünkü o kaynağın IAM politikasını değiştirebilir ve üzerindeki yetkilerinizi artırabilirsiniz.\ -Bu izin ayrıca **diğer yetkililere yükselmenizi** de sağlayabilir eğer kaynak kod çalıştırmaya izin veriyorsa ve iam.ServiceAccounts.actAs gerekli değilse. +Eğer bir kullanıcı kaynak üzerinde **`setIamPolicy`** iznine sahipse, bu kaynağın IAM politikasını değiştirebileceğiniz için o kaynakta ayrıcalıkları yükseltebilirsiniz.\ +Bu izin ayrıca, kaynak kod çalıştırmaya izin veriyorsa ve `iam.ServiceAccounts.actAs` gerekli değilse, **başka principal'lara yükselme** imkanı da sağlayabilir. - _cloudfunctions.functions.setIamPolicy_ -- Kendinize bir Cloud Function'ı çağırma izni vermek için politikasını değiştirin. +- Cloud Function'ın politikasını değiştirerek kendinize invoke etme izni verebilirsiniz. -Bu tür izne sahip onlarca kaynak türü vardır, hepsini [https://cloud.google.com/iam/docs/permissions-reference](https://cloud.google.com/iam/docs/permissions-reference) adresinde setIamPolicy araması yaparak bulabilirsiniz. +Bu tür izne sahip onlarca kaynak türü vardır; hepsini [https://cloud.google.com/iam/docs/permissions-reference](https://cloud.google.com/iam/docs/permissions-reference) adresinde setIamPolicy araması yaparak bulabilirsiniz. ### \*.create, \*.update -Bu izinler, kaynaklarda **yeni bir tane oluşturmak veya mevcut birini güncellemek** yoluyla yetkileri artırmaya çalışmak için çok faydalı olabilir. Bu tür izinler, ayrıca bir Hizmet Hesabı üzerinde **iam.serviceAccounts.actAs** iznine sahipseniz ve sahip olduğunuz .create/.update iznine sahip kaynak bir hizmet hesabı ekleyebiliyorsa özellikle faydalıdır. +Bu izinler, yeni bir kaynak oluşturarak veya mevcut bir kaynağı güncelleyerek kaynaklarda ayrıcalıkları yükseltmeye çalışmak için çok yararlı olabilir. Bu tür izinler özellikle, bir Service Account üzerinde **iam.serviceAccounts.actAs** iznine de sahipseniz ve .create/.update yetkisine sahip olduğunuz kaynak bir service account iliştirebiliyorsa faydalıdır. ### \*ServiceAccount\* -Bu izin genellikle size **bir kaynaktaki Hizmet Hesabına erişim veya onu değiştirme** izni verir (örneğin: compute.instances.setServiceAccount). Bu **yetki artışına** yol açabilecek bir vektör olabilir, ancak her duruma bağlıdır. +Bu izin genellikle belirli bir kaynaktaki bir Service Account'a **erişim veya değişiklik** yapmanıza izin verir (ör.: compute.instances.setServiceAccount). Bu bir **privilege escalation** vektörüne yol açabilir, ancak duruma göre değişir. + +### iam.ServiceAccounts.actAs + +Bu izin, destekleyen bir kaynağa (ör.: Compute Engine VM, Cloud Function, Cloud Run, vb.) bir Service Account iliştirmenize izin verir.\ +Eğer kullanıcınızdan daha fazla ayrıcalığa sahip bir Service Account'u kod çalıştırabilen bir kaynağa iliştirebiliyorsanız, o Service Account ile kod çalıştırarak ayrıcalıklarınızı yükseltebilirsiniz. + +Cloud Hacktricks'te `iam.ServiceAccounts.actAs` araması yaparak bu izinle ayrıcalıkları nasıl yükseltebileceğinize dair birçok örnek bulabilirsiniz. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-orgpolicy-privesc.md b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-orgpolicy-privesc.md index e0d85ec32..78d965afa 100644 --- a/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-orgpolicy-privesc.md +++ b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-orgpolicy-privesc.md @@ -6,7 +6,7 @@ ### `orgpolicy.policy.set` -Bir saldırgan **orgpolicy.policy.set** kullanarak organizasyonel politikaları manipüle edebilir, bu da belirli işlemleri engelleyen bazı kısıtlamaları kaldırmasına olanak tanır. Örneğin, **appengine.disableCodeDownload** kısıtlaması genellikle App Engine kaynak kodunun indirilmesini engeller. Ancak, **orgpolicy.policy.set** kullanarak bir saldırgan bu kısıtlamayı devre dışı bırakabilir ve böylece başlangıçta korunan kaynak kodunu indirme erişimi kazanabilir. +**orgpolicy.policy.set** kullanan bir saldırgan, organizasyon politikalarını manipüle edebilir; bu da belirli işlemleri engelleyen bazı kısıtlamaları kaldırmasına izin verir. Örneğin, **appengine.disableCodeDownload** kısıtı genellikle App Engine kaynak kodunun indirilmesini engeller. Ancak **orgpolicy.policy.set** kullanarak saldırgan bu kısıtlamayı devre dışı bırakabilir ve böylece başlangıçta korumalı olmasına rağmen kaynak kodunu indirme erişimi elde edebilir. ```bash # Get info gcloud resource-manager org-policies describe [--folder | --organization | --project ] @@ -14,8 +14,31 @@ gcloud resource-manager org-policies describe [--folder | --or # Disable gcloud resource-manager org-policies disable-enforce [--folder | --organization | --project ] ``` -Bir python betiği bu yöntem için [burada](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/orgpolicy.policy.set.py) bulunabilir. +Bu yöntem için bir Python betiği [here](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/orgpolicy.policy.set.py). +### `orgpolicy.policy.set`, `iam.serviceAccounts.actAs` + +Genellikle farklı bir projeden bir servis hesabını bir kaynağa eklemek mümkün değildir çünkü bu eylemi engelleyen **`iam.disableCrossProjectServiceAccountUsage`** adlı bir kısıtlama uygulanmaktadır. + +Bu kısıtlamanın uygulanıp uygulanmadığını aşağıdaki komutu çalıştırarak doğrulayabilirsiniz: +```bash +gcloud resource-manager org-policies describe \ +constraints/iam.disableCrossProjectServiceAccountUsage \ +--project= \ +--effective + +booleanPolicy: +enforced: true +constraint: constraints/iam.disableCrossProjectServiceAccountUsage +``` +Bu, bir saldırıcının **`iam.serviceAccounts.actAs`** iznini suistimal ederek, örneğin başka bir projeden bir service account'u taklit edip yeni bir VM başlatmak için gerekli ek altyapı izinlerine sahip olmadan yetki yükseltmesine yol açabilecek davranışları engeller. + +Ancak **`orgpolicy.policy.set`** izinlerine sahip bir saldırgan, **`iam.disableServiceAccountProjectWideAccess`** kısıtlamasını devre dışı bırakarak bu sınırlamayı aşabilir. Bu, saldırganın başka bir projeden bir service account'u kendi projesindeki bir kaynağa bağlamasına izin vererek yetkilerini etkili şekilde yükseltmesine olanak tanır. +```bash +gcloud resource-manager org-policies disable-enforce \ +iam.disableCrossProjectServiceAccountUsage \ +--project= +``` ## Referanslar - [https://rhinosecuritylabs.com/cloud-security/privilege-escalation-google-cloud-platform-part-2/](https://rhinosecuritylabs.com/cloud-security/privilege-escalation-google-cloud-platform-part-2/)