Translated ['src/pentesting-cloud/azure-security/README.md', 'src/pentes

This commit is contained in:
Translator
2025-02-07 00:05:10 +00:00
parent bfbe7483ba
commit 58fa5139eb
2 changed files with 76 additions and 51 deletions

View File

@@ -20,7 +20,7 @@ Dal punto di vista di un Red Team, il **primo passo per compromettere un ambient
Il primo passo è ovviamente enumerare informazioni sul tenant che stai attaccando e cercare di ottenere un foothold.
Basandosi sul nome di dominio, è possibile sapere **se l'azienda sta utilizzando Azure**, ottenere il **tenant ID**, ottenere altri **domini validi** nello stesso tenant (se ce ne sono) e ottenere **informazioni rilevanti** come se SSO è abilitato, configurazioni email, email di utenti validi...
In base al nome di dominio è possibile sapere **se l'azienda sta utilizzando Azure**, ottenere il **tenant ID**, ottenere altri **domini validi** nello stesso tenant (se ce ne sono) e ottenere **informazioni rilevanti** come se SSO è abilitato, configurazioni email, email di utenti validi...
Controlla la pagina seguente per imparare come eseguire l'**enumerazione esterna**:
@@ -28,9 +28,9 @@ Controlla la pagina seguente per imparare come eseguire l'**enumerazione esterna
az-unauthenticated-enum-and-initial-entry/
{{#endref}}
Con queste informazioni, i modi più comuni per cercare di ottenere un foothold sono:
Con queste informazioni i modi più comuni per cercare di ottenere un foothold sono:
- **OSINT**: Controlla eventuali **leaks** su Github o su qualsiasi altra piattaforma open source che potrebbe contenere **credenziali** o informazioni interessanti.
- Riutilizzo delle **password**, leaks o [password spraying](az-unauthenticated-enum-and-initial-entry/az-password-spraying.md)
- Riutilizzo di **Password**, leaks o [password spraying](az-unauthenticated-enum-and-initial-entry/az-password-spraying.md)
- Acquistare credenziali da un dipendente
- [**Phishing comune**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-methodology/index.html) (credenziali o Oauth App)
- [Phishing con codice dispositivo](az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md)
@@ -40,7 +40,7 @@ Con queste informazioni, i modi più comuni per cercare di ottenere un foothold
- **Subdomain takeovers** come in [https://godiego.co/posts/STO-Azure/](https://godiego.co/posts/STO-Azure/)
- **Altre misconfigurazioni dei servizi Azure**
- Se un laptop di uno sviluppatore è compromesso ([WinPEAS e LinPEAS](https://github.com/peass-ng/PEASS-ng) possono trovare queste informazioni):
- All'interno di **`<HOME>/.Azure`**
- Dentro **`<HOME>/.Azure`**
- **`azureProfile.json`** contiene informazioni sugli utenti connessi in passato
- **`clouds.config contiene`** informazioni sulle sottoscrizioni
- **`service_principal_entries.json`** contiene credenziali delle applicazioni (tenant id, client e segreto). Solo in Linux e macOS
@@ -49,7 +49,7 @@ Con queste informazioni, i modi più comuni per cercare di ottenere un foothold
- **`msal_http_cache.bin`** è una cache delle richieste HTTP
- Caricalo: `with open("msal_http_cache.bin", 'rb') as f: pickle.load(f)`
- **`AzureRmContext.json`** contiene informazioni sui login precedenti utilizzando Az PowerShell (ma nessuna credenziale)
- All'interno di **`C:\Users\<username>\AppData\Local\Microsoft\IdentityCache\*`** ci sono diversi file `.bin` con **token di accesso**, token ID e informazioni sull'account crittografate con DPAPI dell'utente.
- Dentro **`C:\Users\<username>\AppData\Local\Microsoft\IdentityCache\*`** ci sono diversi file `.bin` con **token di accesso**, token ID e informazioni sull'account crittografate con DPAPI degli utenti.
- È possibile trovare ulteriori **token di accesso** nei file `.tbres` all'interno di **`C:\Users\<username>\AppData\Local\Microsoft\TokenBroken\Cache\`** che contengono un base64 crittografato con DPAPI con token di accesso.
- In Linux e macOS puoi ottenere **token di accesso, token di aggiornamento e token ID** da Az PowerShell (se utilizzato) eseguendo `pwsh -Command "Save-AzContext -Path /tmp/az-context.json"`
- In Windows questo genera solo token ID.
@@ -66,24 +66,24 @@ az-unauthenticated-enum-and-initial-entry/
### Strumenti Azure & Entra ID
I seguenti strumenti saranno super utili per enumerare sia i tenant di Entra ID che gli ambienti Azure lentamente (per evitare il rilevamento) o automaticamente (per risparmiare tempo):
I seguenti strumenti saranno molto utili per enumerare sia i tenant di Entra ID che gli ambienti Azure lentamente (per evitare il rilevamento) o automaticamente (per risparmiare tempo):
{{#ref}}
az-enumeration-tools.md
{{#endref}}
### Bypassare le politiche di accesso
### Bypass delle politiche di accesso
<figure><img src="../../images/image (268).png" alt=""><figcaption></figcaption></figure>
Nei casi in cui hai alcune credenziali valide ma non puoi accedere, queste sono alcune protezioni comuni che potrebbero essere in atto:
- **Whitelist IP** -- Devi compromettere un IP valido
- **Restrizioni geografiche** -- Scopri dove vive l'utente o dove si trovano gli uffici dell'azienda e ottieni un IP dalla stessa città (o paese almeno)
- **Whitelisting IP** -- Devi compromettere un IP valido
- **Restrizioni geografiche** -- Scopri dove vive l'utente o dove si trovano gli uffici dell'azienda e ottieni un IP dalla stessa città (o almeno dallo stesso paese)
- **Browser** -- Forse è consentito solo un browser di un certo OS (Windows, Linux, Mac, Android, iOS). Scopri quale OS utilizza la vittima/azienda.
- Puoi anche provare a **compromettere le credenziali del Service Principal** poiché di solito sono meno limitate e il loro accesso è meno controllato
Dopo averlo bypassato, potresti essere in grado di tornare alla tua configurazione iniziale e avrai ancora accesso.
Dopo aver bypassato, potresti essere in grado di tornare alla tua configurazione iniziale e avrai ancora accesso.
Controlla:
@@ -141,9 +141,9 @@ Get-AzureADTenantDetail
{{#endtabs }}
### Enumerazione di Entra ID e Privesc
### Enumerazione e Privilegi di Entra ID
Per impostazione predefinita, qualsiasi utente dovrebbe avere **sufficienti autorizzazioni per enumerare** cose come utenti, gruppi, ruoli, service principals... (controlla [autorizzazioni predefinite di AzureAD](az-basic-information/index.html#default-user-permissions)).\
Per impostazione predefinita, qualsiasi utente dovrebbe avere **sufficienti permessi per enumerare** cose come utenti, gruppi, ruoli, service principals... (controlla [permessi predefiniti di AzureAD](az-basic-information/index.html#default-user-permissions)).\
Puoi trovare qui una guida:
{{#ref}}
@@ -161,48 +161,65 @@ az-enumeration-tools.md#automated-post-exploitation-tools
Una volta che sai chi sei, puoi iniziare a enumerare i **servizi Azure a cui hai accesso**.
Dovresti iniziare a scoprire le **autorizzazioni che hai** sulle risorse. Per questo:
Dovresti iniziare a scoprire i **permessi che hai** sulle risorse. Per questo:
1. **Trova la risorsa a cui hai accesso**:
Il comando Az PowerShell **`Get-AzResource`** ti consente di **conoscere le risorse di cui il tuo utente attuale ha visibilità**.
Il comando Az PowerShell **`Get-AzResource`** ti consente di **conoscere le risorse su cui il tuo utente attuale ha visibilità**.
Inoltre, puoi ottenere le stesse informazioni nella **console web** andando su [https://portal.azure.com/#view/HubsExtension/BrowseAll](https://portal.azure.com/#view/HubsExtension/BrowseAll) o cercando "Tutte le risorse" o eseguendo: `az rest --method GET --url "https://management.azure.com/subscriptions/<subscription-id>/resources?api-version=2021-04-01"`
Inoltre, puoi ottenere le stesse informazioni nella **console web** andando su [https://portal.azure.com/#view/HubsExtension/BrowseAll](https://portal.azure.com/#view/HubsExtension/BrowseAll) o cercando "Tutte le risorse" o eseguendo:
```bash
az rest --method GET --url "https://management.azure.com/subscriptions/<subscription-id>/resources?api-version=2021-04-01"
```
2. **Trova i permessi che hai sulle risorse a cui hai accesso e trova i ruoli a te assegnati**:
2. **Trova le autorizzazioni che hai sulle risorse a cui hai accesso e trova i ruoli assegnati a te**:
Nota che hai bisogno del permesso **`Microsoft.Authorization/roleAssignments/read`** per eseguire questa azione.
Nota che hai bisogno dell'autorizzazione **`Microsoft.Authorization/roleAssignments/read`** per eseguire questa azione.
Inoltre, con permessi sufficienti, il ruolo **`Get-AzRoleAssignment`** p essere utilizzato per **enumerare tutti i ruoli** nella sottoscrizione o il permesso su una risorsa specifica indicandola come in:
```bash
Get-AzRoleAssignment -Scope /subscriptions/<subscription-id>/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4
```
È anche possibile ottenere queste informazioni eseguendo:
```bash
az rest --method GET --uri "https://management.azure.com/<Scope>/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"
```
come in:
```bash
az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/resourceGroups/Resource_Group_1/providers/Microsoft.KeyVault/vaults/vault-m3ww8ut4/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"
```
Un'altra opzione è ottenere i ruoli a te assegnati in azure con:
```bash
az role assignment list --assignee "<email>" --all --output table
```
O eseguendo quanto segue (se i risultati sono vuoti, potrebbe essere perché non hai il permesso di ottenerli):
```bash
az rest --method GET --uri 'https://management.azure.com/subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=principalId eq '<user-id>'
```
3. **Trova i permessi granulari dei ruoli a te associati**:
Inoltre, con sufficienti autorizzazioni, il ruolo **`Get-AzRoleAssignment`** può essere utilizzato per **enumerare tutti i ruoli** nella sottoscrizione o l'autorizzazione su una risorsa specifica indicandola come in: **`Get-AzRoleAssignment -Scope /subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4`**.
Poi, per ottenere il permesso granulare puoi eseguire **`(Get-AzRoleDefinition -Id "<RoleDefinitionId>").Actions`**.
È anche possibile ottenere queste informazioni eseguendo **`az rest --method GET --uri "https://management.azure.com/<Scope>/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"`** come in:
- **`az rest --method GET --uri "https://management.azure.com//subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.KeyVault/vaults/vault-m3ww8ut4/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"`**
3. **Trova le autorizzazioni granulari dei ruoli a te assegnati**:
Poi, per ottenere l'autorizzazione granulare potresti eseguire **`(Get-AzRoleDefinition -Id "<RoleDefinitionId>").Actions`**.
Oppure chiama direttamente l'API con **`az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<RoleDefinitionId>?api-version=2020-08-01-preview" | jq ".properties"`**.
Nella sezione seguente puoi trovare **informazioni sui servizi Azure più comuni e su come enumerarli**:
Oppure chiama direttamente l'API con
```bash
az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<RoleDefinitionId>?api-version=2020-08-01-preview" | jq ".properties"
```
Nella seguente sezione puoi trovare **informazioni sui servizi Azure più comuni e su come enumerarli**:
{{#ref}}
az-services/
{{#endref}}
### Elevazione dei privilegi, Post-Exploitation e Persistenza
### Escalation dei privilegi, Post-Exploitation e Persistenza
Una volta che sai come è strutturato l'ambiente Azure e quali servizi vengono utilizzati, puoi iniziare a cercare modi per **elevare i privilegi, muoverti lateralmente, eseguire altri attacchi di post-exploitation e mantenere la persistenza**.
Una volta che conosci come è strutturato l'ambiente Azure e quali servizi vengono utilizzati, puoi iniziare a cercare modi per **escalare i privilegi, muoverti lateralmente, eseguire altri attacchi post-exploitation e mantenere la persistenza**.
Nella sezione seguente puoi trovare informazioni su come elevare i privilegi nei servizi Azure più comuni:
Nella seguente sezione puoi trovare informazioni su come escalare i privilegi nei servizi Azure più comuni:
{{#ref}}
az-privilege-escalation/
{{#endref}}
Nella seguente puoi trovare informazioni su come eseguire attacchi di post-exploitation nei servizi Azure più comuni:
Nella seguente puoi trovare informazioni su come eseguire attacchi post-exploitation nei servizi Azure più comuni:
{{#ref}}
az-post-exploitation/

View File

@@ -4,38 +4,46 @@
## Informazioni di Base
Le politiche di accesso condizionale di Azure sono regole impostate in Microsoft Azure per applicare controlli di accesso ai servizi e alle applicazioni Azure in base a determinate **condizioni**. Queste politiche aiutano le organizzazioni a proteggere le loro risorse applicando i giusti controlli di accesso nelle giuste circostanze.\
Le politiche di Accesso Condizionale di Azure sono regole impostate in Microsoft Azure per applicare controlli di accesso ai servizi e alle applicazioni Azure in base a determinate **condizioni**. Queste politiche aiutano le organizzazioni a proteggere le loro risorse applicando i giusti controlli di accesso nelle giuste circostanze.\
Le politiche di accesso condizionale **definiscono** **Chi** può accedere a **Cosa** da **Dove** e **Come**.
Ecco un paio di esempi:
1. **Politica di Rischio di Accesso**: Questa politica potrebbe essere impostata per richiedere l'autenticazione a più fattori (MFA) quando viene rilevato un rischio di accesso. Ad esempio, se il comportamento di accesso di un utente è insolito rispetto al suo modello regolare, come accedere da un paese diverso, il sistema può richiedere un'autenticazione aggiuntiva.
1. **Politica di Rischio di Accesso**: Questa politica potrebbe essere impostata per richiedere l'autenticazione a più fattori (MFA) quando viene rilevato un rischio di accesso. Ad esempio, se il comportamento di accesso di un utente è insolito rispetto al loro modello regolare, come accedere da un paese diverso, il sistema può richiedere un'autenticazione aggiuntiva.
2. **Politica di Conformità del Dispositivo**: Questa politica può limitare l'accesso ai servizi Azure solo ai dispositivi che sono conformi agli standard di sicurezza dell'organizzazione. Ad esempio, l'accesso potrebbe essere consentito solo da dispositivi che hanno software antivirus aggiornato o che eseguono una certa versione del sistema operativo.
## Enumerazione
```bash
# Get all the policies from Azure without needing any special permission with (idea from https://github.com/LuemmelSec/APEX/blob/main/APEX.ps1)
az rest --method GET --uri 'https://graph.windows.net/<tenant-id>/policies?api-version=1.61-internal' | jq '.value[] | select(.policyType == 18) | {displayName, policyDetail: (.policyDetail[] | fromjson)}'
# You need Policy.Read.ConditionalAccess or Policy.Read.All permission in Entra ID
az rest --method get --uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies"
```
## Bypass delle Politiche di Accesso Condizionale
È possibile che una politica di accesso condizionale **verifichi alcune informazioni che possono essere facilmente manomesse, consentendo un bypass della politica**. E se, ad esempio, la politica fosse configurata per MFA, l'attaccante sarà in grado di bypassarla.
È possibile che una politica di accesso condizionale **controlli alcune informazioni che possono essere facilmente manomesse, consentendo un bypass della politica**. E se, ad esempio, la politica stava configurando MFA, l'attaccante sarà in grado di bypassarla.
Quando si configura una politica di accesso condizionale, è necessario indicare gli **utenti** interessati e le **risorse target** (come tutte le app cloud).
Quando si configura una politica di accesso condizionale è necessario indicare gli **utenti** interessati e le **risorse target** (come tutte le app cloud).
È anche necessario configurare le **condizioni** che attiveranno la politica:
- **Rete**: IP, intervalli IP e posizioni geografiche
- Può essere bypassato utilizzando una VPN o un Proxy per connettersi a un paese o riuscendo ad accedere da un indirizzo IP consentito
- **Rischi Microsoft**: Rischio utente, rischio di accesso, rischio interno
- Può essere bypassata utilizzando una VPN o un Proxy per connettersi a un paese o riuscendo a effettuare il login da un indirizzo IP consentito
- **Rischi Microsoft**: Rischio utente, rischio di accesso, rischio insider
- **Piattaforme dei dispositivi**: Qualsiasi dispositivo o selezionare Android, iOS, Windows phone, Windows, macOS, Linux
- Se “Qualsiasi dispositivo” non è selezionato ma tutte le altre opzioni sono selezionate, è possibile bypassarlo utilizzando un user-agent casuale non correlato a quelle piattaforme
- **App client**: Le opzioni sono “Browser”, “App mobili e client desktop”, “Client Exchange ActiveSync” e “Altri client”
- Per bypassare l'accesso con un'opzione non selezionata
- Per bypassare il login con un'opzione non selezionata
- **Filtro per dispositivi**: È possibile generare una regola relativa al dispositivo utilizzato
- **Flussi di autenticazione**: Le opzioni sono “Flusso di codice dispositivo” e “Trasferimento di autenticazione”
- Questo non influenzerà un attaccante a meno che non stia cercando di abusare di uno di questi protocolli in un tentativo di phishing per accedere all'account della vittima
I possibili **risultati** sono: Blocca o Consenti accesso con potenziali condizioni come richiedere MFA, dispositivo conforme…
I possibili **risultati** sono: Bloccare o concedere accesso con potenziali condizioni come richiedere MFA, dispositivo conforme…
### Piattaforme dei Dispositivi - Condizione del Dispositivo
È possibile impostare una condizione basata sulla **piattaforma del dispositivo** (Android, iOS, Windows, macOS...), tuttavia, questo si basa sull'**user-agent** quindi è facile da bypassare. Anche **rendendo tutte le opzioni obbligatorie per MFA**, se si utilizza un **user-agent che non è riconosciuto,** sarà possibile bypassare la MFA o il blocco:
È possibile impostare una condizione basata sulla **piattaforma del dispositivo** (Android, iOS, Windows, macOS...), tuttavia, questo si basa sull'**user-agent** quindi è facile da bypassare. Anche **rendendo tutte le opzioni obbligatorie per MFA**, se si utilizza un **user-agent che non è riconosciuto,** sarà possibile bypassare il MFA o bloccare:
<figure><img src="../../../../images/image (352).png" alt=""><figcaption></figcaption></figure>
@@ -56,8 +64,8 @@ Se questo è impostato nella politica condizionale, un attaccante potrebbe sempl
<figure><img src="../../../../images/image (353).png" alt=""><figcaption></figcaption></figure>
Per cercare di bypassare questa protezione dovresti vedere se puoi **accedere solo a qualsiasi applicazione**.\
Lo strumento [**AzureAppsSweep**](https://github.com/carlospolop/AzureAppsSweep) ha **decine di ID applicazione hardcoded** e cercherà di accedere a essi e ti informerà e ti darà anche il token se ha successo.
Per cercare di bypassare questa protezione dovresti vedere se puoi **accedere a qualsiasi applicazione**.\
Lo strumento [**AzureAppsSweep**](https://github.com/carlospolop/AzureAppsSweep) ha **decine di ID applicazione hardcoded** e cercherà di effettuare il login in esse e ti informerà e ti darà anche il token se ha successo.
Per **testare ID applicazione specifici in risorse specifiche** potresti anche utilizzare uno strumento come:
```bash
@@ -65,11 +73,11 @@ roadrecon auth -u user@email.com -r https://outlook.office.com/ -c 1fec8e78-bce4
<token>
```
Inoltre, è possibile proteggere anche il metodo di accesso (ad esempio, se si sta tentando di accedere dal browser o da un'applicazione desktop). Lo strumento [**Invoke-MFASweep**](az-conditional-access-policies-mfa-bypass.md#invoke-mfasweep) esegue alcuni controlli per cercare di bypassare queste protezioni.
Inoltre, è anche possibile proteggere il metodo di accesso (ad esempio, se si sta tentando di accedere dal browser o da un'applicazione desktop). Lo strumento [**Invoke-MFASweep**](az-conditional-access-policies-mfa-bypass.md#invoke-mfasweep) esegue alcuni controlli per cercare di bypassare queste protezioni.
Lo strumento [**donkeytoken**](az-conditional-access-policies-mfa-bypass.md#donkeytoken) potrebbe essere utilizzato per scopi simili, anche se sembra non essere mantenuto.
Lo strumento [**donkeytoken**](az-conditional-access-policies-mfa-bypass.md#donkeytoken) potrebbe essere utilizzato anche per scopi simili, sebbene sembri non essere mantenuto.
Lo strumento [**ROPCI**](https://github.com/wunderwuzzi23/ropci) può essere utilizzato per testare queste protezioni e vedere se è possibile bypassare le MFA o i blocchi, ma questo strumento funziona da una prospettiva **whitebox**. È necessario prima scaricare l'elenco delle app consentite nel tenant e poi tenterà di accedervi.
Lo strumento [**ROPCI**](https://github.com/wunderwuzzi23/ropci) può essere utilizzato per testare queste protezioni e vedere se è possibile bypassare le MFA o i blocchi, ma questo strumento funziona da una prospettiva **whitebox**. È necessario prima scaricare l'elenco delle app consentite nel tenant e poi cercherà di accedervi.
## Altri Bypass MFA di Az
@@ -100,7 +108,7 @@ Trova ulteriori informazioni su questo tipo di attacco nella seguente pagina:
../../az-lateral-movement-cloud-on-prem/pass-the-prt.md
{{#endref}}
## Strumenti
## Tooling
### [**AzureAppsSweep**](https://github.com/carlospolop/AzureAppsSweep)
@@ -116,7 +124,7 @@ roadrecon plugin policies
```
### [Invoke-MFASweep](https://github.com/dafthack/MFASweep)
MFASweep è uno script PowerShell che tenta di **accedere a vari servizi Microsoft utilizzando un insieme di credenziali fornite e cercherà di identificare se MFA è abilitato**. A seconda di come sono configurate le politiche di accesso condizionale e altre impostazioni di autenticazione a più fattori, alcuni protocolli potrebbero rimanere a fattore singolo. Ha anche un controllo aggiuntivo per le configurazioni ADFS e può tentare di accedere al server ADFS on-prem se rilevato.
MFASweep è uno script PowerShell che tenta di **accedere a vari servizi Microsoft utilizzando un set di credenziali fornito e cercherà di identificare se MFA è abilitato**. A seconda di come sono configurate le politiche di accesso condizionale e altre impostazioni di autenticazione a più fattori, alcuni protocolli potrebbero rimanere a fattore singolo. Ha anche un controllo aggiuntivo per le configurazioni ADFS e può tentare di accedere al server ADFS on-prem se rilevato.
```bash
Invoke-Expression (Invoke-WebRequest -Uri "https://raw.githubusercontent.com/dafthack/MFASweep/master/MFASweep.ps1").Content
Invoke-MFASweep -Username <username> -Password <pass>
@@ -135,7 +143,7 @@ Questo strumento ha aiutato a identificare i bypass MFA e poi ad abusare delle A
```
### [donkeytoken](https://github.com/silverhack/donkeytoken)
Donkey token è un insieme di funzioni che mirano ad aiutare i consulenti di sicurezza che devono convalidare le Politiche di Accesso Condizionale, test per portali Microsoft abilitati 2FA, ecc..
Donkey token è un insieme di funzioni che mirano ad aiutare i consulenti di sicurezza che devono convalidare le Politiche di Accesso Condizionale, test per portali Microsoft abilitati per 2FA, ecc..
<pre class="language-powershell"><code class="lang-powershell"><strong>git clone https://github.com/silverhack/donkeytoken.git
</strong><strong>Import-Module '.\donkeytoken' -Force