
AzureRT - Un modulo Powershell che implementa varie tattiche Red Team di Azure.
Modulo PowerShell che implementa vari cmdlet per interagire con Azure e Azure AD da una prospettiva offensiva.
Utilità utili per la gestione dell'autenticazione basata su token di accesso, passaggio dalle interfacce Az a AzureAD e az cli, attacchi predefiniti facili da usare come l'esecuzione di comandi basati su Runbook e altro.
Questo toolkit offre molti cmdlet diversi. Questa sezione evidenzia quelli più importanti e utili.
Il tipico flusso di lavoro Red Team / audit che inizia con credenziali rubate può essere riassunto come segue:
Credentials Stolen -> Authenticate to Azure/AzureAD -> find whether they're valid -> find out what you can do with them
I seguenti cmdlet sono perfettamente adatti per aiutarti a seguire questa sequenza:
Connect-ART - Offre vari metodi per autenticarsi ad Azure - credenziali, PSCredential, token
Connect-ARTAD - Offre vari metodi per autenticarsi ad Azure AD - credenziali, PSCredential, token
Get-ARTWhoami - Quando ti autentichi, esegui questo per controllare whoami e convalidare il tuo accesso
Get-ARTAccess - Quindi, quando sai di avere accesso, scopri cosa puoi fare e cosa è possibile eseguendo una situational awareness di Azure
Get-ARTADAccess - Allo stesso modo puoi scoprire cosa puoi fare nell'ambito di Azure AD.
I cmdlet implementati in questo modulo sono stati utili nei seguenti scenari di utilizzo e attacco:
Az a AzureAD e viceversa.Az, AzureAD, Microsoft.Graph e az cli contemporaneamenteQuesto modulo dipende dai moduli PowerShell Az e AzureAD preinstallati. Microsoft.Graph e az cli sono opzionali ma comunque molto utili. Prima di iniziare a lavorare con Azure, è possibile utilizzare i seguenti comandi per preparare il proprio ambiente offensivo:
Install-Module Az -Force -Confirm -AllowClobber -Scope CurrentUser
Install-Module AzureAD -Force -Confirm -AllowClobber -Scope CurrentUser
Install-Module Microsoft.Graph -Force -Confirm -AllowClobber -Scope CurrentUser # OPTIONAL
Install-Module MSOnline -Force -Confirm -AllowClobber -Scope CurrentUser # OPTIONAL
Install-Module AzureADPreview -Force -Confirm -AllowClobber -Scope CurrentUser # OPTIONAL
Install-Module AADInternals -Force -Confirm -AllowClobber -Scope CurrentUser # OPTIONAL
Import-Module Az
Import-Module AzureAD
Anche se solo i primi due moduli sono richiesti da AzureRT, è bene avere anche gli altri preinstallati.
Quindi per caricare questo modulo, basta digitare:
PS> . .\AzureRT.ps1
E sei a posto.
Oppure puoi lasciare che AzureRT installi e importi tutte le dipendenze:
PS> . .\AzureRT.ps1
PS> Import-ARTModules
Il modulo riceverà gradualmente nuovi strumenti e utilità, naturalmente categorizzati nelle successive fasi della kill chain.
Ogni cmdlet ha un bel messaggio di aiuto che descrive parametri, descrizione e utilizzo di esempio:
PS C:\> Get-Help Connect-ART
Attualmente, sono incluse le seguenti utilità:
Get-ARTWhoami - Mostra e convalida il nostro contesto di autenticazione sulle interfacce Azure, AzureAD, Microsoft.Graph e AZ CLI.
Connect-ART - Richiama Connect-AzAccount per autenticare la sessione corrente al portale Azure tramite il token di accesso o le credenziali forniti. Salta l'onere di fornire Tenant ID e Account ID estraendoli automaticamente dal token fornito.
Connect-ARTAD - Richiama Connect-AzureAD (e opzionalmente Connect-MgGraph) per autenticare la sessione corrente ad Azure Active Directory tramite il token di accesso o le credenziali forniti. Salta l'onere di fornire Tenant ID e Account ID estraendoli automaticamente dal token fornito.
Connect-ARTADServicePrincipal - Richiama per autenticare la sessione corrente al portale Azure tramite il token di accesso o le credenziali forniti. Salta l'onere di fornire Tenant ID e Account ID estraendoli automaticamente dal token fornito. Quindi crea un certificato PFX auto-firmato e lo associa al Service Principal per l'autenticazione. Successivamente, si autentica come quel Service Principal su AzureAD e dissocia il certificato per pulire.
Get-ARTAccess - Esegue la situational awareness di Azure.
Get-ARTADAccess - Esegue la situational awareness di Azure AD.
Get-ARTTenants - Elenca i tenant disponibili per l'utente attualmente autenticato (o quello basato sul token di accesso fornito)
Get-ARTDangerousPermissions - Analizza le risorse Azure accessibili e le autorizzazioni associate che l'utente ha su di esse per trovare tutte quelle pericolose che potrebbero essere abusate da un aggressore.
Get-ARTResource - Si autentica su https://management.azure.com utilizzando il token di accesso fornito e recupera le risorse accessibili e le autorizzazioni che il proprietario del token ha su di esse.
Get-ARTRoleAssignment - Mostra una rappresentazione un po' più leggibile dei ruoli RBAC di Azure assegnati al Principal attualmente utilizzato.
Get-ARTADRoleAssignment - Mostra le assegnazioni di ruoli Azure AD su un utente corrente o su tutti gli utenti Azure AD.
Get-ARTADScopedRoleAssignment - Mostra le assegnazioni di ruoli con ambito Azure AD su un utente corrente o su tutti gli utenti Azure AD, associate alle unità amministrative
Add-ARTADGuestUser - Invia un'email di invito per utente Guest di Azure AD, consentendo di espandere l'accesso al tenant AAD per l'attaccante esterno e restituisce l'URL di riscatto dell'invito utilizzato per accettare facilmente l'invito.
Set-ARTADUserPassword - Abusa dell'assegnazione del ruolo Authentication Administrator per reimpostare la password di altri utenti non amministratori.
Add-ARTUserToGroup - Aggiunge un utente Azure AD specificato al gruppo Azure AD specificato.
Add-ARTUserToRole - Aggiunge un utente Azure AD specificato al ruolo Azure AD specificato.
Add-ARTADAppSecret - Aggiunge un segreto client alle applicazioni Azure AD. Autore: Nikhil Mittal, @nikhil_mitt
Invoke-ARTAutomationRunbook - Crea un Runbook di automazione sotto l'Account di automazione specificato e verso il gruppo di worker selezionato. Tale Runbook conterrà comandi PowerShell da eseguire su tutte le VM Azure interessate.
Invoke-ARTRunCommand - Abusa dell'autorizzazione virtualMachines/runCommand su una VM Azure specificata per eseguire un comando PowerShell personalizzato.
Update-ARTAzVMUserData - Modifica lo script dei dati utente della VM di Azure tramite una chiamata API diretta.
Invoke-ARTCustomScriptExtension - Crea una nuova o modifica l'estensione dello script personalizzato della VM di Azure portando all'esecuzione di codice remoto.
Get-ARTTenantID - Recupera il Tenant ID dell'utente corrente o il Tenant ID basato sul nome di dominio fornito.
Get-ARTPRTToken - Recupera il valore del PRT (Primary Refresh Token) dell'utente corrente utilizzando ROADtoken di Dirk-Jan Mollema
Get-ARTPRTNonce - Recupera il valore nonce del PRT (Primary Refresh Token) dell'utente corrente
Get-ARTUserId - Acquisisce l'utente corrente o l'utente specificato nel parametro ObjectId tramite il modulo Az
Get-ARTSubscriptionId - Helper che raccoglie l'ID di sottoscrizione corrente.
Parse-JWTtokenRT - Analizza il token JWT in input e lo stampa in modo ordinato.
Invoke-ARTGETRequest - Prende un token di accesso e invoca una richiesta API del metodo GET REST verso un URI specificato. Verifica anche se il token fornito ha il pubblico richiesto impostato.
Import-ARTModules - Installa e importa i moduli PowerShell richiesti e opzionali per le attività di Azure Red Team
Questo e altri progetti sono il risultato di notti insonni e molto duro lavoro. Se ti piace quello che faccio e apprezzi che restituisco sempre qualcosa alla comunità, Considera di offrirmi un caffè (o meglio una birra) solo per dire grazie! 💪
Mariusz Banach / mgeeky, (@mariuszbit)
<mb [at] binary-offensive.com>
Connect-AzAccountGet-ARTAccessTokenAzCli - Acquisisce un token di accesso da az cli tramite az account get-access-token
Get-ARTAccessTokenAz - Acquisisce un token di accesso dal modulo Az tramite Get-AzAccessToken .
Get-ARTAccessTokenAzureAD - Ottiene un token di accesso da Azure Active Directory. Autore: Simon Wahlin, @SimonWahlin
Get-ARTAccessTokenAzureADCached - Tenta di recuperare il token di accesso AzureAD memorizzato nella cache locale (https://graph.microsoft.com), archiviato dopo l'esecuzione di Connect-AzureAD.
Remove-ARTServicePrincipalKey - Esegue azioni di pulizia dopo l'esecuzione di Connect-ARTADServicePrincipal
Get-ARTRolePermissions - Mostra tutte le autorizzazioni concesse su un ruolo RBAC di Azure specificato.
Get-ARTADRolePermissions - Mostra tutte le autorizzazioni concesse su un ruolo Azure AD specificato.
Get-ARTADDynamicGroups - Mostra i gruppi dinamici di Azure AD insieme alle loro regole di appartenenza degli utenti, conteggio dei membri e stato di appartenenza dell'utente corrente
Get-ARTApplication - Elenca le applicazioni Enterprise di Azure AD di cui l'utente corrente è proprietario (o tutte esistenti quando si usa -All) insieme ai loro proprietari e Service Principal
Get-ARTApplicationProxy - Elenca le applicazioni Enterprise di Azure AD che hanno impostato Application Proxy.
Get-ARTApplicationProxyPrincipals - Mostra gli utenti e i gruppi assegnati all'applicazione Application Proxy specificata.
Get-ARTStorageAccountKeys - Mostra tutte le chiavi dell'account di archiviazione disponibili.
Get-ARTKeyVaultSecrets - Elenca tutti i segreti disponibili di Azure Key Vault. Questo cmdlet presuppone che l'utente richiedente sia connesso ad Azure AD con KeyVaultAccessToken (ambito https://vault.azure.net) e abbia il ruolo "Key Vault Secrets User" assegnato (o equivalente).
Get-ARTAutomationCredentials - Elenca tutte le credenziali disponibili dell'account di automazione di Azure e tenta di estrarne i valori (impossibile estrarre i valori!).
Get-ARTAutomationRunbookCode - Richiama il metodo API REST per estrarre il codice sorgente del Runbook specificato.
Get-ARTAzVMPublicIP - Recupera l'indirizzo IP pubblico della VM di Azure
Get-ARTResourceGroupDeploymentTemplate - Mostra il JSON del modello di distribuzione del gruppo di risorse in base ai parametri di input, o li estrae tutti in una volta.
Get-ARTAzVMUserDataFromInside - Recupera i dati utente della VM di Azure dall'interno di una VM raggiungendo l'endpoint dei metadati dell'istanza.