
AzureRT - Un module PowerShell implémentant diverses tactiques de Red Team Azure
Module Powershell implémentant diverses cmdlets pour interagir avec Azure et Azure AD d'un point de vue offensif.
Utilitaires utiles traitant de l'authentification basée sur les jetons d'accès, de la commutation entre les interfaces Az, AzureAD et az cli, d'attaques pré-construites faciles à utiliser telles que l'exécution de commandes basée sur Runbook, et plus encore.
Cette boîte à outils propose de nombreuses cmdlets variées. Cette section met en évidence les plus importantes et utiles.
Un flux de travail type de Red Team / audit débutant avec des identifiants volés peut être résumé ainsi :
Identifiants volés -> Authentification à Azure/AzureAD -> vérifier s'ils sont valides -> découvrir ce que l'on peut faire avec
Les cmdlets ci-dessous sont précisément adaptées pour vous aider à suivre cette séquence :
Connect-ART - Offre différents moyens de s'authentifier à Azure - identifiants, PSCredential, jeton
Connect-ARTAD - Offre différents moyens de s'authentifier à Azure AD - identifiants, PSCredential, jeton
Get-ARTWhoami - Lorsque vous êtes authentifié, exécutez ceci pour vérifier qui vous êtes et valider votre accès
Get-ARTAccess - Ensuite, quand vous savez que vous avez accès, découvrez ce que vous pouvez faire et ce qui est possible en effectuant une connaissance situationnelle Azure
Get-ARTADAccess - De même, vous pouvez découvrir ce que vous pouvez faire dans le périmètre d'Azure AD.
Les cmdlets implémentées dans ce module se sont avérées utiles dans les cas d'utilisation et d'attaque suivants :
Az à AzureAD et inversement.Az, AzureAD, Microsoft.Graph et az cli en même tempsCe module dépend des modules Powershell Az et AzureAD pré-installés. Microsoft.Graph et az cli sont optionnels mais néanmoins très utiles.
Avant de commencer à travailler avec Azure, les commandes suivantes peuvent être utilisées pour préparer votre environnement offensif :
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 # OPTIONNEL
Install-Module MSOnline -Force -Confirm -AllowClobber -Scope CurrentUser # OPTIONNEL
Install-Module AzureADPreview -Force -Confirm -AllowClobber -Scope CurrentUser # OPTIONNEL
Install-Module AADInternals -Force -Confirm -AllowClobber -Scope CurrentUser # OPTIONNEL
Import-Module Az
Import-Module AzureAD
Bien que seuls les deux premiers modules soient requis par AzureRT, il est bon d'avoir les autres aussi pré-installés.
Ensuite, pour charger ce module, tapez simplement :
PS> . .\AzureRT.ps1
Et vous êtes prêt.
Ou vous pouvez laisser AzureRT installer et importer toutes les dépendances :
PS> . .\AzureRT.ps1
PS> Import-ARTModules
Le module recevra progressivement de nouveaux outils et utilitaires, naturellement catégorisés dans les phases suivantes de la chaîne de kill.
Chaque cmdlet possède un message d'aide détaillant les paramètres, la description et un exemple d'utilisation :
PS C:\> Get-Help Connect-ART
Actuellement, les utilitaires suivants sont inclus :
Get-ARTWhoami - Affiche et valide notre contexte d'authentification sur les interfaces Azure, AzureAD, Microsoft.Graph et AZ CLI.
Connect-ART - Appelle Connect-AzAccount pour authentifier la session en cours sur le portail Azure via un jeton d'accès ou des identifiants fournis. Évite la contrainte de fournir l'ID de locataire et l'ID de compte en les extrayant automatiquement du jeton fourni.
Connect-ARTAD - Appelle Connect-AzureAD (et optionnellement Connect-MgGraph) pour authentifier la session en cours sur Azure Active Directory via un jeton d'accès ou des identifiants fournis. Évite la contrainte de fournir l'ID de locataire et l'ID de compte en les extrayant automatiquement du jeton fourni.
Connect-ARTADServicePrincipal - Appelle pour authentifier la session en cours sur le portail Azure via un jeton d'accès ou des identifiants fournis. Évite la contrainte de fournir l'ID de locataire et l'ID de compte en les extrayant automatiquement du jeton fourni. Ensuite, il crée un certificat PFX auto-signé et l'associe au principal de service pour l'authentification. Après quoi, il s'authentifie en tant que ce principal de service sur AzureAD et dissocie ce certificat pour le nettoyage.
Get-ARTAccess - Effectue une connaissance situationnelle Azure.
Get-ARTADAccess - Effectue une connaissance situationnelle Azure AD.
Get-ARTTenants - Liste les locataires disponibles pour l'utilisateur actuellement authentifié (ou basé sur un jeton d'accès fourni).
Get-ARTDangerousPermissions - Analyse les ressources Azure accessibles et les autorisations associées que l'utilisateur possède sur celles-ci pour trouver toutes les autorisations dangereuses pouvant être abusées par un attaquant.
Get-ARTResource - S'authentifie sur https://management.azure.com en utilisant un jeton d'accès fourni et extrait les ressources accessibles et les autorisations que le propriétaire du jeton possède sur celles-ci.
Get-ARTRoleAssignment - Affiche une représentation plus lisible des attributions de rôles Azure RBAC au principal actuellement utilisé.
Get-ARTADRoleAssignment - Affiche les attributions de rôles Azure AD sur un utilisateur actuel ou sur tous les utilisateurs Azure AD.
Get-ARTADScopedRoleAssignment - Affiche les attributions de rôles Azure AD avec portée sur un utilisateur actuel ou sur tous les utilisateurs Azure AD, associées aux unités administratives.
Add-ARTADGuestUser - Envoie un e-mail d'invitation d'utilisateur invité Azure AD, permettant d'étendre l'accès au locataire AAD pour l'attaquant externe et retourne l'URL de validation de l'invitation utilisée pour accepter facilement l'invitation.
Set-ARTADUserPassword - Abuse de l'attribution du rôle d'administrateur d'authentification pour réinitialiser le mot de passe d'autres utilisateurs non administrateurs.
Add-ARTUserToGroup - Ajoute un utilisateur Azure AD spécifié à un groupe Azure AD spécifié.
Add-ARTUserToRole - Ajoute un utilisateur Azure AD spécifié à un rôle Azure AD spécifié.
Add-ARTADAppSecret - Ajoute un secret client aux applications Azure AD. Auteur : Nikhil Mittal, @nikhil_mitt
Invoke-ARTAutomationRunbook - Crée un Runbook Automation sous un compte Automation spécifié et contre un groupe de workers sélectionné. Ce Runbook contiendra des commandes Powershell à exécuter sur toutes les VM Azure concernées.
Invoke-ARTRunCommand - Abuse de l'autorisation virtualMachines/runCommand contre une VM Azure spécifiée pour exécuter une commande Powershell personnalisée.
Update-ARTAzVMUserData - Modifie le script de données utilisateur d'une VM Azure via un appel API direct.
Invoke-ARTCustomScriptExtension - Crée ou modifie une extension de script personnalisé d'une VM Azure, menant à l'exécution de code à distance.
Get-ARTTenantID - Récupère l'ID de locataire de l'utilisateur actuel ou l'ID de locataire basé sur le nom de domaine fourni.
Get-ARTPRTToken - Récupère la valeur du jeton PRT (Primary Refresh Token) de l'utilisateur actuel en utilisant ROADtoken de Dirk-Jan Mollema.
Get-ARTPRTNonce - Récupère la valeur du nonce du jeton PRT (Primary Refresh Token) de l'utilisateur actuel.
Get-ARTUserId - Acquiert l'utilisateur actuel ou l'utilisateur spécifié dans le paramètre ObjectId via le module Az.
Get-ARTSubscriptionId - Utilitaire qui collecte l'ID d'abonnement actuel.
Parse-JWTtokenRT - Analyse le jeton JWT d'entrée et l'affiche joliment.
Invoke-ARTGETRequest - Prend un jeton d'accès et envoie une requête API REST GET contre une URI spécifiée. Il vérifie également si le jeton fourni a l'audience requise définie.
Import-ARTModules - Installe et importe les modules Powershell requis et optionnels pour les activités Azure Red Team.
Ce projet et d'autres sont le résultat de nuits blanches et de beaucoup de travail acharné. Si vous aimez ce que je fais et que vous appréciez que je redonne toujours à la communauté, Envisagez de m'offrir un café (ou plutôt une bière) juste pour dire merci ! 💪
Mariusz Banach / mgeeky, (@mariuszbit)
<mb [at] binary-offensive.com>
Connect-AzAccountGet-ARTAccessTokenAzCli - Acquiert un jeton d'accès depuis az cli, via az account get-access-token.
Get-ARTAccessTokenAz - Acquiert un jeton d'accès depuis le module Az, via Get-AzAccessToken.
Get-ARTAccessTokenAzureAD - Obtient un jeton d'accès depuis Azure Active Directory. Auteur : Simon Wahlin, @SimonWahlin
Get-ARTAccessTokenAzureADCached - Tente de récupérer le jeton d'accès AzureAD mis en cache localement (https://graph.microsoft.com), stocké après que Connect-AzureAD a eu lieu.
Remove-ARTServicePrincipalKey - Effectue des actions de nettoyage après avoir exécuté Connect-ARTADServicePrincipal.
Get-ARTRolePermissions - Affiche toutes les autorisations accordées sur un rôle Azure RBAC spécifié.
Get-ARTADRolePermissions - Affiche toutes les autorisations accordées sur un rôle Azure AD spécifié.
Get-ARTADDynamicGroups - Affiche les groupes dynamiques Azure AD ainsi que leurs règles d'appartenance des utilisateurs, le nombre de membres et le statut d'appartenance de l'utilisateur actuel.
Get-ARTApplication - Liste les applications d'entreprise Azure AD dont l'utilisateur actuel est propriétaire (ou toutes existantes avec -All) ainsi que leurs propriétaires et principaux de service.
Get-ARTApplicationProxy - Liste les applications d'entreprise Azure AD qui ont un proxy d'application configuré.
Get-ARTApplicationProxyPrincipals - Affiche les utilisateurs et groupes attribués à l'application proxy d'application spécifiée.
Get-ARTStorageAccountKeys - Affiche toutes les clés de compte de stockage disponibles.
Get-ARTKeyVaultSecrets - Liste tous les secrets Azure Key Vault disponibles. Cette cmdlet suppose que l'utilisateur demandeur est connecté à Azure AD avec un KeyVaultAccessToken (ciblé sur https://vault.azure.net) et possède le rôle "Utilisateur des secrets Key Vault" attribué (ou équivalent).
Get-ARTAutomationCredentials - Liste toutes les informations d'identification de compte Azure Automation disponibles et tente de récupérer leurs valeurs (impossible de récupérer les valeurs !).
Get-ARTAutomationRunbookCode - Appelle la méthode REST API pour récupérer le code source du Runbook spécifié.
Get-ARTAzVMPublicIP - Récupère l'adresse IP publique d'une VM Azure.
Get-ARTResourceGroupDeploymentTemplate - Affiche le modèle JSON de déploiement de groupe de ressources basé sur les paramètres d'entrée, ou les récupère tous à la fois.
Get-ARTAzVMUserDataFromInside - Récupère les données utilisateur d'une VM Azure depuis l'intérieur de la VM en accédant au point de terminaison des métadonnées d'instance.