mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-05 11:26:11 -08:00
Translated ['src/pentesting-cloud/gcp-security/gcp-to-workspace-pivoting
This commit is contained in:
@@ -6,10 +6,10 @@
|
||||
|
||||
### **Alan Genel Yetkilendirme Temelleri**
|
||||
|
||||
Google Workspace'in Alan Genel Yetkilendirmesi, bir kimlik nesnesinin, ya bir **harici uygulama** Google Workspace Marketplace'ten ya da bir iç **GCP Hizmet Hesabı** olarak, **kullanıcılar adına Workspace'teki verilere erişmesine** olanak tanır.
|
||||
Google Workspace'in Alan Genel yetkilendirmesi, bir kimlik nesnesinin, ya bir **harici uygulama** Google Workspace Marketplace'ten ya da bir iç **GCP Hizmet Hesabı** olarak, **kullanıcılar adına Workspace'teki verilere erişmesine** olanak tanır.
|
||||
|
||||
> [!NOTE]
|
||||
> Bu, temelde **GCP projeleri içindeki hizmet hesaplarının**, aynı organizasyondaki (veya hatta farklı bir organizasyondaki) **Workspace kullanıcılarını taklit edebilme** yeteneğine sahip olabileceği anlamına gelir.
|
||||
> Bu, temelde **GCP projeleri içindeki hizmet hesaplarının**, aynı organizasyondaki (veya farklı bir organizasyondaki) **Workspace kullanıcılarını taklit edebilme** yeteneğine sahip olabileceği anlamına gelir.
|
||||
|
||||
Bu işlemin tam olarak nasıl çalıştığı hakkında daha fazla bilgi için kontrol edin:
|
||||
|
||||
@@ -19,11 +19,11 @@ gcp-understanding-domain-wide-delegation.md
|
||||
|
||||
### Mevcut yetkilendirmeyi ele geçirme
|
||||
|
||||
Eğer bir saldırgan **GCP üzerinde bazı erişimleri ele geçirmişse** ve şirketin **geçerli bir Workspace kullanıcı e-posta adresini** (tercihen **süper yönetici**) biliyorsa, **erişim sağladığı tüm projeleri listeleyebilir**, projelerin **tüm SA'lerini listeleyebilir**, hangi **hizmet hesaplarına erişimi olduğunu kontrol edebilir** ve **taklit edebileceği her SA ile bu adımları tekrarlayabilir**.\
|
||||
Elde ettiği **tüm hizmet hesaplarının listesi** ve **Workspace** **e-posta adresleri** ile saldırgan, her hizmet hesabı ile **kullanıcıyı taklit etmeye** çalışabilir.
|
||||
Eğer bir saldırgan **GCP üzerinde bazı erişimleri ele geçirmişse** ve şirketin **geçerli bir Workspace kullanıcı e-posta adresini** (tercihen **süper yönetici**) biliyorsa, **erişim sağladığı tüm projeleri listeleyebilir**, projelerin **tüm SA'lerini listeleyebilir**, hangi **hizmet hesaplarına erişimi olduğunu** kontrol edebilir ve **taklit edebileceği her SA ile bu adımları tekrarlayabilir**.\
|
||||
Elde ettiği **tüm hizmet hesaplarının listesi** ve **Workspace** **e-posta adresleri** ile saldırgan, **her hizmet hesabıyla kullanıcıyı taklit etmeye** çalışabilir.
|
||||
|
||||
> [!CAUTION]
|
||||
> Alan genel yetkilendirmeyi yapılandırırken herhangi bir Workspace kullanıcısına ihtiyaç olmadığını unutmayın, bu nedenle sadece **bir geçerli kullanıcı bilmek yeterlidir ve taklit için gereklidir**.\
|
||||
> Alan genel yetkilendirme yapılandırılırken herhangi bir Workspace kullanıcısına ihtiyaç olmadığını unutmayın, bu nedenle sadece **bir geçerli kullanıcı bilmek yeterlidir ve taklit için gereklidir**.\
|
||||
> Ancak, **taklit edilen kullanıcının ayrıcalıkları kullanılacaktır**, bu nedenle eğer Süper Yönetici ise her şeye erişebileceksiniz. Eğer herhangi bir erişimi yoksa bu işe yaramaz.
|
||||
|
||||
#### [GCP Yetkilendirme Token'ı Oluştur](https://github.com/carlospolop/gcp_gen_delegation_token)
|
||||
@@ -38,20 +38,20 @@ python3 gen_delegation_token.py --user-email <user-email> --key-file <path-to-ke
|
||||
```
|
||||
#### [**DeleFriend**](https://github.com/axon-git/DeleFriend)
|
||||
|
||||
Bu, aşağıdaki adımları izleyerek saldırı gerçekleştirebilen bir araçtır:
|
||||
Bu, saldırıyı şu adımları izleyerek gerçekleştirebilen bir araçtır:
|
||||
|
||||
1. **GCP Projelerini Sayma** Resource Manager API kullanarak.
|
||||
2. Her proje kaynağı üzerinde yineleme yapın ve **ilk IAM kullanıcısının erişim sağladığı GCP Hizmet hesabı kaynaklarını sayın** _GetIAMPolicy_ kullanarak.
|
||||
3. **Her hizmet hesabı rolü üzerinde yineleme yapın** ve hedef hizmet hesabı kaynağında _**serviceAccountKeys.create**_ iznine sahip yerleşik, temel ve özel rolleri bulun. Editor rolünün bu izne doğal olarak sahip olduğu belirtilmelidir.
|
||||
2. Her proje kaynağı üzerinde yineleyin ve **GCP Hizmet hesabı kaynaklarını sayın**; başlangıç IAM kullanıcısının erişimi olan kaynakları _GetIAMPolicy_ kullanarak belirleyin.
|
||||
3. **Her hizmet hesabı rolü üzerinde yineleyin** ve hedef hizmet hesabı kaynağında _**serviceAccountKeys.create**_ iznine sahip yerleşik, temel ve özel rolleri bulun. Editor rolünün bu izni doğası gereği sahip olduğunu belirtmek gerekir.
|
||||
4. IAM politikasında ilgili izne sahip bulunan her hizmet hesabı kaynağı için **yeni bir `KEY_ALG_RSA_2048`** özel anahtar oluşturun.
|
||||
5. **Her yeni hizmet hesabı üzerinde yineleme yapın ve bunun için bir `JWT`** **nesnesi** oluşturun; bu nesne SA özel anahtar kimlik bilgileri ve bir OAuth kapsamından oluşur. Yeni bir _JWT_ nesnesi oluşturma süreci, **oauth_scopes.txt** listesindeki tüm mevcut OAuth kapsamı kombinasyonları üzerinde **yineleme yapacaktır**; böylece tüm delege etme olasılıklarını bulmak için. **oauth_scopes.txt** listesi, Workspace kimliklerini kötüye kullanmak için ilgili bulduğumuz tüm OAuth kapsamlarıyla güncellenmiştir.
|
||||
6. `_make_authorization_grant_assertion` yöntemi, DWD altında JWT'ler oluşturmak için bir **hedef çalışma alanı kullanıcısı** olarak adlandırılan _subject_ beyan etmenin gerekliliğini ortaya koyar. Bu, belirli bir kullanıcı gerektiriyormuş gibi görünebilir, ancak **DWD, bir alan içindeki her kimliği etkiler** olduğunu anlamak önemlidir. Sonuç olarak, **herhangi bir alan kullanıcısı** için bir JWT oluşturmak, o alandaki tüm kimlikleri etkiler; bu, kombinasyon sayma kontrolümüzle tutarlıdır. Kısacası, ilerlemek için bir geçerli Workspace kullanıcısı yeterlidir.\
|
||||
Bu kullanıcı, DeleFriend’in _config.yaml_ dosyasında tanımlanabilir. Hedef çalışma alanı kullanıcısı henüz bilinmiyorsa, araç, GCP projelerinde rolleri olan alan kullanıcılarını tarayarak geçerli çalışma alanı kullanıcılarının otomatik olarak tanımlanmasını kolaylaştırır. JWT'lerin alan spesifik olduğunu ve her kullanıcı için oluşturulmadığını (tekrar) belirtmek önemlidir; bu nedenle, otomatik süreç her alan için tek bir benzersiz kimliği hedef alır.
|
||||
7. **Her JWT için yeni bir taşıyıcı erişim belirteci sayın ve belirteci tokeninfo API'si ile doğrulayın.**
|
||||
5. **Her yeni hizmet hesabı üzerinde yineleyin ve bunun için bir `JWT`** **nesnesi** oluşturun; bu nesne SA özel anahtar kimlik bilgileri ve bir OAuth kapsamından oluşur. Yeni bir _JWT_ nesnesi oluşturma süreci, **oauth_scopes.txt** listesindeki tüm mevcut OAuth kapsamı kombinasyonları üzerinde **yineleme** yaparak tüm delege etme olasılıklarını bulmak için gerçekleştirilir. **oauth_scopes.txt** listesi, Workspace kimliklerini kötüye kullanmak için ilgili bulduğumuz tüm OAuth kapsamlarıyla güncellenir.
|
||||
6. `_make_authorization_grant_assertion` yöntemi, DWD altında JWT'ler oluşturmak için bir t**arget workspace user** olarak adlandırılan _subject_ tanımlamanın gerekliliğini ortaya koyar. Bu, belirli bir kullanıcı gerektiriyormuş gibi görünse de, **DWD'nin bir alan içindeki her kimliği etkilediğini** anlamak önemlidir. Sonuç olarak, **herhangi bir alan kullanıcısı** için bir JWT oluşturmak, o alandaki tüm kimlikleri etkiler; bu, kombinasyon sayma kontrolümüzle tutarlıdır. Kısacası, ilerlemek için bir geçerli Workspace kullanıcısı yeterlidir.\
|
||||
Bu kullanıcı, DeleFriend’in _config.yaml_ dosyasında tanımlanabilir. Hedef bir workspace kullanıcısı henüz bilinmiyorsa, araç, GCP projelerinde rolleri olan alan kullanıcılarını tarayarak geçerli workspace kullanıcılarının otomatik olarak tanımlanmasını kolaylaştırır. JWT'lerin alan spesifik olduğunu ve her kullanıcı için üretilmediğini (tekrar) belirtmek önemlidir; bu nedenle, otomatik süreç her alan için tek bir benzersiz kimliği hedef alır.
|
||||
7. **Her JWT için yeni bir bearer erişim token'ı sayın ve token'ı tokeninfo API'sine karşı doğrulayın.**
|
||||
|
||||
#### [Gitlab'ın Python scripti](https://gitlab.com/gitlab-com/gl-security/threatmanagement/redteam/redteam-public/gcp_misc/-/blob/master/gcp_delegation.py)
|
||||
|
||||
Gitlab, SA kimlik bilgileri ve taklit edilecek kullanıcı ile birlikte bir json belirterek kullanıcı dizinini listeleyip yeni bir yönetici hesabı oluşturabilen [bu Python scriptini](https://gitlab.com/gitlab-com/gl-security/gl-redteam/gcp_misc/blob/master/gcp_delegation.py) oluşturmuştur. İşte nasıl kullanacağınız:
|
||||
Gitlab, SA kimlik bilgileri ve taklit edilecek kullanıcıyı belirten bir json ile yeni bir yönetici hesabı oluştururken kullanıcı dizinini listeleyebilen [bu Python scriptini](https://gitlab.com/gitlab-com/gl-security/gl-redteam/gcp_misc/blob/master/gcp_delegation.py) oluşturmuştur. İşte nasıl kullanacağınız:
|
||||
```bash
|
||||
# Install requirements
|
||||
pip install --upgrade --user oauth2client
|
||||
@@ -77,19 +77,19 @@ pip install --upgrade --user oauth2client
|
||||
|
||||
**Domain Wide Delegations'ı kontrol etmek mümkündür** [**https://admin.google.com/u/1/ac/owl/domainwidedelegation**](https://admin.google.com/u/1/ac/owl/domainwidedelegation)**.**
|
||||
|
||||
**GCP projesinde hizmet hesapları oluşturma yeteneğine** ve **GWS için süper admin ayrıcalığına sahip bir saldırgan, SAs'ın bazı GWS kullanıcılarını taklit etmesine izin veren yeni bir delegasyon oluşturabilir:**
|
||||
**GCP projesinde hizmet hesapları oluşturma yeteneğine** ve **GWS için süper yönetici ayrıcalığına sahip bir saldırgan, SAs'ın bazı GWS kullanıcılarını taklit etmesine izin veren yeni bir delegasyon oluşturabilir:**
|
||||
|
||||
1. **Yeni Bir Hizmet Hesabı ve İlgili Anahtar Çifti Oluşturma:** GCP'de, yeni hizmet hesabı kaynakları ya konsol aracılığıyla etkileşimli olarak ya da doğrudan API çağrıları ve CLI araçları kullanarak programlı olarak üretilebilir. Bu, **`iam.serviceAccountAdmin`** rolünü veya **`iam.serviceAccounts.create`** **izinine** sahip herhangi bir özel rolü gerektirir. Hizmet hesabı oluşturulduktan sonra, **ilişkili bir anahtar çifti** oluşturmak için devam edeceğiz (**`iam.serviceAccountKeys.create`** izni).
|
||||
2. **Yeni delegasyonun oluşturulması:** **Sadece Süper Admin rolünün Google Workspace'te küresel Domain-Wide delegasyonu kurma yeteneğine sahip olduğunu** anlamak önemlidir ve Domain-Wide delegasyonu **programlı olarak kurulamaz,** yalnızca Google Workspace **konsolu** aracılığıyla **manuel olarak** oluşturulabilir ve ayarlanabilir.
|
||||
- Kuralın oluşturulması, **API kontrolleri → Google Workspace Admin konsolunda Domain-Wide delegasyonu yönet** sayfasında bulunabilir.
|
||||
3. **OAuth kapsamı ayrıcalıklarının eklenmesi:** Yeni bir delegasyon yapılandırırken, Google yalnızca 2 parametre gerektirir: İstemci Kimliği, bu **GCP Hizmet Hesabı** kaynağının **OAuth Kimliği** ve delegasyonun hangi API çağrılarını gerektirdiğini tanımlayan **OAuth kapsamları**.
|
||||
2. **Yeni delegasyonun oluşturulması:** **Sadece Süper Yönetici rolünün Google Workspace'te küresel Domain-Wide delegasyonu kurma yeteneğine sahip olduğunu** anlamak önemlidir ve Domain-Wide delegasyonu **programlı olarak kurulamaz,** yalnızca Google Workspace **konsolu** aracılığıyla **manuel olarak** oluşturulabilir ve ayarlanabilir.
|
||||
- Kuralın oluşturulması, **API kontrolleri → Google Workspace Yönetici konsolunda Domain-Wide delegasyonu yönet** sayfasında bulunabilir.
|
||||
3. **OAuth kapsamı ayrıcalığını ekleme:** Yeni bir delegasyon yapılandırırken, Google yalnızca 2 parametre gerektirir: **GCP Hizmet Hesabı** kaynağının **OAuth ID'si** olan İstemci Kimliği ve delegasyonun gerektirdiği API çağrılarını tanımlayan **OAuth kapsamları**.
|
||||
- **OAuth kapsamlarının tam listesi** [**burada**](https://developers.google.com/identity/protocols/oauth2/scopes) bulunabilir, ancak burada bir öneri: `https://www.googleapis.com/auth/userinfo.email, https://www.googleapis.com/auth/cloud-platform, https://www.googleapis.com/auth/admin.directory.group, https://www.googleapis.com/auth/admin.directory.user, https://www.googleapis.com/auth/admin.directory.domain, https://mail.google.com/, https://www.googleapis.com/auth/drive, openid`
|
||||
4. **Hedef kimlik adına hareket etme:** Bu noktada, GWS'de işlevsel bir delegasyon nesnesine sahibiz. Artık, **GCP Hizmet Hesabı özel anahtarını kullanarak API çağrıları gerçekleştirebiliriz** (OAuth kapsamı parametresinde tanımlanan kapsamda) ve **Google Workspace'te mevcut olan herhangi bir kimlik adına hareket edebiliriz**. Öğrendiğimiz gibi, hizmet hesabı ihtiyaçlarına göre ve sahip olduğu izinlere göre REST API uygulamaları için erişim belirteçleri üretecektir.
|
||||
4. **Hedef kimliği adına hareket etme:** Bu noktada, GWS'de işlevsel bir delegasyon nesnesine sahibiz. Artık, **GCP Hizmet Hesabı özel anahtarını kullanarak API çağrıları gerçekleştirebiliriz** (OAuth kapsamı parametresinde tanımlanan kapsamda) ve **Google Workspace'te mevcut olan herhangi bir kimlik adına hareket edebiliriz**. Öğrendiğimiz gibi, hizmet hesabı ihtiyaçlarına göre ve REST API uygulamalarına sahip olduğu izinlere göre erişim belirteçleri üretecektir.
|
||||
- Bu delegasyonu kullanmak için bazı **araçlar** için **önceki bölüme** bakın.
|
||||
|
||||
#### Çapraz Kurumsal delegasyon
|
||||
|
||||
OAuth SA Kimliği küreseldir ve **çapraz kurumsal delegasyon** için kullanılabilir. Çapraz küresel delegasyonu önlemek için herhangi bir kısıtlama uygulanmamıştır. Basitçe ifade etmek gerekirse, **farklı GCP organizasyonlarından hizmet hesapları, diğer Workspace organizasyonlarında domain-wide delegasyonu yapılandırmak için kullanılabilir**. Bu, **sadece Workspace için Süper Admin erişimine ihtiyaç duyulması** anlamına gelir ve aynı GCP hesabına erişim gerektirmez, çünkü saldırgan kendi kontrolündeki GCP hesabında Hizmet Hesapları ve özel anahtarlar oluşturabilir.
|
||||
OAuth SA ID'si küreseldir ve **çapraz kurumsal delegasyon** için kullanılabilir. Çapraz küresel delegasyonu önlemek için herhangi bir kısıtlama uygulanmamıştır. Basitçe ifade etmek gerekirse, **farklı GCP organizasyonlarından hizmet hesapları, diğer Workspace organizasyonlarında domain-wide delegasyonu yapılandırmak için kullanılabilir**. Bu, **sadece Workspace için Süper Yönetici erişimine ihtiyaç duyulması** anlamına gelir ve aynı GCP hesabına erişim gerektirmez, çünkü saldırgan kendi kontrolündeki GCP hesabında Hizmet Hesapları ve özel anahtarlar oluşturabilir.
|
||||
|
||||
### Workspace'i listelemek için bir Proje Oluşturma
|
||||
|
||||
@@ -97,7 +97,7 @@ OAuth SA Kimliği küreseldir ve **çapraz kurumsal delegasyon** için kullanıl
|
||||
|
||||
Bu nedenle, bir kullanıcı **bir proje oluşturabilir**, yeni projesinde Workspace'i listelemek için **API'leri etkinleştirebilir** ve bunu **listelemeye** çalışabilir.
|
||||
|
||||
> [!DİKKAT]
|
||||
> [!CAUTION]
|
||||
> Bir kullanıcının Workspace'i listeleyebilmesi için yeterli Workspace izinlerine de sahip olması gerekir (her kullanıcı dizini listeleyemez).
|
||||
```bash
|
||||
# Create project
|
||||
@@ -127,11 +127,11 @@ Daha fazla numaralandırma için kontrol edin:
|
||||
Giriş yapmak için `gcloud` akışı hakkında daha fazla bilgi bulabilirsiniz:
|
||||
|
||||
{{#ref}}
|
||||
../gcp-persistence/gcp-non-svc-persistance.md
|
||||
../gcp-persistence/gcp-non-svc-persistence.md
|
||||
{{#endref}}
|
||||
|
||||
Orada açıklandığı gibi, gcloud **`https://www.googleapis.com/auth/drive`** kapsamını talep edebilir, bu da bir kullanıcının sürücüsüne erişmesine izin verir.\
|
||||
Bir saldırgan olarak, eğer bir kullanıcının bilgisayarını **fiziksel olarak** ele geçirdiyseniz ve **kullanıcı hala** hesabıyla giriş yapıyorsa, sürücüye erişim sağlayan bir token oluşturarak giriş yapabilirsiniz:
|
||||
Bir saldırgan olarak, eğer bir kullanıcının bilgisayarını **fiziksel olarak** ele geçirdiyseniz ve **kullanıcı hala** hesabıyla oturum açmışsa, sürüme erişim sağlayan bir token oluşturarak giriş yapabilirsiniz:
|
||||
```bash
|
||||
gcloud auth login --enable-gdrive-access
|
||||
```
|
||||
@@ -140,7 +140,7 @@ Eğer bir saldırgan bir kullanıcının bilgisayarını ele geçirirse, `google
|
||||
<figure><img src="../../../images/image (342).png" alt="" width="563"><figcaption></figcaption></figure>
|
||||
|
||||
> [!WARNING]
|
||||
> Bu nedenle, kullanıcı bir sonraki giriş yaptığında, saldırganın drive'a erişmek için kötüye kullanabileceği **drive'a erişim izni olan bir token oluşturacaktır**. Açıkça, tarayıcı oluşturulan token'ın drive'a erişim izni olduğunu gösterecektir, ancak kullanıcı **`gcloud auth login`** komutunu kendisi çağıracağı için muhtemelen **hiçbir şeyden şüphelenmeyecektir.**
|
||||
> Bu nedenle, kullanıcı bir sonraki oturum açtığında, saldırganın drive'a erişim sağlamak için kötüye kullanabileceği **drive'a erişim izni olan bir token oluşturacaktır**. Açıkça, tarayıcı oluşturulan token'ın drive'a erişim izni olduğunu gösterecektir, ancak kullanıcı **`gcloud auth login`** komutunu kendisi çağıracağı için muhtemelen **hiçbir şeyden şüphelenmeyecektir.**
|
||||
>
|
||||
> Drive dosyalarını listelemek için: **`curl -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://www.googleapis.com/drive/v3/files"`**
|
||||
|
||||
@@ -148,7 +148,7 @@ Eğer bir saldırgan bir kullanıcının bilgisayarını ele geçirirse, `google
|
||||
|
||||
### Ayrıcalıklı GCP kullanıcılarına erişim
|
||||
|
||||
Eğer bir saldırgan GWS üzerinde tam erişime sahipse, GCP üzerinde ayrıcalıklı erişime sahip gruplara veya kullanıcılara erişebilecektir, bu nedenle GWS'den GCP'ye geçiş genellikle daha "basit"dir çünkü **GWS'deki kullanıcılar GCP üzerinde yüksek ayrıcalıklara sahiptir**.
|
||||
Eğer bir saldırgan GWS üzerinde tam erişime sahipse, GCP üzerinde ayrıcalıklı erişime sahip gruplara veya kullanıcılara erişim sağlayabilecektir, bu nedenle GWS'den GCP'ye geçiş genellikle daha "basit"dir çünkü **GWS'deki kullanıcılar GCP üzerinde yüksek ayrıcalıklara sahiptir**.
|
||||
|
||||
### Google Grupları Ayrıcalık Yükseltme
|
||||
|
||||
|
||||
@@ -10,9 +10,9 @@ https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-met
|
||||
|
||||
## Google Groups Phishing
|
||||
|
||||
Görünüşe göre, varsayılan olarak, workspace üyeleri [**gruplar oluşturabilir**](https://groups.google.com/all-groups) **ve insanları bu gruplara davet edebilirler**. Daha sonra kullanıcıya gönderilecek e-postayı **bazı bağlantılar ekleyerek** değiştirebilirsiniz. **E-posta bir google adresinden gelecektir**, bu nedenle **gerçekçi** görünecek ve insanlar bağlantıya tıklayabilir.
|
||||
Görünüşe göre, varsayılan olarak, workspace üyeleri [**gruplar oluşturabilir**](https://groups.google.com/all-groups) **ve insanları davet edebilirler**. Daha sonra kullanıcıya gönderilecek e-postayı **bazı bağlantılar ekleyerek** değiştirebilirsiniz. **E-posta bir google adresinden gelecektir**, bu nedenle **gerçekçi** görünecek ve insanlar bağlantıya tıklayabilir.
|
||||
|
||||
Ayrıca, **FROM** adresini **Google grup e-postası** olarak ayarlamak da mümkündür, böylece **gruptaki kullanıcılara daha fazla e-posta gönderebilirsiniz**, aşağıdaki resimde olduğu gibi **`google--support@googlegroups.com`** grubu oluşturulmuş ve gruptaki **tüm üyelere** bir **e-posta gönderilmiştir** (izinleri olmadan eklenmişlerdir).
|
||||
Ayrıca, **FROM** adresini **Google grup e-postası** olarak ayarlamak da mümkündür, böylece **gruptaki kullanıcılara daha fazla e-posta gönderebilirsiniz**, aşağıdaki resimde olduğu gibi **`google--support@googlegroups.com`** grubu oluşturulmuş ve gruptaki **tüm üyelere** (herhangi bir onay olmadan eklenmiş) **bir e-posta gönderilmiştir**.
|
||||
|
||||
<figure><img src="../../../images/image (5) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@@ -29,17 +29,17 @@ Bunun geçmişte nasıl çalıştığını kontrol edebilirsiniz: [https://www.y
|
||||
|
||||
## Google Doc Phishing
|
||||
|
||||
Geçmişte, **görünüşte meşru bir belge** oluşturmak ve bir yorumda **bazı e-postaları (örneğin @user@gmail.com)** belirtmek mümkündü. Google, **o e-posta adresine** belgedeki bahsedildiğini bildiren bir e-posta gönderdi.\
|
||||
Günümüzde bu çalışmıyor ama eğer **kurbanın e-posta erişimini belgeye verirseniz**, Google bununla ilgili bir e-posta gönderecektir. Birini bahsettiğinizde görünen mesaj şudur:
|
||||
Geçmişte, **görünüşte meşru bir belge** oluşturmak ve bir yorumda **bazı e-postaları (örneğin @user@gmail.com)** belirtmek mümkündü. Google, o e-posta adresine **belgede bahsedildiğini** bildiren bir e-posta gönderdi.\
|
||||
Günümüzde bu çalışmıyor ama eğer **kurbanın e-posta erişimini belgeye verirseniz**, Google bununla ilgili bir e-posta gönderecektir. Birini bahsettiğinizde görünen mesaj budur:
|
||||
|
||||
<figure><img src="../../../images/image (7).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
> [!TIP]
|
||||
> Kurbanların, dış bir belgenin onlarla paylaşıldığını belirten e-postaların e-posta kutularına ulaşmasını engelleyen koruma mekanizmaları olabilir.
|
||||
> Kurbanların, kendilerine dış bir belgenin paylaşıldığını belirten e-postaların ulaşmasını engelleyen koruma mekanizmaları olabilir.
|
||||
|
||||
## Google Calendar Phishing
|
||||
|
||||
**Bir takvim etkinliği oluşturabilir** ve saldırdığınız şirketin sahip olduğu kadar e-posta adresi ekleyebilirsiniz. Bu takvim etkinliğini mevcut zamandan **5 veya 15 dakika** sonra planlayın. Etkinliği gerçekçi gösterin ve **okumaları gereken bir şey olduğunu belirten bir yorum ve başlık ekleyin** (ile birlikte **phishing linki**).
|
||||
**Bir takvim etkinliği oluşturabilir** ve saldırdığınız şirketin sahip olduğu kadar e-posta adresi ekleyebilirsiniz. Bu takvim etkinliğini mevcut zamandan **5 veya 15 dakika** sonra planlayın. Etkinliği gerçekçi gösterin ve **okumaları gereken bir şey olduğunu belirten bir yorum ve başlık ekleyin** (ile **phishing link**).
|
||||
|
||||
Bu, "İnsanları İşten Çıkarma" başlıklı bir toplantı ile tarayıcıda görünecek uyarıdır, bu nedenle daha phishing benzeri bir başlık ayarlayabilirsiniz (ve hatta e-posta ile ilişkilendirilmiş ismi değiştirebilirsiniz).
|
||||
|
||||
@@ -47,14 +47,14 @@ Bu, "İnsanları İşten Çıkarma" başlıklı bir toplantı ile tarayıcıda g
|
||||
|
||||
Daha az şüpheli görünmesi için:
|
||||
|
||||
- **Alıcıların diğer davet edilen kişileri göremeyecekleri şekilde ayarlayın.**
|
||||
- **Etkinlik hakkında bildirim e-postaları göndermeyin.** Böylece, insanlar sadece 5 dakika içinde bir toplantı hakkında uyarı görecek ve o bağlantıyı okumaları gerektiğini bilecekler.
|
||||
- **Alıcıların diğer davet edilen kişileri göremeyecek şekilde ayarlayın**
|
||||
- **Etkinlik hakkında bildirim e-postaları göndermeyin**. Böylece, insanlar sadece 5 dakika içinde bir toplantı hakkında uyarı görecek ve o bağlantıyı okumaları gerektiğini bilecekler.
|
||||
- Görünüşe göre API kullanarak **doğru** olarak **insanların** etkinliği **kabul ettiğini** ayarlayabilir ve hatta **onların adına yorumlar oluşturabilirsiniz**.
|
||||
|
||||
## App Scripts Redirect Phishing
|
||||
|
||||
[https://script.google.com/](https://script.google.com/) adresinde bir script oluşturmak ve **herkesin erişebileceği bir web uygulaması olarak sergilemek** mümkündür; bu, meşru alan **`script.google.com`** kullanacaktır.\
|
||||
Aşağıdaki gibi bir kod ile bir saldırgan, bu sayfada durmaksızın keyfi içerik yüklemesini sağlayabilir:
|
||||
Aşağıdaki gibi bir kod ile bir saldırgan, bu sayfada keyfi içerik yüklemesini sağlayabilir ve alanı sürekli olarak erişmeye devam edebilir:
|
||||
```javascript
|
||||
function doGet() {
|
||||
return HtmlService.createHtmlOutput(
|
||||
@@ -71,7 +71,7 @@ return HtmlService.createHtmlOutput(
|
||||
|
||||
## App Scripts OAuth Phishing
|
||||
|
||||
Belgelere bağlı App Scripts oluşturmak, kurbanın OAuth token'ına erişim sağlamaya çalışmak mümkündür, daha fazla bilgi için kontrol edin:
|
||||
Kurbanın OAuth token'ına erişim sağlamak için belgelere bağlı App Scripts oluşturmak mümkündür, daha fazla bilgi için kontrol edin:
|
||||
|
||||
{{#ref}}
|
||||
gws-app-scripts.md
|
||||
@@ -82,11 +82,11 @@ gws-app-scripts.md
|
||||
Önceki tekniklerden herhangi biri, kullanıcının **Google OAuth uygulamasına** erişmesini sağlamak için kullanılabilir; bu uygulama kullanıcıdan bazı **erişim** talep edecektir. Eğer kullanıcı **kaynağa** **güveniyorsa**, **uygulamaya** da **güvenebilir** (yüksek ayrıcalıklı izinler istese bile).
|
||||
|
||||
> [!NOTE]
|
||||
> Google, uygulamanın güvenilir olmadığını belirten çirkin bir uyarı penceresi sunmaktadır ve Workspace yöneticileri, insanların OAuth uygulamalarını kabul etmelerini engelleyebilir.
|
||||
> Google, uygulamanın güvenilir olmadığını belirten çirkin bir uyarı sunar ve Workspace yöneticileri, insanların OAuth uygulamalarını kabul etmelerini engelleyebilir.
|
||||
|
||||
**Google**, kullanıcılar adına çeşitli **Google hizmetleri** ile **etkileşimde bulunabilen** uygulamalar oluşturulmasına izin verir: Gmail, Drive, GCP...
|
||||
|
||||
Başka kullanıcılar adına **hareket edecek** bir uygulama oluştururken, geliştiricinin **GCP içinde bir OAuth uygulaması** oluşturması ve uygulamanın kullanıcı verilerine erişmesi için gerekli olan kapsamları (izinleri) belirtmesi gerekir.\
|
||||
**Diğer kullanıcılar adına** hareket edecek bir uygulama oluştururken, geliştiricinin **GCP içinde bir OAuth uygulaması** oluşturması ve uygulamanın kullanıcı verilerine erişmesi için gerekli olan kapsamları (izinleri) belirtmesi gerekir.\
|
||||
Bir **kullanıcı**, o **uygulamayı** **kullanmak** istediğinde, kendilerine belirtilen kapsamlar dahilinde uygulamanın verilerine erişim sağlayacağını **kabul etmeleri** için **istek** alacaklardır.
|
||||
|
||||
Bu, teknik bilgisi olmayan kullanıcıları **hassas bilgilere erişen uygulamaları kullanmaya** **phish** etmek için çok cazip bir yoldur çünkü sonuçları anlamayabilirler. Ancak, organizasyon hesaplarında bunun olmasını önlemenin yolları vardır.
|
||||
@@ -98,7 +98,7 @@ Daha önce belirtildiği gibi, Google her zaman kullanıcının uygulamaya verdi
|
||||
Bu istem, aşağıdaki durumlarda uygulamalarda görünür:
|
||||
|
||||
- Özel verilere erişebilen herhangi bir kapsam kullanıyorsa (Gmail, Drive, GCP, BigQuery...)
|
||||
- 100'den az kullanıcıya sahip uygulamalar (100'den fazla kullanıcıya sahip uygulamalar için doğrulama süreci de gereklidir, böylece doğrulanmamış istem gösterilmez)
|
||||
- 100'den az kullanıcıya sahip uygulamalar (100'den fazla kullanıcıya sahip uygulamalar için doğrulama süreci de gereklidir, böylece doğrulanmamış istemi göstermeyi durdurur)
|
||||
|
||||
### İlginç Kapsamlar
|
||||
|
||||
@@ -112,11 +112,11 @@ Bu istem, aşağıdaki durumlarda uygulamalarda görünür:
|
||||
**Bir OAuth Client ID oluşturmaya başlayın**
|
||||
|
||||
1. [https://console.cloud.google.com/apis/credentials/oauthclient](https://console.cloud.google.com/apis/credentials/oauthclient) adresine gidin ve onay ekranını yapılandırmak için tıklayın.
|
||||
2. Ardından, **kullanıcı türünün** **içsel** (sadece kuruluşunuzdaki kişiler için) mi yoksa **dışsal** mı olduğunu sorulacaktır. İhtiyacınıza uygun olanı seçin.
|
||||
2. Ardından, **kullanıcı türünün** **içsel** (sadece kuruluşunuzdaki kişiler için) mi yoksa **dışsal** mı olduğunu soracaktır. İhtiyacınıza uygun olanı seçin.
|
||||
- İçsel, eğer kuruluşun bir kullanıcısını zaten ele geçirdiyseniz ve bu uygulamayı başka birini **phish** etmek için oluşturuyorsanız ilginç olabilir.
|
||||
3. Uygulamaya bir **isim** verin, bir **destek e-postası** (kendinizi biraz daha anonimleştirmek için bir googlegroup e-postası ayarlayabileceğinizi unutmayın), bir **logo**, **yetkili alanlar** ve **güncellemeler** için başka bir **e-posta** verin.
|
||||
4. **OAuth kapsamlarını** **seçin**.
|
||||
- Bu sayfa, hassas izinler, hassas olmayan izinler ve kısıtlı izinler olarak üçe ayrılmıştır. Her yeni izin eklediğinizde, kendi kategorisine eklenir. İstenen izinlere bağlı olarak, kullanıcının bu izinlerin ne kadar hassas olduğunu belirten farklı istemler görünecektir.
|
||||
- Bu sayfa, hassas izinler, hassas olmayan izinler ve kısıtlı izinler olarak üçe ayrılmıştır. Her yeni izin eklediğinizde, kendi kategorisine eklenir. İstenen izinlere bağlı olarak, kullanıcılara bu izinlerin ne kadar hassas olduğunu belirten farklı istemler görünecektir.
|
||||
- Hem **`admin.directory.user.readonly`** hem de **`cloud-platform`** hassas izinlerdir.
|
||||
5. **Test kullanıcılarını ekleyin.** Uygulamanın durumu test aşamasındayken, yalnızca bu kullanıcılar uygulamaya erişebilecektir, bu nedenle **phish edeceğiniz e-postayı eklemeyi unutmayın**.
|
||||
|
||||
@@ -142,7 +142,7 @@ python3 app.py --client-id "<client_id>" --client-secret "<client_secret>"
|
||||
Uygulama, kolayca kullanılabilecek **erişim ve yenileme token'larını** gösterecektir. **Bu token'ları nasıl kullanacağınız hakkında daha fazla bilgi için kontrol edin**:
|
||||
|
||||
{{#ref}}
|
||||
../../gcp-security/gcp-persistence/gcp-non-svc-persistance.md
|
||||
../../gcp-security/gcp-persistence/gcp-non-svc-persistence.md
|
||||
{{#endref}}
|
||||
|
||||
#### `glcoud` Kullanımı
|
||||
@@ -156,6 +156,6 @@ Web konsolu yerine gcloud kullanarak bir şeyler yapmak mümkündür, kontrol ed
|
||||
## Referanslar
|
||||
|
||||
- [https://www.youtube-nocookie.com/embed/6AsVUS79gLw](https://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](https://www.youtube.com/watch?v=KTVHLolz6cE) - Mike Felch ve Beau Bullock - OK Google, GSuite'i Kırmak için Ne Yapmalıyım?
|
||||
- [https://www.youtube.com/watch?v=KTVHLolz6cE](https://www.youtube.com/watch?v=KTVHLolz6cE) - Mike Felch ve Beau Bullock - OK Google, GSuite'i Kırmızı Takım Olarak Nasıl Ele Geçiririm?
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user