mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-30 22:50:43 -08:00
Translated ['src/pentesting-cloud/azure-security/README.md', 'src/pentes
This commit is contained in:
@@ -42,14 +42,14 @@ Con queste informazioni, i modi più comuni per cercare di ottenere un foothold
|
||||
- Se un laptop di uno sviluppatore è compromesso ([WinPEAS e LinPEAS](https://github.com/peass-ng/PEASS-ng) possono trovare queste informazioni):
|
||||
- All'interno di **`<HOME>/.Azure`**
|
||||
- **`azureProfile.json`** contiene informazioni sugli utenti connessi in passato
|
||||
- **`clouds.config` contiene** informazioni sulle sottoscrizioni
|
||||
- **`clouds.config contiene`** informazioni sulle sottoscrizioni
|
||||
- **`service_principal_entries.json`** contiene credenziali delle applicazioni (tenant id, client e segreto). Solo in Linux e macOS
|
||||
- **`msal_token_cache.json`** contiene token di accesso e token di aggiornamento. Solo in Linux e macOS
|
||||
- **`service_principal_entries.bin`** e msal_token_cache.bin sono utilizzati in Windows e sono crittografati con DPAPI
|
||||
- **`msal_http_cache.bin`** è una cache delle richieste HTTP
|
||||
- Caricalo: `with open("msal_http_cache.bin", 'rb') as f: pickle.load(f)`
|
||||
- **`AzureRmContext.json`** contiene informazioni sui login precedenti utilizzando Az PowerShell (ma nessuna credenziale)
|
||||
- All'interno di **`C:\Users\<username>\AppData\Local\Microsoft\IdentityCache\*`** ci sono diversi file `.bin` con **token di accesso**, token ID e informazioni sull'account crittografate con DPAPI degli utenti.
|
||||
- All'interno di **`C:\Users\<username>\AppData\Local\Microsoft\IdentityCache\*`** ci sono diversi file `.bin` con **token di accesso**, token ID e informazioni sull'account crittografate con DPAPI dell'utente.
|
||||
- È possibile trovare ulteriori **token di accesso** nei file `.tbres` all'interno di **`C:\Users\<username>\AppData\Local\Microsoft\TokenBroken\Cache\`** che contengono un base64 crittografato con DPAPI con token di accesso.
|
||||
- In Linux e macOS puoi ottenere **token di accesso, token di aggiornamento e token ID** da Az PowerShell (se utilizzato) eseguendo `pwsh -Command "Save-AzContext -Path /tmp/az-context.json"`
|
||||
- In Windows questo genera solo token ID.
|
||||
@@ -66,25 +66,31 @@ az-unauthenticated-enum-and-initial-entry/
|
||||
|
||||
### Strumenti Azure & Entra ID
|
||||
|
||||
I seguenti strumenti saranno molto utili per enumerare sia i tenant di Entra ID che gli ambienti Azure lentamente (per evitare il rilevamento) o automaticamente (per risparmiare tempo):
|
||||
I seguenti strumenti saranno super utili per enumerare sia i tenant di Entra ID che gli ambienti Azure lentamente (per evitare il rilevamento) o automaticamente (per risparmiare tempo):
|
||||
|
||||
{{#ref}}
|
||||
az-enumeration-tools.md
|
||||
{{#endref}}
|
||||
|
||||
### Bypassare le condizioni di login
|
||||
### Bypassare le politiche di accesso
|
||||
|
||||
<figure><img src="../../images/image (268).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Nei casi in cui hai alcune credenziali valide ma non puoi effettuare il login, queste sono alcune protezioni comuni che potrebbero essere in atto:
|
||||
Nei casi in cui hai alcune credenziali valide ma non puoi accedere, queste sono alcune protezioni comuni che potrebbero essere in atto:
|
||||
|
||||
- **Whitelisting IP** -- Devi compromettere un IP valido
|
||||
- **Whitelist IP** -- Devi compromettere un IP valido
|
||||
- **Restrizioni geografiche** -- Scopri dove vive l'utente o dove si trovano gli uffici dell'azienda e ottieni un IP dalla stessa città (o paese almeno)
|
||||
- **Browser** -- Forse è consentito solo un browser di un certo OS (Windows, Linux, Mac, Android, iOS). Scopri quale OS utilizza la vittima/azienda.
|
||||
- Puoi anche provare a **compromettere le credenziali del Service Principal** poiché di solito sono meno limitate e il loro login è meno controllato
|
||||
- Puoi anche provare a **compromettere le credenziali del Service Principal** poiché di solito sono meno limitate e il loro accesso è meno controllato
|
||||
|
||||
Dopo averlo bypassato, potresti essere in grado di tornare alla tua configurazione iniziale e avrai ancora accesso.
|
||||
|
||||
Controlla:
|
||||
|
||||
{{#ref}}
|
||||
az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md
|
||||
{{#endref}}
|
||||
|
||||
### Whoami
|
||||
|
||||
> [!CAUTION]
|
||||
@@ -135,47 +141,47 @@ Get-AzureADTenantDetail
|
||||
{{#endtabs }}
|
||||
|
||||
|
||||
### Enumerazione di Entra ID e Escalation dei Privilegi
|
||||
### Enumerazione di Entra ID e Privesc
|
||||
|
||||
Per impostazione predefinita, qualsiasi utente dovrebbe avere **sufficienti permessi per enumerare** cose come utenti, gruppi, ruoli, service principals... (controlla [permissi di default di AzureAD](az-basic-information/index.html#default-user-permissions)).\
|
||||
Per impostazione predefinita, qualsiasi utente dovrebbe avere **sufficienti autorizzazioni per enumerare** cose come utenti, gruppi, ruoli, service principals... (controlla [autorizzazioni predefinite di AzureAD](az-basic-information/index.html#default-user-permissions)).\
|
||||
Puoi trovare qui una guida:
|
||||
|
||||
{{#ref}}
|
||||
az-services/az-azuread.md
|
||||
{{#endref}}
|
||||
|
||||
Controlla gli **Strumenti di Post-Exploitation** per trovare strumenti per escalare i privilegi in Entra ID come **AzureHound:**
|
||||
Controlla gli **strumenti di Post-Exploitation** per trovare strumenti per elevare i privilegi in Entra ID come **AzureHound:**
|
||||
|
||||
{{#ref}}
|
||||
az-enumeration-tools.md#automated-post-exploitation-tools
|
||||
{{#endref}}
|
||||
|
||||
|
||||
### Enumerare i Servizi Azure
|
||||
### Enumerazione di Azure
|
||||
|
||||
Una volta che sai chi sei, puoi iniziare a enumerare i **servizi Azure a cui hai accesso**.
|
||||
|
||||
Dovresti iniziare a scoprire i **permessi che hai** sulle risorse. Per questo:
|
||||
Dovresti iniziare a scoprire le **autorizzazioni che hai** sulle risorse. Per questo:
|
||||
|
||||
1. **Trova la risorsa a cui hai accesso**:
|
||||
|
||||
Il comando Az PowerShell **`Get-AzResource`** ti consente di **conoscere le risorse su cui il tuo utente attuale ha visibilità**.
|
||||
Il comando Az PowerShell **`Get-AzResource`** ti consente di **conoscere le risorse di cui il tuo utente attuale ha visibilità**.
|
||||
|
||||
Inoltre, puoi ottenere le stesse informazioni nella **console web** andando su [https://portal.azure.com/#view/HubsExtension/BrowseAll](https://portal.azure.com/#view/HubsExtension/BrowseAll) o cercando "Tutte le risorse" o eseguendo: `az rest --method GET --url "https://management.azure.com/subscriptions/<subscription-id>/resources?api-version=2021-04-01"`
|
||||
|
||||
2. **Trova i permessi che hai sulle risorse a cui hai accesso e trova i ruoli a te assegnati**:
|
||||
2. **Trova le autorizzazioni che hai sulle risorse a cui hai accesso e trova i ruoli assegnati a te**:
|
||||
|
||||
Nota che hai bisogno del permesso **`Microsoft.Authorization/roleAssignments/read`** per eseguire questa azione.
|
||||
Nota che hai bisogno dell'autorizzazione **`Microsoft.Authorization/roleAssignments/read`** per eseguire questa azione.
|
||||
|
||||
Inoltre, con sufficienti permessi, il ruolo **`Get-AzRoleAssignment`** può essere utilizzato per **enumerare tutti i ruoli** nella sottoscrizione o il permesso su una risorsa specifica indicandola come in: **`Get-AzRoleAssignment -Scope /subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4`**.
|
||||
Inoltre, con sufficienti autorizzazioni, il ruolo **`Get-AzRoleAssignment`** può essere utilizzato per **enumerare tutti i ruoli** nella sottoscrizione o l'autorizzazione su una risorsa specifica indicandola come in: **`Get-AzRoleAssignment -Scope /subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4`**.
|
||||
|
||||
È anche possibile ottenere queste informazioni eseguendo **`az rest --method GET --uri "https://management.azure.com/<Scope>/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"`** come in:
|
||||
|
||||
- **`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. **Trova i permessi granulari dei ruoli a te associati**:
|
||||
3. **Trova le autorizzazioni granulari dei ruoli a te assegnati**:
|
||||
|
||||
Poi, per ottenere il permesso granulare potresti eseguire **`(Get-AzRoleDefinition -Id "<RoleDefinitionId>").Actions`**.
|
||||
Poi, per ottenere l'autorizzazione granulare potresti eseguire **`(Get-AzRoleDefinition -Id "<RoleDefinitionId>").Actions`**.
|
||||
|
||||
Oppure chiama direttamente l'API con **`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"`**.
|
||||
|
||||
@@ -186,11 +192,11 @@ Nella sezione seguente puoi trovare **informazioni sui servizi Azure più comuni
|
||||
az-services/
|
||||
{{#endref}}
|
||||
|
||||
### Escalation dei Privilegi, Post-Exploitation e Persistenza nei Servizi Azure
|
||||
### Elevazione dei privilegi, Post-Exploitation e Persistenza
|
||||
|
||||
Una volta che sai come è strutturato l'ambiente Azure e quali servizi vengono utilizzati, puoi iniziare a cercare modi per **escalare i privilegi, muoverti lateralmente, eseguire altri attacchi di post-exploitation e mantenere la persistenza**.
|
||||
Una volta che sai come è strutturato l'ambiente Azure e quali servizi vengono utilizzati, puoi iniziare a cercare modi per **elevare i privilegi, muoverti lateralmente, eseguire altri attacchi di post-exploitation e mantenere la persistenza**.
|
||||
|
||||
Nella sezione seguente puoi trovare informazioni su come escalare i privilegi nei servizi Azure più comuni:
|
||||
Nella sezione seguente puoi trovare informazioni su come elevare i privilegi nei servizi Azure più comuni:
|
||||
|
||||
{{#ref}}
|
||||
az-privilege-escalation/
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
### Illicit Consent Grant
|
||||
### OAuth Application
|
||||
|
||||
Per impostazione predefinita, qualsiasi utente può registrare un'applicazione in Azure AD. Quindi puoi registrare un'applicazione (solo per il tenant target) che necessita di permessi ad alto impatto con consenso dell'amministratore (approvala se sei l'amministratore) - come inviare email per conto di un utente, gestione dei ruoli, ecc. Questo ci permetterà di **eseguire attacchi di phishing** che sarebbero molto **fruttuosi** in caso di successo.
|
||||
Per impostazione predefinita, qualsiasi utente può registrare un'applicazione in Entra ID. Quindi puoi registrare un'applicazione (solo per il tenant target) che necessita di permessi ad alto impatto con consenso dell'amministratore (approvala se sei l'amministratore) - come inviare email per conto di un utente, gestione dei ruoli, ecc. Questo ci permetterà di **eseguire attacchi di phishing** che sarebbero molto **fruttuosi** in caso di successo.
|
||||
|
||||
Inoltre, potresti anche accettare quell'applicazione con il tuo utente come modo per mantenere l'accesso su di essa.
|
||||
|
||||
@@ -14,7 +14,7 @@ Con i privilegi di Application Administrator, GA o un ruolo personalizzato con p
|
||||
|
||||
È possibile **prendere di mira un'applicazione con permessi elevati** o **aggiungere una nuova applicazione** con permessi elevati.
|
||||
|
||||
Un ruolo interessante da aggiungere all'applicazione sarebbe il **Privileged authentication administrator role** poiché consente di **reimpostare la password** degli Amministratori Globali.
|
||||
Un ruolo interessante da aggiungere all'applicazione sarebbe il **ruolo di amministratore dell'autenticazione privilegiata** poiché consente di **reimpostare la password** degli Amministratori Globali.
|
||||
|
||||
Questa tecnica consente anche di **bypassare MFA**.
|
||||
```bash
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Informazioni di base
|
||||
## Informazioni di Base
|
||||
|
||||
Azure Active Directory (Azure AD) funge da servizio basato su cloud di Microsoft per la gestione dell'identità e degli accessi. È fondamentale per consentire ai dipendenti di accedere e ottenere risorse, sia all'interno che al di fuori dell'organizzazione, comprendendo Microsoft 365, il portale Azure e una moltitudine di altre applicazioni SaaS. Il design di Azure AD si concentra sulla fornitura di servizi di identità essenziali, includendo in modo prominente **autenticazione, autorizzazione e gestione degli utenti**.
|
||||
Azure Active Directory (Azure AD) funge da servizio basato su cloud di Microsoft per la gestione dell'identità e degli accessi. È fondamentale per consentire ai dipendenti di accedere e ottenere risorse, sia all'interno che al di fuori dell'organizzazione, comprendendo Microsoft 365, il portale Azure e una moltitudine di altre applicazioni SaaS. Il design di Azure AD si concentra sulla fornitura di servizi essenziali per l'identità, includendo in modo prominente **autenticazione, autorizzazione e gestione degli utenti**.
|
||||
|
||||
Le caratteristiche chiave di Azure AD comprendono **autenticazione a più fattori** e **accesso condizionale**, insieme a un'integrazione fluida con altri servizi di sicurezza Microsoft. Queste funzionalità elevano significativamente la sicurezza delle identità degli utenti e consentono alle organizzazioni di implementare e far rispettare efficacemente le loro politiche di accesso. Come componente fondamentale dell'ecosistema dei servizi cloud di Microsoft, Azure AD è cruciale per la gestione basata su cloud delle identità degli utenti.
|
||||
|
||||
@@ -307,7 +307,7 @@ $password = "ThisIsTheNewPassword.!123" | ConvertTo- SecureString -AsPlainText
|
||||
|
||||
(Get-AzureADUser -All $true | ?{$_.UserPrincipalName -eq "victim@corp.onmicrosoft.com"}).ObjectId | Set- AzureADUserPassword -Password $password –Verbose
|
||||
```
|
||||
### MFA & Politiche di Accesso Condizionale
|
||||
### MFA & Conditional Access Policies
|
||||
|
||||
È fortemente consigliato aggiungere MFA a ogni utente, tuttavia, alcune aziende potrebbero non impostarlo o potrebbero impostarlo con un Accesso Condizionale: L'utente sarà **richiesto MFA se** accede da una posizione specifica, browser o **alcuna condizione**. Queste politiche, se non configurate correttamente, potrebbero essere soggette a **bypass**. Controlla:
|
||||
|
||||
@@ -315,7 +315,7 @@ $password = "ThisIsTheNewPassword.!123" | ConvertTo- SecureString -AsPlainText
|
||||
../az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md
|
||||
{{#endref}}
|
||||
|
||||
### Gruppi
|
||||
### Groups
|
||||
|
||||
Per ulteriori informazioni sui gruppi di Entra ID controlla:
|
||||
|
||||
@@ -495,7 +495,7 @@ Get-AzureADServicePrincipal -ObjectId <id> | Get-AzureADServicePrincipalMembersh
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Elenca e prova ad aggiungere un client secret a ciascuna App Aziendale</summary>
|
||||
<summary>Elenca e prova ad aggiungere un client secret su ogni Enterprise App</summary>
|
||||
```bash
|
||||
# Just call Add-AzADAppSecret
|
||||
Function Add-AzADAppSecret
|
||||
@@ -602,13 +602,13 @@ Write-Output "Failed to Enumerate the Applications."
|
||||
|
||||
### Applicazioni
|
||||
|
||||
Per ulteriori informazioni sulle Applicazioni, controlla:
|
||||
Per ulteriori informazioni sulle Applicazioni controlla:
|
||||
|
||||
{{#ref}}
|
||||
../az-basic-information/
|
||||
{{#endref}}
|
||||
|
||||
Quando un'App viene generata, vengono concessi 2 tipi di permessi:
|
||||
Quando un'App viene generata, vengono date 2 tipologie di permessi:
|
||||
|
||||
- **Permessi** dati al **Service Principal**
|
||||
- **Permessi** che l'**app** può avere e utilizzare per **conto dell'utente**.
|
||||
@@ -933,7 +933,7 @@ Quando PIM è abilitato, è possibile configurare ciascun ruolo con determinati
|
||||
- Tempo massimo per far scadere le assegnazioni idonee
|
||||
- Molte altre configurazioni su quando e a chi inviare notifiche quando si verificano determinate azioni con quel ruolo
|
||||
|
||||
### Politiche di Accesso Condizionale <a href="#title-text" id="title-text"></a>
|
||||
### Politiche di Accesso Condizionale
|
||||
|
||||
Controlla:
|
||||
|
||||
@@ -941,20 +941,20 @@ Controlla:
|
||||
../az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md
|
||||
{{#endref}}
|
||||
|
||||
### Protezione dell'identità Entra <a href="#title-text" id="title-text"></a>
|
||||
### Protezione dell'identità di Entra
|
||||
|
||||
La Protezione dell'identità Entra è un servizio di sicurezza che consente di **rilevare quando un utente o un accesso è troppo rischioso** per essere accettato, consentendo di **bloccare** l'utente o il tentativo di accesso.
|
||||
La Protezione dell'identità di Entra è un servizio di sicurezza che consente di **rilevare quando un utente o un accesso è troppo rischioso** per essere accettato, consentendo di **bloccare** l'utente o il tentativo di accesso.
|
||||
|
||||
Consente all'amministratore di configurarlo per **bloccare** i tentativi quando il rischio è "Basso e superiore", "Medio e superiore" o "Alto". Tuttavia, per impostazione predefinita è completamente **disabilitato**:
|
||||
|
||||
<figure><img src="../../../images/image (356).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
> [!TIP]
|
||||
> Oggigiorno è consigliato aggiungere queste restrizioni tramite politiche di Accesso Condizionale dove è possibile configurare le stesse opzioni.
|
||||
> Oggi è consigliato aggiungere queste restrizioni tramite politiche di Accesso Condizionale dove è possibile configurare le stesse opzioni.
|
||||
|
||||
### Protezione della password Entra
|
||||
### Protezione della password di Entra
|
||||
|
||||
La Protezione della password Entra ([https://portal.azure.com/index.html#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade](https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade)) è una funzionalità di sicurezza che **aiuta a prevenire l'abuso di password deboli bloccando gli account quando si verificano diversi tentativi di accesso non riusciti**.\
|
||||
La Protezione della password di Entra ([https://portal.azure.com/index.html#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade](https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade)) è una funzionalità di sicurezza che **aiuta a prevenire l'abuso di password deboli bloccando gli account quando si verificano diversi tentativi di accesso non riusciti**.\
|
||||
Consente anche di **vietare un elenco di password personalizzato** che è necessario fornire.
|
||||
|
||||
Può essere **applicata sia** a livello cloud che su Active Directory on-premises.
|
||||
|
||||
Reference in New Issue
Block a user