mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-06 12:51:19 -08:00
Translated ['src/pentesting-cloud/azure-security/README.md'] to sr
This commit is contained in:
@@ -417,15 +417,18 @@
|
||||
- [Az - Container Registry](pentesting-cloud/azure-security/az-services/az-container-registry.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 - Defender](pentesting-cloud/azure-security/az-services/az-defender.md)
|
||||
- [Az - File Shares](pentesting-cloud/azure-security/az-services/az-file-shares.md)
|
||||
- [Az - Function Apps](pentesting-cloud/azure-security/az-services/az-function-apps.md)
|
||||
- [Az - Intune](pentesting-cloud/azure-security/az-services/intune.md)
|
||||
- [Az - Key Vault](pentesting-cloud/azure-security/az-services/az-keyvault.md)
|
||||
- [Az - Logic Apps](pentesting-cloud/azure-security/az-services/az-logic-apps.md)
|
||||
- [Az - Management Groups, Subscriptions & Resource Groups](pentesting-cloud/azure-security/az-services/az-management-groups-subscriptions-and-resource-groups.md)
|
||||
- [Az - Monitoring](pentesting-cloud/azure-security/az-services/az-monitoring.md)
|
||||
- [Az - MySQL](pentesting-cloud/azure-security/az-services/az-mysql.md)
|
||||
- [Az - PostgreSQL](pentesting-cloud/azure-security/az-services/az-postgresql.md)
|
||||
- [Az - Queue Storage](pentesting-cloud/azure-security/az-services/az-queue.md)
|
||||
- [Az - Sentinel](pentesting-cloud/azure-security/az-services/az-sentinel.md)
|
||||
- [Az - Service Bus](pentesting-cloud/azure-security/az-services/az-servicebus.md)
|
||||
- [Az - SQL](pentesting-cloud/azure-security/az-services/az-sql.md)
|
||||
- [Az - Static Web Applications](pentesting-cloud/azure-security/az-services/az-static-web-apps.md)
|
||||
|
||||
@@ -16,7 +16,7 @@ Da biste auditovali AZURE okruženje, veoma je važno znati: koje **usluge se ko
|
||||
|
||||
Iz perspektive Red Teama, **prvi korak za kompromitovanje Azure okruženja** je da se uspe da se dobije neki **foothold**.
|
||||
|
||||
### Eksterna enumeracija & Početni pristup
|
||||
### Eksterna enumeracija i inicijalni pristup
|
||||
|
||||
Prvi korak je, naravno, da se enumerišu informacije o tenant-u koji napadate i pokušate da dobijete foothold.
|
||||
|
||||
@@ -32,14 +32,14 @@ Sa ovim informacijama, najčešći načini da pokušate da dobijete foothold su:
|
||||
- **OSINT**: Proverite za **leak-ove** na Github-u ili bilo kojoj drugoj otvorenoj platformi koja bi mogla sadržati **akreditive** ili zanimljive informacije.
|
||||
- **Ponovna upotreba lozinki**, leak-ovi ili [password spraying](az-unauthenticated-enum-and-initial-entry/az-password-spraying.md)
|
||||
- Kupovina akreditiva od zaposlenog
|
||||
- [**Uobičajeni phishing**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-methodology/index.html) (akreditivi ili Oauth aplikacija)
|
||||
- [**Uobičajeni Phishing**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-methodology/index.html) (akreditivi ili Oauth aplikacija)
|
||||
- [Phishing putem Device Code Authentication](az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md)
|
||||
- 3rd party **provale**
|
||||
- Ranljivosti u aplikacijama hostovanim na Azure-u
|
||||
- [**Server Side Request Forgery**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) sa pristupom metadata endpoint-u
|
||||
- **Preuzimanje poddomena** kao u [https://godiego.co/posts/STO-Azure/](https://godiego.co/posts/STO-Azure/)
|
||||
- **Druge pogrešne konfiguracije Azure usluga**
|
||||
- Ako je neki developerski laptop kompromitovan ([WinPEAS i LinPEAS](https://github.com/peass-ng/PEASS-ng) mogu pronaći ove informacije):
|
||||
- Ako je neki laptop programera kompromitovan ([WinPEAS i LinPEAS](https://github.com/peass-ng/PEASS-ng) mogu pronaći ove informacije):
|
||||
- Unutar **`<HOME>/.Azure`**
|
||||
- **`azureProfile.json`** sadrži informacije o prijavljenim korisnicima iz prošlosti
|
||||
- **`clouds.config` sadrži** informacije o pretplatama
|
||||
@@ -47,12 +47,12 @@ Sa ovim informacijama, najčešći načini da pokušate da dobijete foothold su:
|
||||
- **`msal_token_cache.json`** sadrži pristupne tokene i tokene za osvežavanje. Samo na Linux-u i macOS-u
|
||||
- **`service_principal_entries.bin`** i msal_token_cache.bin se koriste na Windows-u i su enkriptovani sa DPAPI
|
||||
- **`msal_http_cache.bin`** je keš HTTP zahteva
|
||||
- Učitajte ga: `with open("msal_http_cache.bin", 'rb') as f: pickle.load(f)`
|
||||
- **`AzureRmContext.json`** sadrži informacije o prethodnim prijavama koristeći Az PowerShell (ali ne akreditive)
|
||||
- Učitajte: `with open("msal_http_cache.bin", 'rb') as f: pickle.load(f)`
|
||||
- **`AzureRmContext.json`** sadrži informacije o prethodnim prijavama koristeći Az PowerShell (ali ne i akreditive)
|
||||
- Unutar **`C:\Users\<username>\AppData\Local\Microsoft\IdentityCache\*`** se nalaze nekoliko `.bin` fajlova sa **pristupnim tokenima**, ID tokenima i informacijama o nalogu enkriptovanim sa korisnikovim DPAPI.
|
||||
- Moguće je pronaći više **pristupnih tokena** u `.tbres` fajlovima unutar **`C:\Users\<username>\AppData\Local\Microsoft\TokenBroken\Cache\`** koji sadrže base64 enkriptovane sa DPAPI pristupne tokene.
|
||||
- Na Linux-u i macOS-u možete dobiti **pristupne tokene, tokene za osvežavanje i ID tokene** iz Az PowerShell-a (ako se koristi) pokretanjem `pwsh -Command "Save-AzContext -Path /tmp/az-context.json"`
|
||||
- Na Windows-u ovo samo generiše ID tokene.
|
||||
- Na Linux-u i macOS-u možete dobiti **pristupne tokene, tokene za osvežavanje i id tokene** iz Az PowerShell-a (ako se koristi) pokretanjem `pwsh -Command "Save-AzContext -Path /tmp/az-context.json"`
|
||||
- Na Windows-u ovo samo generiše id tokene.
|
||||
- Moguće je videti da li je Az PowerShell korišćen na Linux-u i macOS-u proverom da li `$HOME/.local/share/.IdentityService/` postoji (iako su sadržani fajlovi prazni i beskorisni)
|
||||
|
||||
Pronađite **druge pogrešne konfiguracije Azure usluga** koje mogu dovesti do foothold-a na sledećoj stranici:
|
||||
@@ -66,7 +66,7 @@ az-unauthenticated-enum-and-initial-entry/
|
||||
|
||||
### Azure & Entra ID alati
|
||||
|
||||
Sledeći alati će biti veoma korisni za enumeraciju kako Entra ID tenant-a tako i Azure okruženja polako (da izbegnete detekciju) ili automatski (da uštedite vreme):
|
||||
Sledeći alati će biti veoma korisni za enumeraciju i Entra ID tenant-a i Azure okruženja polako (da izbegnete detekciju) ili automatski (da uštedite vreme):
|
||||
|
||||
{{#ref}}
|
||||
az-enumeration-tools.md
|
||||
@@ -78,12 +78,12 @@ az-enumeration-tools.md
|
||||
|
||||
U slučajevima kada imate neke validne akreditive, ali ne možete da se prijavite, ovo su neke uobičajene zaštite koje bi mogle biti na snazi:
|
||||
|
||||
- **IP beljenje** -- Morate kompromitovati validan IP
|
||||
- **Geo ograničenja** -- Pronađite gde korisnik živi ili gde su kancelarije kompanije i dobijete IP iz istog grada (ili barem iz iste zemlje)
|
||||
- **IP whitelisting** -- Morate kompromitovati validan IP
|
||||
- **Geo restrikcije** -- Pronađite gde korisnik živi ili gde su kancelarije kompanije i dobijete IP iz istog grada (ili barem iz iste zemlje)
|
||||
- **Pregledač** -- Možda je dozvoljen samo pregledač iz određenog OS-a (Windows, Linux, Mac, Android, iOS). Saznajte koji OS koristi žrtva/kompanija.
|
||||
- Takođe možete pokušati da **kompromitujete akreditive Service Principal-a** jer su obično manje ograničeni i njihova prijava se manje pregledava
|
||||
- Takođe možete pokušati da **kompromitujete akreditive Service Principal-a** jer su obično manje ograničeni i njihova prijava se manje proverava
|
||||
|
||||
Nakon obilaženja, možda ćete moći da se vratite na svoju početnu postavku i i dalje ćete imati pristup.
|
||||
Nakon obilaženja, možda ćete moći da se vratite na svoju inicijalnu postavku i i dalje ćete imati pristup.
|
||||
|
||||
Proverite:
|
||||
|
||||
@@ -141,7 +141,7 @@ Get-AzureADTenantDetail
|
||||
{{#endtabs }}
|
||||
|
||||
|
||||
### Entra ID Enumeracija i Privesc
|
||||
### Entra ID Enumeracija & Privesc
|
||||
|
||||
Po defaultu, svaki korisnik bi trebao imati **dovoljno dozvola da enumeriše** stvari kao što su korisnici, grupe, uloge, servisni principi... (proverite [default AzureAD permissions](az-basic-information/index.html#default-user-permissions)).\
|
||||
Ovde možete pronaći vodič:
|
||||
@@ -165,29 +165,47 @@ Trebalo bi da počnete da otkrivate **dozvole koje imate** nad resursima. Za to:
|
||||
|
||||
1. **Pronađite resurs kojem imate pristup**:
|
||||
|
||||
> [!TIP]
|
||||
> Ovo ne zahteva nikakve posebne dozvole.
|
||||
|
||||
Az PowerShell komanda **`Get-AzResource`** vam omogućava da **saznate resurse koje vaš trenutni korisnik može da vidi**.
|
||||
|
||||
Pored toga, možete dobiti iste informacije u **web konzoli** odlaskom na [https://portal.azure.com/#view/HubsExtension/BrowseAll](https://portal.azure.com/#view/HubsExtension/BrowseAll) ili pretražujući "Svi resursi" ili izvršavajući:
|
||||
```bash
|
||||
az rest --method GET --url "https://management.azure.com/subscriptions/<subscription-id>/resources?api-version=2021-04-01"
|
||||
```
|
||||
2. **Pronađite dozvole koje imate nad resursima kojima imate pristup i pronađite uloge koje su vam dodeljene**:
|
||||
2. **Pronađite dozvole koje imate nad resursima koje možete videti**:
|
||||
|
||||
Napomena da vam je potrebna dozvola **`Microsoft.Authorization/roleAssignments/read`** da biste izvršili ovu akciju.
|
||||
> [!TIP]
|
||||
> Ovo ne zahteva nikakve posebne dozvole.
|
||||
|
||||
Pored toga, sa dovoljno dozvola, uloga **`Get-AzRoleAssignment`** može se koristiti za **enumeraciju svih uloga** u pretplati ili dozvolu nad specifičnim resursom, označavajući je kao:
|
||||
Razgovarajući sa API **`https://management.azure.com/{resource_id}/providers/Microsoft.Authorization/permissions?api-version=2022-04-01`**, možete dobiti dozvole koje imate nad specificiranim resursom u **`resource_id`**.
|
||||
|
||||
Dakle, **proveravajući svaki od resursa kojima imate pristup**, možete dobiti dozvole koje imate nad njima.
|
||||
|
||||
> [!WARNING]
|
||||
> Možete automatizovati ovu enumeraciju koristeći alat **[Find_My_Az_Management_Permissions](https://github.com/carlospolop/Find_My_Az_Management_Permissions)**.
|
||||
|
||||
|
||||
<details>
|
||||
<summary>Enumerišite dozvole sa **`Microsoft.Authorization/roleAssignments/read`**</summary>
|
||||
|
||||
> [!TIP]
|
||||
> Imajte na umu da vam je potrebna dozvola **`Microsoft.Authorization/roleAssignments/read`** da biste izvršili ovu akciju.
|
||||
|
||||
- Sa dovoljno dozvola, uloga **`Get-AzRoleAssignment`** može se koristiti za **enumeraciju svih uloga** u pretplati ili dozvolu nad specifičnim resursom, označavajući ga kao:
|
||||
```bash
|
||||
Get-AzRoleAssignment -Scope /subscriptions/<subscription-id>/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4
|
||||
```
|
||||
Takođe je moguće dobiti ove informacije pokretanjem:
|
||||
```bash
|
||||
az rest --method GET --uri "https://management.azure.com/<Scope>/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"
|
||||
az rest --method GET --uri "https://management.azure.com/<Scope>/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01" | jq ".value"
|
||||
```
|
||||
kao u:
|
||||
```bash
|
||||
az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/resourceGroups/Resource_Group_1/providers/Microsoft.KeyVault/vaults/vault-m3ww8ut4/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"
|
||||
az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/resourceGroups/Resource_Group_1/providers/Microsoft.KeyVault/vaults/vault-m3ww8ut4/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01" | jq ".value"
|
||||
```
|
||||
Druga opcija je da dobijete uloge koje su vam dodeljene u azure sa:
|
||||
- Druga opcija je da **dobijete uloge koje su vam dodeljene u azure**. Ovo takođe zahteva dozvolu **`Microsoft.Authorization/roleAssignments/read`**:
|
||||
```bash
|
||||
az role assignment list --assignee "<email>" --all --output table
|
||||
```
|
||||
@@ -195,14 +213,16 @@ Ili pokretanje sledećeg (Ako su rezultati prazni, to može biti zato što nemat
|
||||
```bash
|
||||
az rest --method GET --uri 'https://management.azure.com/subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=principalId eq '<user-id>'
|
||||
```
|
||||
3. **Pronađite granularne dozvole uloga koje su vam dodeljene**:
|
||||
- **Pronađite granularne dozvole uloga koje su vam dodeljene**:
|
||||
|
||||
Zatim, da biste dobili granularne dozvole, možete pokrenuti **`(Get-AzRoleDefinition -Id "<RoleDefinitionId>").Actions`**.
|
||||
|
||||
Ili pozovite API direktno sa
|
||||
```bash
|
||||
az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<RoleDefinitionId>?api-version=2020-08-01-preview" | jq ".properties"
|
||||
az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<RoleDefinitionId>?api-version=2022-04-01" | jq ".properties"
|
||||
```
|
||||
</details>
|
||||
|
||||
U sledećem odeljku možete pronaći **informacije o najčešćim Azure uslugama i kako ih enumerisati**:
|
||||
|
||||
{{#ref}}
|
||||
|
||||
Reference in New Issue
Block a user