diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 478e28676..c53000a33 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -292,7 +292,7 @@ - [AWS - KMS Privesc](pentesting-cloud/aws-security/aws-privilege-escalation/aws-kms-privesc.md) - [AWS - Lambda Privesc](pentesting-cloud/aws-security/aws-privilege-escalation/aws-lambda-privesc.md) - [AWS - Lightsail Privesc](pentesting-cloud/aws-security/aws-privilege-escalation/aws-lightsail-privesc.md) - - [AWS - Macie Enum](pentesting-cloud/aws-security/aws-privilege-escalation/aws-macie-privesc.md) + - [AWS - Macie Privesc](pentesting-cloud/aws-security/aws-privilege-escalation/aws-macie-privesc.md) - [AWS - Mediapackage Privesc](pentesting-cloud/aws-security/aws-privilege-escalation/aws-mediapackage-privesc.md) - [AWS - MQ Privesc](pentesting-cloud/aws-security/aws-privilege-escalation/aws-mq-privesc.md) - [AWS - MSK Privesc](pentesting-cloud/aws-security/aws-privilege-escalation/aws-msk-privesc.md) @@ -415,7 +415,7 @@ - [Az - Azure App Services](pentesting-cloud/azure-security/az-services/az-app-services.md) - [Az - Cloud Shell](pentesting-cloud/azure-security/az-services/az-cloud-shell.md) - [Az - Container Registry](pentesting-cloud/azure-security/az-services/az-container-registry.md) - - [Az - Container Instances](pentesting-cloud/azure-security/az-services/az-container-instances.md) + - [Az - Container Instances, Apps & Jobs](pentesting-cloud/azure-security/az-services/az-container-instances-apps-jobs.md) - [Az - CosmosDB](pentesting-cloud/azure-security/az-services/az-cosmosDB.md) - [Az - Intune](pentesting-cloud/azure-security/az-services/intune.md) - [Az - File Shares](pentesting-cloud/azure-security/az-services/az-file-shares.md) @@ -470,7 +470,7 @@ - [Az - App Services Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-app-services-privesc.md) - [Az - Automation Accounts Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md) - [Az - Container Registry Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-container-registry-privesc.md) - - [Az - Container Instances Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-container-instances-privesc.md) + - [Az - Container Instances, Apps & Jobs Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-container-instances-apps-jobs-privesc.md) - [Az - CosmosDB Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md) - [Az - EntraID Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/README.md) - [Az - Conditional Access Policies & MFA Bypass](pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md) diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-organizations-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-organizations-enum.md index cbdcab8bd..5864e72d1 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-organizations-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-organizations-enum.md @@ -1,4 +1,4 @@ -# AWS - Organizacije Enum +# AWS - Organizations Enum {{#include ../../../banners/hacktricks-training.md}} @@ -6,7 +6,7 @@ AWS Organizations olakšava kreiranje novih AWS naloga bez dodatnih troškova. Resursi se mogu dodeliti bez napora, nalozi se mogu efikasno grupisati, a politike upravljanja mogu se primeniti na pojedinačne naloge ili grupe, čime se poboljšava upravljanje i kontrola unutar organizacije. -Ključne Tačke: +Ključne tačke: - **Kreiranje Novog Naloga**: AWS Organizations omogućava kreiranje novih AWS naloga bez dodatnih troškova. - **Dodeljivanje Resursa**: Pojednostavljuje proces dodeljivanja resursa između naloga. @@ -40,6 +40,6 @@ aws iam get-account-summary ``` ## Reference -- https://aws.amazon.com/organizations/ +- [https://aws.amazon.com/organizations/](https://aws.amazon.com/organizations/) {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-sqs-and-sns-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-sqs-and-sns-enum.md index 0ea6be685..663514c74 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-sqs-and-sns-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-sqs-and-sns-enum.md @@ -46,6 +46,6 @@ aws sqs send-message --queue-url --message-body ## Reference -- https://docs.aws.amazon.com/cdk/api/v2/python/aws\_cdk.aws\_sqs/README.html +- [https://docs.aws.amazon.com/cdk/api/v2/python/aws\_cdk.aws\_sqs/README.html](https://docs.aws.amazon.com/cdk/api/v2/python/aws\_cdk.aws\_sqs/README.html) {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-persistence/az-queue-persistance.md b/src/pentesting-cloud/azure-security/az-persistence/az-queue-persistance.md index 01e3e2978..c33952425 100644 --- a/src/pentesting-cloud/azure-security/az-persistence/az-queue-persistance.md +++ b/src/pentesting-cloud/azure-security/az-persistence/az-queue-persistance.md @@ -4,7 +4,7 @@ ## Queue -Za više informacija pogledajte: +Za više informacija proverite: {{#ref}} ../az-services/az-queue-enum.md @@ -22,8 +22,8 @@ az storage queue policy set --name --permissions rwd --expiry 2024- ``` ## Reference -- 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/azure/storage/queues/queues-auth-abac-attributes +- [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}} diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-queue-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-queue-post-exploitation.md index f3fd2e4b1..afa61ce46 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-queue-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-queue-post-exploitation.md @@ -12,7 +12,7 @@ Za više informacija pogledajte: ### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read` -Napadač sa ovom dozvolom može da pregleda poruke iz Azure Storage Queue. Ovo omogućava napadaču da vidi sadržaj poruka bez označavanja kao obrađenih ili menjanja njihovog stanja. To može dovesti do neovlašćenog pristupa osetljivim informacijama, omogućavajući eksfiltraciju podataka ili prikupljanje obaveštajnih podataka za dalja napada. +Napadač sa ovom dozvolom može da pogleda poruke iz Azure Storage Queue. Ovo omogućava napadaču da vidi sadržaj poruka bez označavanja kao obrađenih ili menjanja njihovog stanja. To može dovesti do neovlašćenog pristupa osetljivim informacijama, omogućavajući eksfiltraciju podataka ili prikupljanje obaveštajnih podataka za dalja napada. ```bash az storage message peek --queue-name --account-name ``` @@ -26,7 +26,7 @@ az storage message get --queue-name --account-name --content "Injected malicious message" --account-name ``` @@ -46,7 +46,7 @@ az storage message update --queue-name \ ``` ### Actions: `Microsoft.Storage/storageAccounts/queueServices/queues/delete` -Ova dozvola omogućava napadaču da obriše redove unutar naloga za skladištenje. Korišćenjem ove sposobnosti, napadač može trajno ukloniti redove i sve njihove povezane poruke, uzrokujući značajne prekide u radnim tokovima i dovodeći do kritičnog gubitka podataka za aplikacije koje se oslanjaju na pogođene redove. Ova akcija se takođe može koristiti za sabotiranje usluga uklanjanjem suštinskih komponenti sistema. +Ova dozvola omogućava napadaču da obriše redove unutar skladišnog naloga. Korišćenjem ove sposobnosti, napadač može trajno ukloniti redove i sve njihove povezane poruke, uzrokujući značajne prekide u radnim tokovima i dovodeći do kritičnog gubitka podataka za aplikacije koje se oslanjaju na pogođene redove. Ova akcija se takođe može koristiti za sabotiranje usluga uklanjanjem bitnih komponenti sistema. ```bash az storage queue delete --name --account-name ``` @@ -66,10 +66,10 @@ az storage queue metadata update --name --metadata key1=value1 key2 az storage queue policy set --name --permissions rwd --expiry 2024-12-31T23:59:59Z --account-name ``` -## Референце +## Reference -- 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/azure/storage/queues/queues-auth-abac-attributes +- [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}} diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-servicebus-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-servicebus-post-exploitation.md index 4a3d11948..d02d84ad5 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-servicebus-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-servicebus-post-exploitation.md @@ -16,9 +16,9 @@ Napadač sa ovom dozvolom može obrisati čitav Azure Service Bus namespace. Ova ```bash az servicebus namespace delete --resource-group --name ``` -### Akcije: `Microsoft.ServiceBus/namespaces/topics/Delete` +### Actions: `Microsoft.ServiceBus/namespaces/topics/Delete` -Napadač sa ovom dozvolom može da obriše Azure Service Bus temu. Ova akcija uklanja temu i sve njene povezane pretplate i poruke, što može dovesti do gubitka kritičnih podataka i ometanja sistema i radnih tokova koji se oslanjaju na temu. +Napadač sa ovom dozvolom može obrisati Azure Service Bus temu. Ova akcija uklanja temu i sve njene povezane pretplate i poruke, što može dovesti do gubitka kritičnih podataka i ometanja sistema i radnih tokova koji se oslanjaju na temu. ```bash az servicebus topic delete --resource-group --namespace-name --name ``` @@ -28,36 +28,29 @@ Napadač sa ovom dozvolom može da obriše Azure Service Bus red. Ova akcija ukl ```bash az servicebus queue delete --resource-group --namespace-name --name ``` -### Akcije: `Microsoft.ServiceBus/namespaces/topics/subscriptions/Delete` +### Actions: `Microsoft.ServiceBus/namespaces/topics/subscriptions/Delete` Napadač sa ovom dozvolom može da obriše Azure Service Bus pretplatu. Ova akcija uklanja pretplatu i sve njene povezane poruke, potencijalno ometajući radne tokove, obradu podataka i sistemske operacije koje se oslanjaju na pretplatu. ```bash az servicebus topic subscription delete --resource-group --namespace-name --topic-name --name ``` -### Akcije: `Microsoft.ServiceBus/namespaces/write` & `Microsoft.ServiceBus/namespaces/read` - -Napadač sa dozvolama za kreiranje ili modifikovanje Azure Service Bus imenskih prostora može iskoristiti ovo da ometa operacije, implementira neovlašćene resurse ili izloži osetljive podatke. Mogu promeniti kritične konfiguracije kao što su omogućavanje pristupa javnoj mreži, smanjenje podešavanja enkripcije ili promenu SKU-ova kako bi pogoršali performanse ili povećali troškove. Pored toga, mogli bi onemogućiti lokalnu autentifikaciju, manipulisati lokacijama replika ili prilagoditi TLS verzije kako bi oslabili bezbednosne kontrole, čineći pogrešnu konfiguraciju imenskog prostora značajnim rizikom nakon eksploatacije. -```bash -az servicebus namespace create --resource-group --name --location -az servicebus namespace update --resource-group --name --tags -``` ### Actions: `Microsoft.ServiceBus/namespaces/queues/write` (`Microsoft.ServiceBus/namespaces/queues/read`) -Napadač sa dozvolama za kreiranje ili modifikovanje Azure Service Bus redova (da bi modifikovao red, takođe će mu biti potrebna Akcija: `Microsoft.ServiceBus/namespaces/queues/read`) može iskoristiti ovo da presretne podatke, ometa radne tokove ili omogući neovlašćen pristup. Mogu promeniti kritične konfiguracije kao što su prosleđivanje poruka na zlonamerne krajnje tačke, podešavanje TTL poruka za nepropisno zadržavanje ili brisanje podataka, ili omogućavanje dead-lettering-a kako bi ometali obradu grešaka. Pored toga, mogli bi manipulisati veličinama redova, trajanjem zaključavanja ili statusima kako bi ometali funkcionalnost usluge ili izbegli otkrivanje, čineći ovo značajnim rizikom nakon eksploatacije. +Napadač sa dozvolama za kreiranje ili modifikovanje Azure Service Bus redova (da biste modifikovali red, takođe će vam biti potrebna Akcija: `Microsoft.ServiceBus/namespaces/queues/read`) može iskoristiti ovo da presretne podatke, ometa radne tokove ili omogući neovlašćen pristup. Mogu promeniti kritične konfiguracije kao što su prosleđivanje poruka na zlonamerne krajnje tačke, podešavanje TTL poruka za nepropisno zadržavanje ili brisanje podataka, ili omogućavanje dead-lettering-a kako bi ometali obradu grešaka. Pored toga, mogli bi manipulisati veličinama redova, trajanjem zaključavanja ili statusima kako bi ometali funkcionalnost usluge ili izbegli otkrivanje, što ovo čini značajnim rizikom nakon eksploatacije. ```bash az servicebus queue create --resource-group --namespace-name --name az servicebus queue update --resource-group --namespace-name --name ``` -### Akcije: `Microsoft.ServiceBus/namespaces/topics/write` (`Microsoft.ServiceBus/namespaces/topics/read`) +### Actions: `Microsoft.ServiceBus/namespaces/topics/write` (`Microsoft.ServiceBus/namespaces/topics/read`) -Napadač sa dozvolama za kreiranje ili modifikovanje tema (da bi modifikovao temu, takođe će mu biti potrebna Akcija: `Microsoft.ServiceBus/namespaces/topics/read`) unutar Azure Service Bus imenskog prostora može iskoristiti ovo da ometa tokove poruka, otkrije osetljive podatke ili omogući neovlašćene radnje. Koristeći komande kao što je az servicebus topic update, mogu manipulisati konfiguracijama kao što su omogućavanje particionisanja za zloupotrebu skalabilnosti, menjanje TTL podešavanja da bi se nepravilno zadržale ili odbacile poruke, ili onemogućavanje detekcije duplikata da bi se zaobišli kontrole. Pored toga, mogli bi prilagoditi limite veličine tema, promeniti status da bi ometali dostupnost, ili konfigurisati ekspresne teme za privremeno skladištenje presretnutih poruka, čineći upravljanje temama kritičnim fokusom za ublažavanje post-ekspolatacije. +Napadač sa dozvolama za kreiranje ili modifikovanje tema (da bi modifikovao temu, takođe će mu biti potrebna Akcija: `Microsoft.ServiceBus/namespaces/topics/read`) unutar Azure Service Bus imenskog prostora može iskoristiti ovo da ometa tokove poruka, izloži osetljive podatke ili omogući neovlašćene radnje. Koristeći komande kao što je az servicebus topic update, mogu manipulisati konfiguracijama kao što su omogućavanje particionisanja za zloupotrebu skalabilnosti, menjanje TTL podešavanja da bi se nepravilno zadržale ili odbacile poruke, ili onemogućavanje detekcije duplikata da bi se zaobišli kontrole. Pored toga, mogli bi prilagoditi limite veličine tema, promeniti status da bi ometali dostupnost, ili konfigurisati ekspresne teme za privremeno skladištenje presretnutih poruka, čineći upravljanje temama kritičnim fokusom za ublažavanje post-ekspolatacije. ```bash az servicebus topic create --resource-group --namespace-name --name az servicebus topic update --resource-group --namespace-name --name ``` -### Akcije: `Microsoft.ServiceBus/namespaces/topics/subscriptions/write` (`Microsoft.ServiceBus/namespaces/topics/subscriptions/read`) +### Actions: `Microsoft.ServiceBus/namespaces/topics/subscriptions/write` (`Microsoft.ServiceBus/namespaces/topics/subscriptions/read`) -Napadač sa dozvolama za kreiranje ili modifikovanje pretplata (da bi modifikovao pretplatu, takođe će mu biti potrebna Akcija: `Microsoft.ServiceBus/namespaces/topics/subscriptions/read`) unutar Azure Service Bus teme može iskoristiti ovo da presretne, preusmeri ili ometa tokove poruka. Koristeći komande kao što je az servicebus topic subscription update, mogu manipulisati konfiguracijama kao što je omogućavanje dead lettering-a za preusmeravanje poruka, prosleđivanje poruka neovlašćenim krajnjim tačkama, ili modifikovanje TTL i trajanja zaključavanja kako bi zadržali ili ometali isporuku poruka. Pored toga, mogu promeniti podešavanja statusa ili maksimalnog broja isporuka kako bi ometali operacije ili izbegli otkrivanje, čineći kontrolu pretplata kritičnim aspektom post-ekspolatacionih scenarija. +Napadač sa dozvolama za kreiranje ili modifikovanje pretplata (da biste modifikovali pretplatu, takođe će vam biti potrebna Akcija: `Microsoft.ServiceBus/namespaces/topics/subscriptions/read`) unutar Azure Service Bus teme može iskoristiti ovo da presretne, preusmeri ili ometa tokove poruka. Koristeći komande kao što je az servicebus topic subscription update, mogu manipulisati konfiguracijama kao što je omogućavanje dead lettering-a za preusmeravanje poruka, prosleđivanje poruka neovlašćenim krajnjim tačkama, ili modifikovanje TTL i trajanja zaključavanja kako bi zadržali ili ometali isporuku poruka. Pored toga, mogu promeniti podešavanja statusa ili maksimalnog broja isporuka kako bi ometali operacije ili izbegli otkrivanje, čineći kontrolu pretplata kritičnim aspektom scenarija post-ekspolatacije. ```bash az servicebus topic subscription create --resource-group --namespace-name --topic-name --name az servicebus topic subscription update --resource-group --namespace-name --topic-name --name @@ -72,12 +65,12 @@ Pogledajte ovde: ## Reference -- 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/azure/storage/queues/queues-auth-abac-attributes -- https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless -- https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus -- https://learn.microsoft.com/en-us/cli/azure/servicebus/namespace?view=azure-cli-latest -- https://learn.microsoft.com/en-us/cli/azure/servicebus/queue?view=azure-cli-latest +- [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) +- [https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless](https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless) +- [https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus) +- [https://learn.microsoft.com/en-us/cli/azure/servicebus/namespace?view=azure-cli-latest](https://learn.microsoft.com/en-us/cli/azure/servicebus/namespace?view=azure-cli-latest) +- [https://learn.microsoft.com/en-us/cli/azure/servicebus/queue?view=azure-cli-latest](https://learn.microsoft.com/en-us/cli/azure/servicebus/queue?view=azure-cli-latest) {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md index fd551fcc1..58c58317a 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md @@ -19,6 +19,16 @@ az sql db create --resource-group --server --name # Update Database az sql db update --resource-group --server --name --max-size +``` +Sa ovim dozvolama (`Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/databases/write`) možete obnoviti obrisanu bazu podataka: +```bash +az sql db restore \ +--dest-name \ +--name \ +--resource-group \ +--server \ +--deleted-time "" + ``` ### `Microsoft.Sql/servers/elasticPools/write` && `Microsoft.Sql/servers/elasticPools/read` @@ -62,7 +72,7 @@ az sql server connection-policy update \ ``` ### `Microsoft.Sql/servers/databases/export/action` -Sa ovom dozvolom, možete eksportovati bazu podataka sa Azure SQL Server-a u nalog za skladištenje. Napadač ili ovlašćeni korisnik sa ovom dozvolom može eksfiltrirati osetljive podatke iz baze podataka izvozeći ih na lokaciju koju kontroliše, što predstavlja značajan rizik od curenja podataka. Važno je znati ključ za skladištenje kako biste mogli da izvršite ovo. +Sa ovom dozvolom, možete eksportovati bazu podataka sa Azure SQL Server-a u nalog za skladištenje. Napadač ili ovlašćeni korisnik sa ovom dozvolom može eksfiltrirati osetljive podatke iz baze podataka izvozeći ih na lokaciju koju kontroliše, što predstavlja značajan rizik od curenja podataka. Važno je znati ključ za skladištenje kako biste mogli to da uradite. ```bash az sql db export \ --server \ @@ -87,4 +97,41 @@ az sql db import --admin-user \ --storage-key \ --storage-uri `https://.blob.core.windows.net/bacpac-container/MyDatabase.bacpac` ``` +### `Microsoft.Sql/servers/connectionPolicies/write` && `Microsoft.Sql/servers/connectionPolicies/read` + +Sa ovim dozvolama, korisnik može da menja i preuzima politike povezivanja Azure SQL servera. Ove dozvole omogućavaju nekome da promeni način na koji klijenti povezuju na server—birajući između metoda kao što su preusmeravanje ili proxy—što bi moglo biti iskorišćeno za slabljenje bezbednosti, preusmeravanje saobraćaja ili presretanje osetljivih podataka ako je pogrešno konfigurisano. +```bash +az sql server conn-policy update \ +--resource-group \ +--server \ +--connection-policy +``` +### `Microsoft.Sql/servers/keys/write` && `Microsoft.Sql/servers/keys/read` + +Sa ovim dozvolama, korisnik može ažurirati i preuzeti ključeve za enkripciju povezane sa Azure SQL Server-om. Ovi ključevi se često koriste za zaštitu osetljivih podataka putem enkripcije, tako da njihovo manipulisanje može ugroziti bezbednost podataka omogućavanjem neovlašćene dekripcije ili promena rotacije ključeva. +```bash +az sql server key create \ +--resource-group MyResourceGroup \ +--server MyServer \ +--kid "https://mykeyvault.vault.azure.net/keys/mykey/1234567890abcdef +``` +### `Microsoft.Sql/servers/databases/ledgerDigestUploads/disable/action`, `Microsoft.Sql/locations/ledgerDigestUploadsAzureAsyncOperation/read`, `Microsoft.Sql/locations/ledgerDigestUploadsOperationResults/read` + +Ova dozvola omogućava onemogućavanje Ledger Digest za Azure SQL Database, što zaustavlja periodično učitavanje kriptografskih digest zapisa u Azure Blob Storage koji verifikuje integritet podataka. +```bash +az sql db ledger-digest-uploads disable \ +--name ledgerDB \ +--resource-group myResourceGroup \ +--server my-sql-server +``` +### `Microsoft.Sql/servers/databases/transparentDataEncryption/write`, `Microsoft.Sql/locations/transparentDataEncryptionAzureAsyncOperation/read`, `Microsoft.Sql/servers/databases/transparentDataEncryption/read` + +Ova dozvola omogućava ovlašćenom korisniku ili napadaču da omogući, onemogući ili izmeni podešavanja Transparent Data Encryption (TDE) na Azure SQL bazi podataka, potencijalno utičući na bezbednost podataka promenom konfiguracija enkripcije. +```bash +az sql db tde set \ +--database \ +--resource-group \ +--server \ +--status +``` {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-container-instances-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-container-instances-privesc.md deleted file mode 100644 index 7b334a9a5..000000000 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-container-instances-privesc.md +++ /dev/null @@ -1,64 +0,0 @@ -# Az - Azure Container Instances Privesc - -{{#include ../../../banners/hacktricks-training.md}} - -## Azure Container Instances - -Za više informacija pogledajte: - -{{#ref}} -../az-services/az-container-instances.md -{{#endref}} - -### `Microsoft.ContainerInstance/containerGroups/read`, `Microsoft.ContainerInstance/containerGroups/containers/exec/action` - -Ove dozvole omogućavaju korisniku da **izvrši komandu** u pokrenutom kontejneru. Ovo se može koristiti za **povećanje privilegija** u kontejneru ako ima neku upravljanu identitet. Naravno, takođe je moguće pristupiti izvoru koda i bilo kojim drugim osetljivim informacijama koje su pohranjene unutar kontejnera. - -Da biste izvršili `ls` i dobili izlaz, to je jednostavno kao: -```bash -az container exec --name --resource-group --exec-command 'ls' -``` -Takođe je moguće **pročitati izlaz** kontejnera sa: -```bash -az container attach --name --resource-group -``` -Ili dobijte logove sa: -```bash -az container logs --name --resource-group -``` -### `Microsoft.ContainerInstance/containerGroups/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` - -Ove dozvole omogućavaju **priključivanje korisnički upravljane identitete** na grupu kontejnera. Ovo je veoma korisno za eskalaciju privilegija u kontejneru. - -Da biste priključili korisnički upravljanu identitetu na grupu kontejnera: -```bash -az rest \ ---method PATCH \ ---url "/subscriptions//resourceGroups//providers/Microsoft.ContainerInstance/containerGroups/?api-version=2021-09-01" \ ---body '{ -"identity": { -"type": "UserAssigned", -"userAssignedIdentities": { -"/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/": {} -} -} -}' \ ---headers "Content-Type=application/json" -``` -### `Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.ContainerInstance/containerGroups/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` - -Ove dozvole omogućavaju **kreiranje ili ažuriranje grupe kontejnera** sa **korisnički upravljanom identitetom** prikačenom na nju. Ovo je veoma korisno za eskalaciju privilegija u kontejneru. -```bash -az container create \ ---resource-group > \ ---name nginx2 \ ---image mcr.microsoft.com/oss/nginx/nginx:1.9.15-alpine \ ---assign-identity "/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/" \ ---restart-policy OnFailure \ ---os-type Linux \ ---cpu 1 \ ---memory 1.0 -``` -Pored toga, takođe je moguće ažurirati postojeću grupu kontejnera dodajući, na primer, **`--command-line` argument** sa reverznom ljuskom. - -{{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-queue-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-queue-privesc.md index ef9dad79a..dd15e2cc5 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-queue-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-queue-privesc.md @@ -12,7 +12,7 @@ Za više informacija pogledajte: ### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read` -Napadač sa ovom dozvolom može da pogleda poruke iz Azure Storage Queue. Ovo omogućava napadaču da vidi sadržaj poruka bez označavanja kao obrađenih ili menjanja njihovog stanja. To može dovesti do neovlašćenog pristupa osetljivim informacijama, omogućavajući eksfiltraciju podataka ili prikupljanje obaveštajnih podataka za dalja napada. +Napadač sa ovom dozvolom može da pregleda poruke iz Azure Storage Queue. Ovo omogućava napadaču da vidi sadržaj poruka bez označavanja kao obrađenih ili menjanja njihovog stanja. To može dovesti do neovlašćenog pristupa osetljivim informacijama, omogućavajući eksfiltraciju podataka ili prikupljanje obaveštajnih podataka za dalja napada. ```bash az storage message peek --queue-name --account-name ``` @@ -26,13 +26,13 @@ az storage message get --queue-name --account-name --content "Injected malicious message" --account-name ``` ### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/write` -Ova dozvola omogućava napadaču da doda nove poruke ili ažurira postojeće u Azure Storage Queue. Korišćenjem ovoga, mogli bi umetnuti štetan sadržaj ili izmeniti postojeće poruke, potencijalno obmanjujući aplikacije ili uzrokujući neželjeno ponašanje u sistemima koji se oslanjaju na red. +Ova dozvola omogućava napadaču da doda nove poruke ili ažurira postojeće u Azure Storage Queue. Korišćenjem ove dozvole, mogli bi umetnuti štetan sadržaj ili izmeniti postojeće poruke, potencijalno obmanjujući aplikacije ili uzrokujući neželjeno ponašanje u sistemima koji se oslanjaju na red. ```bash az storage message put --queue-name --content "Injected malicious message" --account-name @@ -56,8 +56,8 @@ az storage queue policy set --name --permissions rwd --expiry 2024- ``` ## Reference -- 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/azure/storage/queues/queues-auth-abac-attributes +- [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}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md index 5fc0df9a2..89bbe5052 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md @@ -12,7 +12,7 @@ Za više informacija proverite: ### Microsoft.ServiceBus/namespaces/authorizationrules/listKeys/action OR Microsoft.ServiceBus/namespaces/authorizationrules/regenerateKeys/action -Ove dozvole vam omogućavaju da dobijete ili regenerišete ključeve za lokalna pravila autorizacije unutar Service Bus imenskog prostora. Korišćenjem ovih ključeva moguće je autentifikovati se kao Service Bus imenski prostor, omogućavajući vam da šaljete poruke u bilo koju red ili temu, primate poruke iz bilo koje red ili pretplate, ili potencijalno interagujete sa sistemom na načine koji bi mogli ometati operacije, predstavljati validne korisnike ili injektovati zlonamerne podatke u tok poruka. +Ove dozvole vam omogućavaju da dobijete ili regenerišete ključeve za lokalna pravila autorizacije unutar Service Bus imenskog prostora. Korišćenjem ovih ključeva moguće je autentifikovati se kao Service Bus imenski prostor, omogućavajući vam da šaljete poruke u bilo koju red ili temu, primate poruke iz bilo koje redne ili pretplatničke usluge, ili potencijalno interagujete sa sistemom na načine koji bi mogli ometati operacije, predstavljati validne korisnike ili ubrizgati zlonamerne podatke u tok poruka. Imajte na umu da po defaultu **`RootManageSharedAccessKey` pravilo ima potpunu kontrolu** nad Service Bus imenskim prostorom i koristi se od strane `az` cli, međutim, mogu postojati i druga pravila sa drugim vrednostima ključeva. ```bash @@ -41,7 +41,7 @@ az servicebus namespace authorization-rule update \ ``` ### Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action OR Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/regenerateKeys/action -Specifične teme i redovi unutar Service Bus imenskog prostora mogu imati svoja pravila autorizacije, koja se mogu koristiti za kontrolu pristupa entitetu. Imajući ove dozvole, možete **pribaviti ili regenerisati ključeve za ova lokalna pravila autorizacije**, omogućavajući vam da se autentifikujete kao entitet i potencijalno šaljete ili primate poruke, upravljate pretplatama ili komunicirate sa sistemom na načine koji bi mogli ometati operacije, predstavljati validne korisnike ili ubrizgati zlonamerne podatke u tok poruka. +Specifične teme i redovi unutar Service Bus imenskog prostora mogu imati svoja pravila autorizacije, koja se mogu koristiti za kontrolu pristupa entitetu. Imajući ove dozvole, možete **pribaviti ili regenerisati ključeve za ova lokalna pravila autorizacije**, omogućavajući vam da se autentifikujete kao entitet i potencijalno šaljete ili primate poruke, upravljate pretplatama ili komunicirate sa sistemom na načine koji bi mogli ometati operacije, imitirati važeće korisnike ili ubrizgati zlonamerne podatke u tok poruka. ```bash # List keys (topics) az servicebus topic authorization-rule keys list --resource-group --namespace-name --topic-name --name @@ -82,129 +82,204 @@ Sa ovim dozvolama **napadač može ponovo omogućiti "lokalnu autentifikaciju"** ```bash az servicebus namespace update --disable-local-auth false -n --resource-group ``` -### Pošaljite poruke sa ključevima (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action) +### Send Messages with keys (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action) -Možete preuzeti `PrimaryConnectionString`, koji deluje kao akreditiv za Service Bus namespace. Sa ovom konekcionom stringom, možete se potpuno autentifikovati kao Service Bus namespace, omogućavajući vam da šaljete poruke u bilo koju red ili temu i potencijalno komunicirate sa sistemom na načine koji bi mogli ometati operacije, predstavljati validne korisnike ili ubrizgati zlonamerne podatke u tok poruka. +Možete preuzeti `PrimaryConnectionString`, koji deluje kao akreditiv za Service Bus namespace. Sa ovom konekcionom stringom, možete se potpuno autentifikovati kao Service Bus namespace, omogućavajući vam da šaljete poruke bilo kojoj redu ili temi i potencijalno komunicirate sa sistemom na načine koji bi mogli ometati operacije, predstavljati validne korisnike ili ubrizgati zlonamerne podatke u tok poruka. Ova metoda funkcioniše ako je `--disable-local-auth` postavljeno na false. ```python -#You need to install the following libraries -#pip install azure-servicebus -#pip install aiohttp -#pip install azure-identity - import asyncio from azure.servicebus.aio import ServiceBusClient from azure.servicebus import ServiceBusMessage -# Constants NAMESPACE_CONNECTION_STR = "" -TOPIC_NAME = "" +TOPIC_OR_QUEUE_NAME = "" -# Function to send a single message to a Service Bus topic -async def send_individual_message(publisher): -# Prepare a single message with updated content -single_message = ServiceBusMessage("Hacktricks-Training: Single Item") -# Send the message to the topic -await publisher.send_messages(single_message) -print("Sent a single message containing 'Hacktricks-Training'") +async def send_message(): +async with ServiceBusClient.from_connection_string(NAMESPACE_CONNECTION_STR) as client: +async with client.get_topic_sender(topic_name=TOPIC_OR_QUEUE_NAME) as sender: +await sender.send_messages(ServiceBusMessage("Hacktricks-Training: Single Item")) +print("Sent message") -# Function to send multiple messages to a Service Bus topic -async def send_multiple_messages(publisher): -# Generate a collection of messages with updated content -message_list = [ServiceBusMessage(f"Hacktricks-Training: Item {i+1} in list") for i in range(5)] -# Send the entire collection of messages to the topic -await publisher.send_messages(message_list) -print("Sent a list of 5 messages containing 'Hacktricks-Training'") +asyncio.run(send_message()) +``` +Dodatno, možete slati poruke sa az rest, u ovom slučaju morate generisati sas token za korišćenje. +```python +import time, urllib.parse, hmac, hashlib, base64 -# Function to send a grouped batch of messages to a Service Bus topic -async def send_grouped_messages(publisher): -# Send a grouped batch of messages with updated content -async with publisher: -grouped_message_batch = await publisher.create_message_batch() -for i in range(10): -try: -# Append a message to the batch with updated content -grouped_message_batch.add_message(ServiceBusMessage(f"Hacktricks-Training: Item {i+1}")) -except ValueError: -# If batch reaches its size limit, handle by creating another batch -break -# Dispatch the batch of messages to the topic -await publisher.send_messages(grouped_message_batch) -print("Sent a batch of 10 messages containing 'Hacktricks-Training'") +def generate_sas_token(uri, key_name, key, expiry_in_seconds=3600): +expiry = int(time.time() + expiry_in_seconds) +string_to_sign = urllib.parse.quote_plus(uri) + "\n" + str(expiry) +signed_hmac_sha256 = hmac.new(key.encode('utf-8'), string_to_sign.encode('utf-8'), hashlib.sha256).digest() +signature = urllib.parse.quote_plus(base64.b64encode(signed_hmac_sha256)) +token = f"SharedAccessSignature sr={urllib.parse.quote_plus(uri)}&sig={signature}&se={expiry}&skn={key_name}" +return token -# Main function to execute all tasks -async def execute(): -# Instantiate the Service Bus client with the connection string -async with ServiceBusClient.from_connection_string( -conn_str=NAMESPACE_CONNECTION_STR, -logging_enable=True) as sb_client: -# Create a topic sender for dispatching messages to the topic -publisher = sb_client.get_topic_sender(topic_name=TOPIC_NAME) -async with publisher: -# Send a single message -await send_individual_message(publisher) -# Send multiple messages -await send_multiple_messages(publisher) -# Send a batch of messages -await send_grouped_messages(publisher) +# Replace these with your actual values +resource_uri = "https://.servicebus.windows.net/" +key_name = "" +primary_key = "" -# Run the asynchronous execution -asyncio.run(execute()) -print("Messages Sent") -print("----------------------------") +sas_token = generate_sas_token(resource_uri, key_name, primary_key) +print(sas_token) +``` + +```bash +az rest --method post \ +--uri "https://.servicebus.windows.net//messages" \ +--headers "Content-Type=application/atom+xml;type=entry;charset=utf-8" "Authorization=SharedAccessSignature sr=https%3A%2F%2F.servicebus.windows.net%2F&sig=&se=&skn=" \ +--body "" ``` -### Prijem sa ključevima (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action) +### Receive with keys (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action) -Možete preuzeti PrimaryConnectionString, koji služi kao akreditiv za Service Bus namespace. Koristeći ovaj konekcioni string, možete primati poruke iz bilo koje queue ili subscription unutar namespace-a, omogućavajući pristup potencijalno osetljivim ili kritičnim podacima, omogućavajući exfiltraciju podataka ili ometajući obradu poruka i radne tokove aplikacija. +Možete preuzeti PrimaryConnectionString, koji služi kao akreditiv za Service Bus namespace. Koristeći ovaj konekcioni string, možete primati poruke iz bilo koje queue ili subscription unutar namespace-a, omogućavajući pristup potencijalno osetljivim ili kritičnim podacima, omogućavajući exfiltraciju podataka ili ometajući obradu poruka i radne tokove aplikacija. Ova metoda funkcioniše ako je `--disable-local-auth` postavljeno na false. ```python -#You need to install the following libraries -#pip install azure-servicebus -#pip install aiohttp -#pip install azure-identity - import asyncio from azure.servicebus.aio import ServiceBusClient -NAMESPACE_CONNECTION_STR = "" -TOPIC_NAME = "" -SUBSCRIPTION_NAME = "" #Topic Subscription +CONN_STR = "" +QUEUE = "" -# Function to receive and process messages from a Service Bus subscription -async def receive_and_process_messages(): -# Create a Service Bus client using the connection string -async with ServiceBusClient.from_connection_string( -conn_str=NAMESPACE_CONNECTION_STR, -logging_enable=True) as servicebus_client: +# For topics/subscriptions, you would use: +# TOPIC = "" +# SUBSCRIPTION = "" -# Get the Subscription Receiver object for the specified topic and subscription -receiver = servicebus_client.get_subscription_receiver( -topic_name=TOPIC_NAME, -subscription_name=SUBSCRIPTION_NAME, -max_wait_time=5 -) - -async with receiver: -# Receive messages with a defined maximum wait time and count -received_msgs = await receiver.receive_messages( -max_wait_time=5, -max_message_count=20 -) -for msg in received_msgs: -print("Received: " + str(msg)) -# Complete the message to remove it from the subscription +async def receive(): +async with ServiceBusClient.from_connection_string(CONN_STR) as client: +# For a queue receiver: +async with client.get_queue_receiver(queue_name=QUEUE, max_wait_time=5) as receiver: +msgs = await receiver.receive_messages(max_wait_time=5, max_message_count=20) +for msg in msgs: +print("Received:", msg) await receiver.complete_message(msg) -# Run the asynchronous message processing function -asyncio.run(receive_and_process_messages()) -print("Message Receiving Completed") -print("----------------------------") +# For a topic/subscription receiver (commented out): +# async with client.get_subscription_receiver(topic_name=TOPIC, subscription_name=SUBSCRIPTION, max_wait_time=5) as receiver: +# msgs = await receiver.receive_messages(max_wait_time=5, max_message_count=20) +# for msg in msgs: +# print("Received:", msg) +# await receiver.complete_message(msg) + +asyncio.run(receive()) +print("Done receiving messages") +``` +Dodatno, možete slati poruke sa az rest, u ovom slučaju morate generisati sas token za korišćenje. +```python +import time, urllib.parse, hmac, hashlib, base64 + +def generate_sas_token(uri, key_name, key, expiry_in_seconds=3600): +expiry = int(time.time() + expiry_in_seconds) +string_to_sign = urllib.parse.quote_plus(uri) + "\n" + str(expiry) +signature = urllib.parse.quote_plus(base64.b64encode( +hmac.new(key.encode('utf-8'), string_to_sign.encode('utf-8'), hashlib.sha256).digest() +)) +token = f"SharedAccessSignature sr={urllib.parse.quote_plus(uri)}&sig={signature}&se={expiry}&skn={key_name}" +return token + +# Example usage: +resource_uri = "https://.servicebus.windows.net/queue" # For queue +# resource_uri = "https://.servicebus.windows.net//subscriptions/" # For topic subscription +sas_token = generate_sas_token(resource_uri, "", "") +print(sas_token) + +``` +Za red možete dobiti ili zaviriti u poruku (dobijanje poruka bi ih uklonilo, dok zavirivanje neće): +```bash +#Get a message +az rest --method post \ +--uri "https://.servicebus.windows.net//messages/head?timeout=60" \ +--headers "Content-Type=application/atom+xml;type=entry;charset=utf-8" "Authorization=SharedAccessSignature sr=&sig=&se=&skn=" + +#Peek a message +az rest --method get \ +--uri "https://.servicebus.windows.net//messages/head?peekonly=true&timeout=60" \ +--headers "Authorization=SharedAccessSignature sr=&sig=&se=&skn=" + +#You can select the meesage changing the field PreviousSequenceNumber +az rest --method get \ +--uri "https://.servicebus.windows.net//messages?timeout=60&PreviousSequenceNumber=&api-version=2017-04" \ +--headers "Authorization=SharedAccessSignature sr=&sig=&se=&skn=" +``` +Please provide the text you would like translated. +```bash +#Get a message +az rest --method post \ +--uri "https://.servicebus.windows.net//subscriptions//messages/head?timeout=60" \ +--headers "Content-Type=application/atom+xml;type=entry;charset=utf-8" "Authorization=SharedAccessSignature sr=&sig=&se=&skn=" + +#Peek a message +az rest --method get \ +--uri "https://.servicebus.windows.net//subscriptions//messages/head?timeout=60&api-version=2017-04" \ +--headers "Authorization=SharedAccessSignature sr=&sig=&se=&skn=" + +#You can select the meesage changing the field PreviousSequenceNumber +az rest --method get \ +--uri "https://.servicebus.windows.net//subscriptions//messages?timeout=60&PreviousSequenceNumber=&api-version=2017-04" \ +--headers "Authorization=SharedAccessSignature sr=&sig=&se=&skn=" +``` +### Pošaljite poruke. DataActions: `Microsoft.ServiceBus/namespaces/messages/send/action` + +Možete koristiti ova prava za slanje poruka, čak i ako je `--disable-local-auth` postavljeno na true. +```python +import asyncio +from azure.identity.aio import DefaultAzureCredential +from azure.servicebus.aio import ServiceBusClient +from azure.servicebus import ServiceBusMessage + +NS = ".servicebus.windows.net" # Your namespace +QUEUE_OR_TOPIC = "" # Your queue name + +async def run(): +credential = DefaultAzureCredential() +async with ServiceBusClient(fully_qualified_namespace=NS, credential=credential) as client: +async with client.get_queue_sender(queue_name=QUEUE) as sender: +await sender.send_messages(ServiceBusMessage("Single Message")) +print("Sent a single message") +await credential.close() + +if __name__ == "__main__": +asyncio.run(run()) +``` +### Prijem poruka. DataActions: `Microsoft.ServiceBus/namespaces/messages/receive/action` + +Možete koristiti ova prava za prijem poruka, čak i ako je `--disable-local-auth` postavljeno na true. +```python +import asyncio +from azure.identity.aio import DefaultAzureCredential +from azure.servicebus.aio import ServiceBusClient + +NS = ".servicebus.windows.net" +QUEUE = "" + +# For a topic subscription, uncomment and set these values: +# TOPIC = "" +# SUBSCRIPTION = "" + +async def run(): +credential = DefaultAzureCredential() +async with ServiceBusClient(fully_qualified_namespace=NS, credential=credential) as client: +# Receiving from a queue: +async with client.get_queue_receiver(queue_name=QUEUE, max_wait_time=5) as receiver: +async for msg in receiver: +print("Received from Queue:", msg) +await receiver.complete_message(msg) + +# To receive from a topic subscription, uncomment the code below and comment out the queue receiver above: +# async with client.get_subscription_receiver(topic_name=TOPIC, subscription_name=SUBSCRIPTION, max_wait_time=5) as receiver: +# async for msg in receiver: +# print("Received from Topic Subscription:", msg) +# await receiver.complete_message(msg) + +await credential.close() + +asyncio.run(run()) +print("Done receiving messages") ``` ## Reference -- 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/azure/storage/queues/queues-auth-abac-attributes -- https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless -- https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus +- [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) +- [https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless](https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless) +- [https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus) {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md index a6b350aec..447913538 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md @@ -26,15 +26,40 @@ az sql server create \ --resource-group \ --location \ --admin-user \ ---admin-password +--admin-password ``` -Pored toga, neophodno je omogućiti javni pristup ako želite da pristupite sa neprivatnog krajnjeg tačke, da biste to omogućili: +Dodatno, potrebno je omogućiti javni pristup ako želite da pristupite sa neprivatnog krajnjeg tačke, da biste to omogućili: ```bash az sql server update \ --name \ --resource-group \ --enable-public-network true ``` +Pored toga, sa dozvolama možete omogućiti dodeljivanje identiteta, i raditi sa upravljanim identitetom koji je povezan sa serverom. Na primer, ovde sa upravljanim identitetom koji može pristupiti Azure Storage: +```bash +az sql server update \ +--name \ +--resource-group \ +--assign_identity +``` + +```sql +CREATE EXTERNAL DATA SOURCE ManagedIdentity +WITH ( +TYPE = BLOB_STORAGE, +LOCATION = 'https://.blob.core.windows.net/', +CREDENTIAL = ManagedIdentityCredential +); +GO + +SELECT * +FROM OPENROWSET( +BULK 'message.txt', +DATA_SOURCE = 'ManagedIdentity', +SINGLE_CLOB +) AS DataFile; +GO +``` ### `Microsoft.Sql/servers/firewallRules/write` Napadač može manipulisati pravilima vatrozida na Azure SQL serverima kako bi omogućio neovlašćen pristup. Ovo se može iskoristiti za otvaranje servera za specifične IP adrese ili čitave IP opsege, uključujući javne IP adrese, omogućavajući pristup zlonamernim akterima. Ova aktivnost nakon eksploatacije može se koristiti za zaobilaženje postojećih mrežnih bezbednosnih kontrola, uspostavljanje postojanosti ili olakšavanje lateralnog kretanja unutar okruženja izlaganjem osetljivih resursa. diff --git a/src/pentesting-cloud/azure-security/az-services/az-container-instances.md b/src/pentesting-cloud/azure-security/az-services/az-container-instances.md deleted file mode 100644 index d870209f7..000000000 --- a/src/pentesting-cloud/azure-security/az-services/az-container-instances.md +++ /dev/null @@ -1,45 +0,0 @@ -# Az - Container Instances - -{{#include ../../../banners/hacktricks-training.md}} - -## Osnovne informacije - -Azure Container Instances (ACI) pružaju **serverless, on-demand način** za pokretanje **kontejnera** u Azure oblaku. Možete **deplojovati** jedan ili više kontejnera u grupi sa **skalabilnim računarstvom**, **mogućnostima umrežavanja** i fleksibilnošću da se povežete sa **drugim Azure uslugama** (kao što su Storage, Virtual Networks ili Container Registries). - -Pošto su to **ephemeral** radni opterećenja, ne morate upravljati osnovnom VM infrastrukturom — Azure to obavlja umesto vas. Međutim, iz **ofanzivne bezbednosne perspektive**, ključno je razumeti kako **dozvole**, **identiteti**, **konfiguracije mreže** i **logovi** mogu otkriti površine napada i potencijalne pogrešne konfiguracije. - -### Konfiguracije - -- Da biste kreirali kontejner, moguće je koristiti javnu sliku, sliku kontejnera iz Azure Container Registry ili spoljnog repozitorijuma, što može **zahtevati konfiguraciju lozinke** za pristup. -- Što se tiče umrežavanja, može imati **javnu IP adresu** ili biti **privatni krajnji tački**. -- Takođe je moguće konfigurirati uobičajene docker postavke kao što su: -- **Promenljive okruženja** -- **Volumeni** (čak i iz Azure Files) -- **Portovi** -- **Ograničenja CPU i memorije** -- **Politika ponovnog pokretanja** -- **Pokreni kao privilegovan** -- **Komandna linija za pokretanje** -- ... - -## Enumeracija - -> [!WARNING] -> Kada enumerišete ACI, možete otkriti osetljive konfiguracije kao što su **promenljive okruženja**, **mrežni detalji** ili **upravljani identiteti**. Budite oprezni prilikom logovanja ili prikazivanja istih. -```bash -# List all container instances in the subscription -az container list - -# Show detailed information about a specific container instance -az container show --name --resource-group - -# Fetch logs from a container -az container logs --name --resource-group - -# Execute a command in a running container and get the output -az container exec --name --resource-group --exec-command "ls" - -# Get yaml configuration of the container group -az container export --name --resource-group -``` - diff --git a/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md b/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md index 94ace22af..36c459e7e 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md +++ b/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md @@ -2,9 +2,9 @@ {{#include ../../../banners/hacktricks-training.md}} -## Osnovne Informacije +## Osnovne informacije -Azure Queue Storage je usluga u Microsoftovoj Azure cloud platformi dizajnirana za redosled poruka između komponenti aplikacije, **omogućavajući asinhronu komunikaciju i dekoplovanje**. Omogućava vam da čuvate neograničen broj poruka, svaka do 64 KB veličine, i podržava operacije kao što su kreiranje i brisanje redova, dodavanje, preuzimanje, ažuriranje i brisanje poruka, kao i upravljanje metapodacima i politikama pristupa. Iako obično obrađuje poruke na principu prvi dođe, prvi se usluži (FIFO), stroga FIFO nije garantovana. +Azure Queue Storage je usluga u Microsoftovoj Azure cloud platformi dizajnirana za redosled poruka između komponenti aplikacije, **omogućavajući asinhronu komunikaciju i dekopling**. Omogućava vam da čuvate neograničen broj poruka, svaka do 64 KB veličine, i podržava operacije kao što su kreiranje i brisanje redova, dodavanje, preuzimanje, ažuriranje i brisanje poruka, kao i upravljanje metapodacima i politikama pristupa. Iako obično obrađuje poruke po principu prvi došao, prvi uslužen (FIFO), strogi FIFO nije garantovan. ### Enumeracija @@ -84,8 +84,8 @@ $queueMessage.Value ## Reference -- 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/azure/storage/queues/queues-auth-abac-attributes +- [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}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md b/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md index 5a50ed87a..778155d53 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md +++ b/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md @@ -8,48 +8,57 @@ Azure Service Bus je usluga **poruka** zasnovana na oblaku koja je dizajnirana d ### Ključni koncepti -1. **Redovi:** Njegova svrha je da čuva poruke dok primalac ne bude spreman. +1. **Namespaces:** Namespace u sistemima poruka je logički kontejner koji organizuje i upravlja komponentama poruka, redovima i temama. Pruža izolovano okruženje u kojem aplikacije mogu slati, primati i obrađivati poruke. Redovi i teme dele istu infrastrukturu i konfiguraciju unutar Service Bus namespace-a, ali funkcionišu nezavisno bez međusobnog delovanja. +2. **Queues:** njegova svrha je da čuva poruke dok primalac ne bude spreman. - Poruke su uređene, vremenski označene i trajno sačuvane. - Isporučuju se u režimu povlačenja (na zahtev). - Podržava komunikaciju tačka-tačka. -2. **Teme:** Publikovanje i pretplata za emitovanje. +3. **Topics:** Publish-subscribe poruke za emitovanje. - Više nezavisnih pretplata prima kopije poruka. - Pretplate mogu imati pravila/filtere za kontrolu isporuke ili dodavanje metapodataka. -- Podržava komunikaciju mnogi-na-mnoge. -3. **Imena prostora:** Kontejner za sve komponente poruka, redove i teme, kao vaša vlastita podela moćnog Azure klastera, pružajući posvećeni kapacitet i opcionalno se proteže preko tri dostupne zone. +- Podržava komunikaciju mnogi-na-mnogi. -### Napredne funkcije +Konekcija/veza za servis bus je: +```bash +https://.servicebus.windows.net:443/ +``` +### Napredne Funkcije Neke napredne funkcije su: -- **Sesije poruka**: Osigurava FIFO obradu i podržava obrasce zahtev-odgovor. -- **Automatsko prosleđivanje**: Prenosi poruke između redova ili tema u istom imenskom prostoru. -- **Dead-Lettering**: Zapisuje neisporučive poruke za pregled. -- **Zakazana isporuka**: Odlaže obradu poruka za buduće zadatke. -- **Odlaganje poruka**: Odlaže preuzimanje poruka dok ne budu spremne. -- **Transakcije**: Grupira operacije u atomsko izvršenje. -- **Filteri i akcije**: Primena pravila za filtriranje ili anotaciju poruka. -- **Automatsko brisanje kada je neaktivno**: Briše redove nakon neaktivnosti (min: 5 minuta). -- **Otkrivanje duplikata**: Uklanja duplikate poruka tokom ponovnog slanja. -- **Brisanje u serijama**: Masovno briše istekle ili nepotrebne poruke. +- **Message Sessions**: Osigurava FIFO obradu i podržava obrasce zahtev-odgovor. +- **Auto-Forwarding**: Prenosi poruke između redova ili tema u istom imenskom prostoru. +- **Dead-Lettering**: Zapisuje nedostupne poruke za pregled. +- **Scheduled Delivery**: Odlaže obradu poruka za buduće zadatke. +- **Message Deferral**: Odlaže preuzimanje poruka dok ne budu spremne. +- **Transactions**: Grupira operacije u atomsko izvršenje. +- **Filters & Actions**: Primena pravila za filtriranje ili anotaciju poruka. +- **Auto-Delete on Idle**: Briše redove nakon neaktivnosti (min: 5 minuta). +- **Duplicate Detection**: Uklanja duple poruke tokom ponovnog slanja. +- **Batch Deletion**: Masovno briše isteknute ili nepotrebne poruke. -### Pravilo autorizacije / SAS politika +### Authorization-Rule / SAS Policy -SAS politike definišu dozvole za pristup entitetima Azure Service Bus imenskog prostora (najvažnija), redovima i temama. Svaka politika ima sledeće komponente: +SAS politike definišu dozvole pristupa za Azure Service Bus entitete imenskog prostora (najvažniji), redove i teme. Svaka politika ima sledeće komponente: -- **Dozvole**: Potvrdni okviri za određivanje nivoa pristupa: -- Upravljanje: Daje potpunu kontrolu nad entitetom, uključujući upravljanje konfiguracijom i dozvolama. -- Slanje: Omogućava slanje poruka entitetu. -- Slušanje: Omogućava primanje poruka od entiteta. -- **Primarni i sekundarni ključevi**: Ovo su kriptografski ključevi koji se koriste za generisanje sigurnih tokena za autentifikaciju pristupa. -- **Primarni i sekundarni stringovi za povezivanje**: Prekonfigurisani stringovi za povezivanje koji uključuju krajnju tačku i ključ za laku upotrebu u aplikacijama. -- **SAS politika ARM ID**: Putanja Azure Resource Manager-a (ARM) do politike za programatsku identifikaciju. +- **Permissions**: Potvrdni okviri za specifikaciju nivoa pristupa: +- Manage: Daje potpunu kontrolu nad entitetom, uključujući upravljanje konfiguracijom i dozvolama. +- Send: Omogućava slanje poruka entitetu. +- Listen: Omogućava primanje poruka od entiteta. +- **Primary and Secondary Keys**: Ovo su kriptografski ključevi koji se koriste za generisanje sigurnih tokena za autentifikaciju pristupa. +- **Primary and Secondary Connection Strings**: Prekonfigurisani stringovi za povezivanje koji uključuju krajnju tačku i ključ za laku upotrebu u aplikacijama. +- **SAS Policy ARM ID**: Putanja Azure Resource Manager-a (ARM) do politike za programsko identifikovanje. -### Imena prostora +Važno je napomenuti da imenski prostor ima jednu SAS politiku koja utiče na svaki entitet unutar njega, dok redovi i teme mogu imati svoje pojedinačne SAS politike za detaljniju kontrolu. -sku, pravilo autorizacije, +### "--disable-local-auth" -### Enumeracija +Parametar --disable-local-auth se koristi za kontrolu da li je lokalna autentifikacija (tj. korišćenje Shared Access Signature (SAS) ključeva) omogućena za vaš Service Bus imenski prostor. Evo šta treba da znate: + +- Kada je postavljeno na true: Lokalna autentifikacija korišćenjem SAS ključeva je onemogućena i dozvoljena je autentifikacija putem azure Active Directory (Azure AD). +- Kada je postavljeno na false: I SAS (lokalna) autentifikacija i Azure AD autentifikacija su dostupne i možete koristiti stringove za povezivanje sa SAS ključevima za pristup vašim Service Bus resursima. + +### Enumeration {{#tabs }} {{#tab name="az cli" }} @@ -133,13 +142,14 @@ Get-AzServiceBusTopic -ResourceGroupName -NamespaceName --resource-group ## List Server Firewalls diff --git a/src/pentesting-cloud/gcp-security/gcp-services/gcp-compute-instances-enum/gcp-compute-instance.md b/src/pentesting-cloud/gcp-security/gcp-services/gcp-compute-instances-enum/gcp-compute-instance.md index 595417497..1aa0b2055 100644 --- a/src/pentesting-cloud/gcp-security/gcp-services/gcp-compute-instances-enum/gcp-compute-instance.md +++ b/src/pentesting-cloud/gcp-security/gcp-services/gcp-compute-instances-enum/gcp-compute-instance.md @@ -4,11 +4,11 @@ ## Osnovne Informacije -Google Cloud Compute Instances su **prilagodljive virtuelne mašine na Google-ovoj cloud infrastrukturi**, koje nude skalabilnu i na zahtev dostupnu računarstvo za širok spektar aplikacija. Pružaju funkcije kao što su globalna implementacija, trajno skladištenje, fleksibilni izbor operativnog sistema i snažne integracije umrežavanja i bezbednosti, što ih čini svestranom opcijom za hostovanje veb sajtova, obradu podataka i efikasno pokretanje aplikacija u cloudu. +Google Cloud Compute Instances su **prilagodljive virtuelne mašine na Google-ovoj cloud infrastrukturi**, koje nude skalabilnu i na zahtev dostupnu računarstvo za širok spektar aplikacija. Pružaju funkcije kao što su globalna implementacija, trajno skladištenje, fleksibilni izbor operativnih sistema i snažne integracije umrežavanja i bezbednosti, što ih čini svestranom opcijom za hostovanje veb sajtova, obradu podataka i efikasno pokretanje aplikacija u cloudu. ### Povjerljiva VM -Povjerljive VM koriste **bezbednosne funkcije zasnovane na hardveru** koje nude najnovije generacije AMD EPYC procesora, koje uključuju enkripciju memorije i sigurnu enkriptu virtualizaciju. Ove funkcije omogućavaju VM-u da zaštiti podatke koji se obrađuju i skladište unutar njega čak i od host operativnog sistema i hipervizora. +Povjerljive VM koriste **bezbednosne funkcije zasnovane na hardveru** koje nude najnovija generacija AMD EPYC procesora, koje uključuju enkripciju memorije i sigurnu enkriptovanu virtualizaciju. Ove funkcije omogućavaju VM-u da zaštiti podatke koji se obrađuju i skladište unutar njega čak i od host operativnog sistema i hipervizora. Da bi se pokrenula Povjerljiva VM, možda će biti potrebno da **promenite** stvari kao što su **tip** **mašine**, mrežni **interfejs**, **slika pokretačkog diska**. @@ -19,7 +19,7 @@ Moguće je **izabrati disk** koji će se koristiti ili **napraviti novi**. Ako i - Izabrati **veličinu** diska - Izabrati **OS** - Naznačiti da želite da **obrišete disk kada se instanca obriše** -- **Enkripcija**: Po **default-u** će se koristiti **Google upravljani ključ**, ali možete i **izabrati ključ iz KMS** ili naznačiti **sirovi ključ koji će se koristiti**. +- **Enkripcija**: Po **default-u** će se koristiti **Google upravljani ključ**, ali takođe možete **izabrati ključ iz KMS** ili naznačiti **sirovi ključ koji će se koristiti**. ### Implementacija Kontejnera @@ -28,17 +28,17 @@ Moguće je konfigurisati **sliku** koja će se koristiti, postaviti **komandu** ### Servisni Nalog -Po default-u, koristiće se **Compute Engine default servisni nalog**. Email ovog SA je kao: `-compute@developer.gserviceaccount.com`\ +Po default-u, koristiće se **Compute Engine podrazumevani servisni nalog**. Email ovog SA je kao: `-compute@developer.gserviceaccount.com`\ Ovaj servisni nalog ima **Editor ulogu nad celim projektom (visoke privilegije).** -A **default pristupni opsezi** su sledeći: +A **podrazumevani pristupni opsezi** su sledeći: - **https://www.googleapis.com/auth/devstorage.read\_only** -- Pristup za čitanje ka bucket-ima :) -- https://www.googleapis.com/auth/logging.write -- https://www.googleapis.com/auth/monitoring.write -- https://www.googleapis.com/auth/servicecontrol -- https://www.googleapis.com/auth/service.management.readonly -- https://www.googleapis.com/auth/trace.append +- [https://www.googleapis.com/auth/logging.write](https://www.googleapis.com/auth/logging.write) +- [https://www.googleapis.com/auth/monitoring.write](https://www.googleapis.com/auth/monitoring.write) +- [https://www.googleapis.com/auth/servicecontrol](https://www.googleapis.com/auth/servicecontrol) +- [https://www.googleapis.com/auth/service.management.readonly](https://www.googleapis.com/auth/service.management.readonly) +- [https://www.googleapis.com/auth/trace.append](https://www.googleapis.com/auth/trace.append) Međutim, moguće je **dodeliti `cloud-platform` jednim klikom** ili odrediti **prilagođene**. @@ -60,7 +60,7 @@ Moguće je dozvoliti HTTP i HTTPS saobraćaj. Ove opcije će **povećati bezbednost** VM-a i preporučuju se: -- **Sigurno pokretanje:** Sigurno pokretanje pomaže u zaštiti vaših VM instanci od malvera na nivou pokretanja i kernel nivoa i rootkit-a. +- **Sigurno pokretanje:** Sigurno pokretanje pomaže u zaštiti vaših VM instanci od malvera na nivou pokretanja i jezgra i rootkit-a. - **Omogućiti vTPM:** Virtuelni Trusted Platform Module (vTPM) validira integritet vašeg gostujućeg VM-a pre pokretanja i tokom pokretanja, i nudi generisanje i zaštitu ključeva. - **Nadzor integriteta:** Nadzor integriteta vam omogućava da pratite i verifikujete integritet pokretanja vaših zaštićenih VM instanci koristeći Stackdriver izveštaje. Zahteva da vTPM bude omogućen. @@ -76,7 +76,7 @@ Kada je ovaj **servis** **omogućen**, pristup putem **SSH ključeva je onemogu Moguće je definisati **automatizaciju** (userdata u AWS) koja su **shell komande** koje će se izvršavati svaki put kada se mašina uključi ili ponovo pokrene. -Takođe je moguće **dodati dodatne metapodatke ključ-vrednost** koji će biti dostupni sa metapodatkovnog krajnjeg tačke. Ove informacije se obično koriste za varijable okruženja i skripte za pokretanje/gašenje. Ovo se može dobiti koristeći **`describe` metodu** iz komande u sekciji enumeracije, ali se takođe može preuzeti iznutra instance pristupajući metapodatkovnom kraju. +Takođe je moguće **dodati dodatne metapodatke ključ-vrednost** koji će biti dostupni sa metapodatkovnog krajnjeg tačke. Ove informacije se obično koriste za varijable okruženja i skripte za pokretanje/gašenje. Ovo se može dobiti koristeći **`describe` metodu** iz komande u sekciji enumeracije, ali se takođe može preuzeti iznutra instance pristupajući metapodatkovnoj krajnjoj tački. ```bash # view project metadata curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true&alt=text" \