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
|
||||
|
||||
Για περισσότερες πληροφορίες ελέγξτε:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-queue.md
|
||||
{{#endref}}
|
||||
|
||||
### Actions: `Microsoft.Storage/storageAccounts/queueServices/queues/write`
|
||||
|
||||
Αυτή η άδεια επιτρέπει σε έναν επιτιθέμενο να δημιουργήσει ή να τροποποιήσει ουρές και τις ιδιότητές τους εντός του λογαριασμού αποθήκευσης. Μπορεί να χρησιμοποιηθεί για τη δημιουργία μη εξουσιοδοτημένων ουρών, την τροποποίηση μεταδεδομένων ή την αλλαγή λιστών ελέγχου πρόσβασης (ACLs) για να παραχωρήσει ή να περιορίσει την πρόσβαση. Αυτή η δυνατότητα θα μπορούσε να διαταράξει τις ροές εργασίας, να εισάγει κακόβουλα δεδομένα, να εξάγει ευαίσθητες πληροφορίες ή να χειριστεί τις ρυθμίσεις της ουράς για να επιτρέψει περαιτέρω επιθέσεις.
|
||||
```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>
|
||||
```
|
||||
## Αναφορές
|
||||
|
||||
- [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
|
||||
|
||||
Για περισσότερες πληροφορίες ελέγξτε:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-sql.md
|
||||
{{#endref}}
|
||||
|
||||
### Κοινές Τεχνικές Διατήρησης
|
||||
|
||||
- Συμβιβασμός SQL credentials ή δημιουργία ενός SQL χρήστη (ενεργοποίηση SQL auth αν χρειάζεται)
|
||||
- Ανάθεση ενός συμβιβασμένου χρήστη ως διαχειριστή Entra ID (ενεργοποίηση Entra ID auth αν χρειάζεται)
|
||||
- Backdoor στη VM (αν χρησιμοποιείται SQL VM)
|
||||
- Δημιουργία κανόνα FW για τη διατήρηση πρόσβασης στη βάση δεδομένων SQL
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
@@ -11,13 +11,26 @@
|
||||
|
||||
|
||||
### `Microsoft.DocumentDB/databaseAccounts/read` && `Microsoft.DocumentDB/databaseAccounts/write`
|
||||
Με αυτή την άδεια, μπορείτε να δημιουργήσετε ή να ενημερώσετε λογαριασμούς Azure Cosmos DB. Αυτό περιλαμβάνει την τροποποίηση ρυθμίσεων σε επίπεδο λογαριασμού, την προσθήκη ή την αφαίρεση περιοχών, την αλλαγή επιπέδων συνέπειας και την ενεργοποίηση ή απενεργοποίηση χαρακτηριστικών όπως οι εγγραφές πολλαπλών περιοχών.
|
||||
Με αυτή την άδεια, μπορείτε να δημιουργήσετε ή να ενημερώσετε λογαριασμούς Azure Cosmos DB. Αυτό περιλαμβάνει την τροποποίηση ρυθμίσεων σε επίπεδο λογαριασμού, την ενεργοποίηση ή απενεργοποίηση αυτόματης εναλλαγής, τη διαχείριση ελέγχων πρόσβασης δικτύου, την ρύθμιση πολιτικών αντιγράφων ασφαλείας και την προσαρμογή επιπέδων συνέπειας. Οι επιτιθέμενοι με αυτή την άδεια θα μπορούσαν να τροποποιήσουν ρυθμίσεις για να αποδυναμώσουν τους ελέγχους ασφαλείας, να διαταράξουν τη διαθεσιμότητα ή να εξάγουν δεδομένα τροποποιώντας κανόνες δικτύου.
|
||||
```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
|
||||
```
|
||||
Επιπλέον, μπορείτε να ενεργοποιήσετε τις διαχειριζόμενες ταυτότητες στον λογαριασμό:
|
||||
```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`
|
||||
Με αυτή την άδεια, μπορείτε να δημιουργήσετε ή να τροποποιήσετε κοντέινερ (συλλογές) εντός μιας SQL βάσης δεδομένων ενός λογαριασμού Azure Cosmos DB. Τα κοντέινερ χρησιμοποιούνται για την αποθήκευση δεδομένων, και οι αλλαγές σε αυτά μπορούν να επηρεάσουν τη δομή και τα πρότυπα πρόσβασης της βάσης δεδομένων.
|
||||
```bash
|
||||
@@ -56,7 +69,7 @@ az cosmosdb failover-priority-change \
|
||||
|
||||
```
|
||||
### `Microsoft.DocumentDB/databaseAccounts/regenerateKey/action`
|
||||
Με αυτή την άδεια, μπορείτε να αναγεννήσετε τα κύρια ή δευτερεύοντα κλειδιά για έναν λογαριασμό Azure Cosmos DB. Αυτό χρησιμοποιείται συνήθως για την ενίσχυση της ασφάλειας αντικαθιστώντας τα παλιά κλειδιά, αλλά μπορεί να διαταράξει την πρόσβαση για υπηρεσίες ή εφαρμογές που βασίζονται στα τρέχοντα κλειδιά.
|
||||
Με αυτή την άδεια, μπορείτε να αναγεννήσετε τα κύρια ή δευτερεύοντα κλειδιά για έναν λογαριασμό Azure Cosmos DB. Αυτό χρησιμοποιείται συνήθως για την ενίσχυση της ασφάλειας αντικαθιστώντας τα παλιά κλειδιά, αλλά μπορεί να διαταράξει την πρόσβαση σε υπηρεσίες ή εφαρμογές που βασίζονται στα τρέχοντα κλειδιά.
|
||||
```bash
|
||||
az cosmosdb keys regenerate \
|
||||
--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`
|
||||
Με αυτή την άδεια, μπορείτε να δημιουργήσετε νέες ορισμούς ρόλων MongoDB εντός ενός λογαριασμού Azure Cosmos DB. Αυτό επιτρέπει τον καθορισμό προσαρμοσμένων ρόλων με συγκεκριμένες άδειες για χρήστες MongoDB.
|
||||
```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`
|
||||
Με αυτή την άδεια, μπορείτε να δημιουργήσετε νέες ορισμούς χρηστών MongoDB εντός ενός λογαριασμού Azure Cosmos DB. Αυτό επιτρέπει την παροχή χρηστών με συγκεκριμένους ρόλους και επίπεδα πρόσβασης σε βάσεις δεδομένων MongoDB.
|
||||
```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 @@
|
||||
|
||||
### (`Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write`, `Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read`) & (`Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write`, `Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/read`)
|
||||
|
||||
Με αυτές τις άδειες μπορείτε να εκτελέσετε privilege escalation δίνοντας σε έναν χρήστη τις άδειες να εκτελεί ερωτήματα και να συνδέεται στη βάση δεδομένων. Πρώτα δημιουργείται ένας ρόλος ο οποίος δίνει τις απαραίτητες άδειες και πεδία.
|
||||
Με αυτές τις άδειες μπορείτε να εκτελέσετε privilege escalation δίνοντας σε έναν χρήστη τις άδειες να εκτελεί ερωτήματα και να συνδέεται στη βάση δεδομένων. Αρχικά, δημιουργείται ένας ρόλος ο οποίος δίνει τις απαραίτητες άδειες και πεδία.
|
||||
```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`)
|
||||
|
||||
Με αυτή την άδεια, μπορείτε να δημιουργήσετε νέες ορισμούς ρόλων MongoDB εντός ενός λογαριασμού Azure Cosmos DB. Αυτό επιτρέπει τον καθορισμό προσαρμοσμένων ρόλων με συγκεκριμένες άδειες για χρήστες MongoDB. Οι λειτουργίες RBAC πρέπει να είναι ενεργοποιημένες για να χρησιμοποιηθεί αυτό.
|
||||
```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": []
|
||||
}'
|
||||
```
|
||||
Μπορείτε να δημιουργήσετε νέες ορισμούς χρηστών MongoDB μέσα σε έναν λογαριασμό Azure Cosmos DB. Αυτό επιτρέπει την παροχή χρηστών με συγκεκριμένους ρόλους και πρόσβαση σε βάσεις δεδομένων MongoDB.
|
||||
```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, μπορούμε να έχουμε πρόσβαση σε αυτόν:
|
||||
```bash
|
||||
mongosh "mongodb://<myUser>:<mySecurePassword>@<account_name>.mongo.cosmos.azure.com:10255/<mymongodatabase>?ssl=true&replicaSet=globaldb&retrywrites=false"
|
||||
```
|
||||
### `Microsoft.DocumentDB/databaseAccounts/listKeys/action`
|
||||
Με αυτή την άδεια, μπορείτε να ανακτήσετε τα κύρια και δευτερεύοντα κλειδιά για έναν λογαριασμό Azure Cosmos DB. Αυτά τα κλειδιά παρέχουν πλήρη πρόσβαση στον λογαριασμό της βάσης δεδομένων και τους πόρους του, επιτρέποντας ενέργειες όπως αναγνώσεις δεδομένων, εγγραφές και αλλαγές ρυθμίσεων.
|
||||
```bash
|
||||
az cosmosdb keys list \
|
||||
--name <account_name> \
|
||||
--resource-group <resource_group_name>
|
||||
|
||||
```
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -1,90 +0,0 @@
|
||||
# GCP - Διατήρηση Token
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
### Tokens ΑυAuthenticated Χρήστη
|
||||
|
||||
Για να αποκτήσετε το **τρέχον token** ενός χρήστη μπορείτε να εκτελέσετε:
|
||||
```bash
|
||||
sqlite3 $HOME/.config/gcloud/access_tokens.db "select access_token from access_tokens where account_id='<email>';"
|
||||
```
|
||||
Ελέγξτε σε αυτή τη σελίδα πώς να **χρησιμοποιήσετε απευθείας αυτό το token χρησιμοποιώντας gcloud**:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#gcp
|
||||
{{#endref}}
|
||||
|
||||
Για να αποκτήσετε τις λεπτομέρειες για **να δημιουργήσετε ένα νέο access token** εκτελέστε:
|
||||
```bash
|
||||
sqlite3 $HOME/.config/gcloud/credentials.db "select value from credentials where account_id='<email>';"
|
||||
```
|
||||
Είναι επίσης δυνατό να βρείτε refresh tokens στο **`$HOME/.config/gcloud/application_default_credentials.json`** και στο **`$HOME/.config/gcloud/legacy_credentials/*/adc.json`**.
|
||||
|
||||
Για να αποκτήσετε ένα νέο ανανεωμένο access token με το **refresh token**, το client ID και το client secret εκτελέστε:
|
||||
```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
|
||||
```
|
||||
Η εγκυρότητα των refresh tokens μπορεί να διαχειριστεί από το **Admin** > **Security** > **Google Cloud session control**, και από προεπιλογή είναι ρυθμισμένο σε 16 ώρες αν και μπορεί να ρυθμιστεί να μην λήξει ποτέ:
|
||||
|
||||
<figure><img src="../../../images/image (11).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Auth flow
|
||||
|
||||
Η ροή αυθεντικοποίησης όταν χρησιμοποιείτε κάτι όπως το `gcloud auth login` θα ανοίξει ένα παράθυρο στον περιηγητή και μετά την αποδοχή όλων των scopes, ο περιηγητής θα στείλει ένα αίτημα όπως αυτό στην ανοιχτή θύρα http από το εργαλείο:
|
||||
```
|
||||
/?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
|
||||
```
|
||||
Τότε, το gcloud θα χρησιμοποιήσει την κατάσταση και τον κώδικα με ένα σκληρά κωδικοποιημένο `client_id` (`32555940559.apps.googleusercontent.com`) και **`client_secret`** (`ZmssLNjJy2998hD4CTg2ejr2`) για να αποκτήσει τα **τελικά δεδομένα ανανέωσης του token**.
|
||||
|
||||
> [!CAUTION]
|
||||
> Σημειώστε ότι η επικοινωνία με το localhost είναι σε HTTP, οπότε είναι δυνατόν να παγιδευτούν τα δεδομένα για να αποκτηθεί ένα refresh token, ωστόσο αυτά τα δεδομένα είναι έγκυρα μόνο 1 φορά, οπότε αυτό θα ήταν άχρηστο, είναι πιο εύκολο να διαβάσετε το refresh token από το αρχείο.
|
||||
|
||||
### OAuth Scopes
|
||||
|
||||
Μπορείτε να βρείτε όλους τους Google scopes στο [https://developers.google.com/identity/protocols/oauth2/scopes](https://developers.google.com/identity/protocols/oauth2/scopes) ή να τους αποκτήσετε εκτελώντας:
|
||||
```bash
|
||||
curl "https://developers.google.com/identity/protocols/oauth2/scopes" | grep -oE 'https://www.googleapis.com/auth/[a-zA-A/\-\._]*' | sort -u
|
||||
```
|
||||
Είναι δυνατόν να δείτε ποιες περιοχές υποστηρίζει η εφαρμογή που χρησιμοποιεί το **`gcloud`** για την αυθεντικοποίηση με αυτό το σενάριο:
|
||||
```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
|
||||
```
|
||||
Μετά την εκτέλεση, ελέγχθηκε ότι αυτή η εφαρμογή υποστηρίζει αυτές τις περιοχές:
|
||||
```
|
||||
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
|
||||
```
|
||||
είναι ενδιαφέρον να δούμε πώς αυτή η εφαρμογή υποστηρίζει το **`drive`** scope, το οποίο θα μπορούσε να επιτρέψει σε έναν χρήστη να κλιμακώσει από το GCP στο Workspace αν ένας επιτιθέμενος καταφέρει να αναγκάσει τον χρήστη να δημιουργήσει ένα token με αυτό το scope.
|
||||
|
||||
**Δείτε πώς να** [**καταχραστείτε αυτό εδώ**](../gcp-to-workspace-pivoting/index.html#abusing-gcloud)**.**
|
||||
|
||||
### Λογαριασμοί Υπηρεσιών
|
||||
|
||||
Ακριβώς όπως με τους αυθεντικοποιημένους χρήστες, αν καταφέρετε να **συμβιβάσετε το αρχείο ιδιωτικού κλειδιού** ενός λογαριασμού υπηρεσίας θα μπορείτε να **έχετε πρόσβαση σε αυτό συνήθως όσο θέλετε**.\
|
||||
Ωστόσο, αν κλέψετε το **OAuth token** ενός λογαριασμού υπηρεσίας αυτό μπορεί να είναι ακόμη πιο ενδιαφέρον, γιατί, ακόμη και αν από προεπιλογή αυτά τα tokens είναι χρήσιμα μόνο για μία ώρα, αν ο **θύμα διαγράψει το ιδιωτικό api key, το OAuh token θα παραμείνει έγκυρο μέχρι να λήξει**.
|
||||
|
||||
### Μεταδεδομένα
|
||||
|
||||
Προφανώς, όσο βρίσκεστε μέσα σε μια μηχανή που τρέχει στο περιβάλλον GCP θα μπορείτε να **έχετε πρόσβαση στον λογαριασμό υπηρεσίας που είναι συνδεδεμένος σε αυτή τη μηχανή επικοινωνώντας με το endpoint μεταδεδομένων** (σημειώστε ότι τα Oauth tokens που μπορείτε να αποκτήσετε σε αυτό το endpoint είναι συνήθως περιορισμένα από scopes).
|
||||
|
||||
### Αντιμετώπιση
|
||||
|
||||
Ορισμένες αντιμετωπίσεις για αυτές τις τεχνικές εξηγούνται στο [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)
|
||||
|
||||
### Αναφορές
|
||||
|
||||
- [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