mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-10 23:00:49 -08:00
Translated ['src/pentesting-cloud/azure-security/README.md', 'src/pentes
This commit is contained in:
@@ -30,7 +30,7 @@ az-unauthenticated-enum-and-initial-entry/
|
||||
|
||||
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)
|
||||
- **Ponovno korišćenje** 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)
|
||||
- [Phishing putem Device Code Authentication](az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md)
|
||||
@@ -38,45 +38,52 @@ Sa ovim informacijama, najčešći načini da pokušate da dobijete foothold su:
|
||||
- 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/)
|
||||
- Ako je neki laptop programera kompromitovan ([WinPEAS i LinPEAS](https://github.com/peass-ng/PEASS-ng) mogu pronaći ove informacije):
|
||||
- **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):
|
||||
- Unutar **`<HOME>/.Azure`**
|
||||
- **`azureProfile.json`** sadrži informacije o prijavljenim korisnicima iz prošlosti
|
||||
- **`clouds.config` sadrži** informacije o pretplatama
|
||||
- **`service_principal_entries.json`** sadrži akreditive aplikacija (tenant id, klijente i tajnu). Samo na Linux-u i macOS-u
|
||||
- **`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 šifrovani sa DPAPI
|
||||
- **`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 i akreditive)
|
||||
- Unutar **`C:\Users\<username>\AppData\Local\Microsoft\IdentityCache\*`** se nalaze nekoliko `.bin` fajlova sa **pristupnim tokenima**, ID tokenima i informacijama o računima šifrovanim 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 šifrovane sa DPAPI pristupne tokene.
|
||||
- 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.
|
||||
- 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:
|
||||
|
||||
{{#ref}}
|
||||
az-unauthenticated-enum-and-initial-entry/
|
||||
{{#endref}}
|
||||
|
||||
> [!NOTE]
|
||||
> Zapamtite da je obično **najbučniji** deo enumeracije **prijava**, a ne sama enumeracija.
|
||||
|
||||
### 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 bi se izbegla detekcija) ili automatski (da se uštedi vreme):
|
||||
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):
|
||||
|
||||
{{#ref}}
|
||||
az-enumeration-tools.md
|
||||
{{#endref}}
|
||||
|
||||
### Zaobilaženje uslova prijave
|
||||
### Obilaženje uslova prijave
|
||||
|
||||
<figure><img src="../../images/image (268).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
U slučajevima kada imate neke validne akreditive, ali ne možete da se prijavite, ovo su neka uobičajena zaštitna sredstva koja bi mogla biti na snazi:
|
||||
|
||||
- **IP whitelisting** -- Morate kompromitovati validan IP
|
||||
- **Geo restrikcije** -- Pronađite gde korisnik živi ili gde su kancelarije kompanije i dobijte IP iz istog grada (ili barem iz iste zemlje)
|
||||
- **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)
|
||||
- **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 zaobilaženja, možda ćete moći da se vratite na svoju početnu postavku i još uvek imati pristup.
|
||||
Nakon obilaženja, možda ćete moći da se vratite na svoju početnu postavku i još uvek imati pristup.
|
||||
|
||||
### Whoami
|
||||
|
||||
@@ -148,13 +155,32 @@ az-enumeration-tools.md#automated-post-exploitation-tools
|
||||
|
||||
Kada znate ko ste, možete početi da enumerišete **Azure servise kojima imate pristup**.
|
||||
|
||||
Trebalo bi da počnete da otkrivate **dozvole koje imate** nad resursima. Za to:
|
||||
|
||||
1. **Pronađite resurs kojem imate pristup**:
|
||||
|
||||
Az PowerShell komanda **`Get-AzResource`** vam omogućava da **znate 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: `az rest --method GET --url "https://management.azure.com/subscriptions/<subscription-id>/resources?api-version=2021-04-01"`
|
||||
|
||||
Štaviše, sa dovoljno dozvola, uloga **`Get-AzRoleAssignment`** može se koristiti za **enumeraciju svih uloga** u pretplati ili dozvola nad specifičnim resursom, označavajući ga kao u: **`Get-AzRoleAssignment -Scope /subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4`**
|
||||
2. **Pronađite dozvole koje imate nad resursima kojima imate pristup i pronađite uloge dodeljene vama**:
|
||||
|
||||
U sledećem odeljku možete pronaći informacije o najčešćim Azure servisima i kako ih enumerisati:
|
||||
Napomena da vam je potrebna dozvola **`Microsoft.Authorization/roleAssignments/read`** da izvršite ovu akciju.
|
||||
|
||||
Pored toga, sa dovoljno dozvola, uloga **`Get-AzRoleAssignment`** može se koristiti za **enumeraciju svih uloga** u pretplati ili dozvola nad specifičnim resursom označavajući ga kao u: **`Get-AzRoleAssignment -Scope /subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4`**.
|
||||
|
||||
Takođe je moguće dobiti ove informacije pokretanjem **`az rest --method GET --uri "https://management.azure.com/<Scope>/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"`** kao u:
|
||||
|
||||
- **`az rest --method GET --uri "https://management.azure.com//subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.KeyVault/vaults/vault-m3ww8ut4/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"`**
|
||||
|
||||
3. **Pronađite granularne dozvole uloga koje su vam dodeljene**:
|
||||
|
||||
Zatim, da dobijete granularne dozvole možete pokrenuti **`(Get-AzRoleDefinition -Id "<RoleDefinitionId>").Actions`**.
|
||||
|
||||
Ili pozvati API direktno sa **`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"`**.
|
||||
|
||||
|
||||
U sledećem odeljku možete pronaći **informacije o najčešćim Azure servisima i kako ih enumerisati**:
|
||||
|
||||
{{#ref}}
|
||||
az-services/
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
# Az - Eskalacija privilegija
|
||||
@@ -0,0 +1,41 @@
|
||||
# Az - Storage Unauth
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Storage Unauth
|
||||
|
||||
Za više informacija o skladištu, proverite:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-storage.md
|
||||
{{#endref}}
|
||||
|
||||
### Open Storage
|
||||
|
||||
Možete otkriti otvoreno skladište pomoću alata kao što je [**InvokeEnumerateAzureBlobs.ps1**](https://github.com/NetSPI/MicroBurst/blob/master/Misc/Invoke-EnumerateAzureBlobs.ps1) koji će koristiti datoteku **`Microburst/Misc/permutations.txt`** za generisanje permutacija (veoma jednostavno) kako biste pokušali da **pronađete otvorene skladišne račune**.
|
||||
```bash
|
||||
Import-Module .\MicroBurst\MicroBurst.psm1
|
||||
Invoke-EnumerateAzureBlobs -Base corp
|
||||
[...]
|
||||
https://corpcommon.blob.core.windows.net/secrets?restype=container&comp=list
|
||||
[...]
|
||||
|
||||
# Access https://corpcommon.blob.core.windows.net/secrets?restype=container&comp=list
|
||||
# Check: <Name>ssh_info.json</Name>
|
||||
# Access then https://corpcommon.blob.core.windows.net/secrets/ssh_info.json
|
||||
```
|
||||
Možete takođe koristiti metodu iz [**MicroBust**](https://github.com/NetSPI/MicroBurst) za takav cilj. Ova funkcija će pretraživati osnovno ime domena (i nekoliko permutacija) u nekoliko **azure domena** (uključujući domene za skladištenje):
|
||||
```bash
|
||||
Import-Module .\MicroBurst\MicroBurst.psm1 -Verbose
|
||||
Invoke-EnumerateAzureSubDomains -Base corp -Verbose
|
||||
```
|
||||
### SAS URLs
|
||||
|
||||
_**Zajednički pristupni potpis**_ (SAS) URL je URL koji **omogućava pristup** određenom delu naloga za skladištenje (može biti ceo kontejner, datoteka...) sa određenim dozvolama (čitanje, pisanje...) nad resursima. Ako pronađete jedan otkriven, mogli biste imati pristup osetljivim informacijama, izgledaju ovako (ovo je za pristup kontejneru, ako je samo omogućavao pristup datoteci, putanja URL-a će takođe sadržati tu datoteku):
|
||||
|
||||
`https://<storage_account_name>.blob.core.windows.net/newcontainer?sp=r&st=2021-09-26T18:15:21Z&se=2021-10-27T02:14:21Z&spr=https&sv=2021-07-08&sr=c&sig=7S%2BZySOgy4aA3Dk0V1cJyTSIf1cW%2Fu3WFkhHV32%2B4PE%3D`
|
||||
|
||||
Koristite [**Storage Explorer**](https://azure.microsoft.com/en-us/features/storage-explorer/) za pristup podacima
|
||||
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
Reference in New Issue
Block a user