Azure Pentesting
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
Informations de base
Apprenez les bases dâAzure et dâEntra ID sur la page suivante :
Méthodologie de Pentesting/Red Team Azure
Pour auditer un environnement AZURE, il est trÚs important de savoir : quels services sont utilisés, ce qui est exposé, qui a accÚs à quoi, et comment les services internes Azure et les services externes sont connectés.
Du point de vue dâune Red Team, le premier pas pour compromettre un environnement Azure est dâobtenir un point dâappui.
ĂnumĂ©ration externe & AccĂšs initial
Le premier pas est bien sĂ»r dâĂ©numĂ©rer les informations sur le locataire que vous attaquez et dâessayer dâobtenir un point dâappui.
En fonction du nom de domaine, il est possible de savoir si lâentreprise utilise Azure, dâobtenir le tenant ID, dâobtenir dâautres domaines valides dans le mĂȘme locataire (sâil y en a plus) et dâobtenir des informations pertinentes comme si SSO est activĂ©, les configurations de messagerie, les emails dâutilisateurs validesâŠ
Consultez la page suivante pour apprendre Ă effectuer lâĂ©numĂ©ration externe :
Az - Unauthenticated Enum & Initial Entry
Avec ces informations, les moyens les plus courants dâessayer dâobtenir un point dâappui sont :
- OSINT : Vérifiez les fuites sur Github ou toute autre plateforme open source qui pourrait contenir des identifiants ou des informations intéressantes.
- Réutilisation de mots de passe, fuites ou password spraying
- Acheter des identifiants à un employé
- Phishing commun (identifiants ou application Oauth)
- Phishing par code de dispositif dâauthentification
- Violations de tiers
- Vulnérabilités dans les applications hébergées sur Azure
- Server Side Request Forgery avec accĂšs Ă lâendpoint de mĂ©tadonnĂ©es
- Prises de contrĂŽle de sous-domaines comme dans https://godiego.co/posts/STO-Azure/
- Autres erreurs de configuration des services Azure
- Si un ordinateur portable de développeur est compromis (WinPEAS et LinPEAS peuvent trouver cette info) :
- Ă lâintĂ©rieur de
<HOME>/.Azure azureProfile.jsoncontient des informations sur les utilisateurs connectĂ©s dans le passĂ©clouds.configcontient des informations sur les abonnementsservice_principal_entries.jsoncontient les identifiants des applications (tenant id, clients et secret). Seulement sur Linux & macOSmsal_token_cache.jsoncontient des jetons dâaccĂšs et des jetons de rafraĂźchissement. Seulement sur Linux & macOSservice_principal_entries.binet msal_token_cache.bin sont utilisĂ©s sur Windows et sont cryptĂ©s avec DPAPImsal_http_cache.binest un cache de requĂȘtes HTTP- Chargez-le :
with open("msal_http_cache.bin", 'rb') as f: pickle.load(f) AzureRmContext.jsoncontient des informations sur les connexions prĂ©cĂ©dentes utilisant Az PowerShell (mais pas dâidentifiants)- Ă lâintĂ©rieur de
C:\Users\<username>\AppData\Local\Microsoft\IdentityCache\*se trouvent plusieurs fichiers.binavec des jetons dâaccĂšs, des jetons ID et des informations de compte cryptĂ©es avec le DPAPI des utilisateurs. - Il est possible de trouver plus de jetons dâaccĂšs dans les fichiers
.tbresĂ lâintĂ©rieur deC:\Users\<username>\AppData\Local\Microsoft\TokenBroken\Cache\qui contiennent un base64 cryptĂ© avec DPAPI avec des jetons dâaccĂšs. - Sur Linux et macOS, vous pouvez obtenir des jetons dâaccĂšs, jetons de rafraĂźchissement et jetons ID depuis Az PowerShell (sâil est utilisĂ©) en exĂ©cutant
pwsh -Command "Save-AzContext -Path /tmp/az-context.json" - Sur Windows, cela ne génÚre que des jetons ID.
- Il est possible de voir si Az PowerShell a été utilisé sur Linux et macOS en vérifiant si
$HOME/.local/share/.IdentityService/existe (bien que les fichiers contenus soient vides et inutiles)
Trouvez des erreurs de configuration dâautres services Azure qui peuvent mener Ă un point dâappui sur la page suivante :
Az - Unauthenticated Enum & Initial Entry
Note
Nâoubliez pas que gĂ©nĂ©ralement, la partie la plus bruyante de lâĂ©numĂ©ration est la connexion, et non lâĂ©numĂ©ration elle-mĂȘme.
Outils Azure & Entra ID
Les outils suivants seront trÚs utiles pour énumérer à la fois les locataires Entra ID et les environnements Azure lentement (pour éviter la détection) ou automatiquement (pour gagner du temps) :
Contournement des politiques dâaccĂšs
.png)
Dans les cas oĂč vous avez des identifiants valides mais que vous ne pouvez pas vous connecter, voici quelques protections courantes qui pourraient ĂȘtre en place :
- Liste blanche dâIP â Vous devez compromettre une IP valide
- Restrictions gĂ©ographiques â Trouvez oĂč vit lâutilisateur ou oĂč se trouvent les bureaux de lâentreprise et obtenez une IP de la mĂȘme ville (ou du mĂȘme pays au moins)
- Navigateur â Peut-ĂȘtre quâun seul navigateur dâun certain OS (Windows, Linux, Mac, Android, iOS) est autorisĂ©. DĂ©couvrez quel OS la victime/lâentreprise utilise.
- Vous pouvez également essayer de compromettre les identifiants de Service Principal car ils sont généralement moins limités et leur connexion est moins examinée
AprĂšs avoir contournĂ© cela, vous pourriez ĂȘtre en mesure de revenir Ă votre configuration initiale et vous aurez toujours accĂšs.
Vérifiez :
Az - Conditional Access Policies & MFA Bypass
Qui suis-je
Caution
Apprenez comment installer az cli, AzureAD et Az PowerShell dans la section Az - Entra ID.
Lâune des premiĂšres choses que vous devez savoir est qui vous ĂȘtes (dans quel environnement vous ĂȘtes) :
az account list
az account tenant list # Current tenant info
az account subscription list # Current subscription info
az ad signed-in-user show # Current signed-in user
az ad signed-in-user list-owned-objects # Get owned objects by current user
az account management-group list #Not allowed by default
Entra ID Enumeration & Privesc
Par défaut, tout utilisateur devrait avoir suffisamment de permissions pour énumérer des éléments tels que des utilisateurs, des groupes, des rÎles, des services principaux⊠(voir default AzureAD permissions).
Vous pouvez trouver ici un guide :
Az - Entra ID (AzureAD) & Azure IAM
VĂ©rifiez les Post-Exploitation tools pour trouver des outils permettant dâescalader les privilĂšges dans Entra ID comme AzureHound :
Automated Post Exploitation Tools
Azure Enumeration
Une fois que vous savez qui vous ĂȘtes, vous pouvez commencer Ă Ă©numĂ©rer les services Azure auxquels vous avez accĂšs.
Vous devriez commencer par découvrir les permissions que vous avez sur les ressources. Pour cela :
- Trouvez la ressource Ă laquelle vous avez accĂšs :
Tip
Cela ne nécessite aucune permission spéciale.
La commande Az PowerShell Get-AzResource vous permet de savoir quelles ressources votre utilisateur actuel peut voir.
De plus, vous pouvez obtenir les mĂȘmes informations dans la console web en allant sur https://portal.azure.com/#view/HubsExtension/BrowseAll ou en recherchant âToutes les ressourcesâ ou en exĂ©cutant :
az rest --method GET --url "https://management.azure.com/subscriptions/<subscription-id>/resources?api-version=2021-04-01"
- Trouvez les autorisations que vous avez sur les ressources que vous pouvez voir :
Tip
Cela ne nécessite aucune autorisation spéciale.
En parlant Ă lâAPI https://management.azure.com/{resource_id}/providers/Microsoft.Authorization/permissions?api-version=2022-04-01, vous pouvez obtenir les autorisations que vous avez sur la ressource spĂ©cifiĂ©e dans le resource_id.
Par conséquent, en vérifiant chacune des ressources auxquelles vous avez accÚs, vous pouvez obtenir les autorisations que vous avez sur elles.
Warning
Vous pouvez automatiser cette Ă©numĂ©ration en utilisant lâoutil Find_My_Az_Management_Permissions.
ĂnumĂ©rer les autorisations avec **`Microsoft.Authorization/roleAssignments/read`**
Tip
Notez que vous avez besoin de lâautorisation
Microsoft.Authorization/roleAssignments/readpour exécuter cette action.
- Avec suffisamment dâautorisations, le rĂŽle
Get-AzRoleAssignmentpeut ĂȘtre utilisĂ© pour Ă©numĂ©rer tous les rĂŽles dans lâabonnement ou lâautorisation sur une ressource spĂ©cifique en lâindiquant comme suit :
Get-AzRoleAssignment -Scope /subscriptions/<subscription-id>/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4
Il est Ă©galement possible dâobtenir ces informations en exĂ©cutant :
az rest --method GET --uri "https://management.azure.com/<Scope>/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01" | jq ".value"
comme dans :
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=2022-04-01" | jq ".value"
- Une autre option est de récupérer les rÎles qui vous sont attribués dans azure. Cela nécessite également la permission
Microsoft.Authorization/roleAssignments/read:
az role assignment list --assignee "<email>" --all --output table
Ou exĂ©cutez ce qui suit (Si les rĂ©sultats sont vides, cela peut ĂȘtre parce que vous nâavez pas la permission de les obtenir) :
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>'
- Trouvez les autorisations granulaires des rÎles qui vous sont attachés :
Ensuite, pour obtenir lâautorisation granulaire, vous pouvez exĂ©cuter (Get-AzRoleDefinition -Id "<RoleDefinitionId>").Actions.
Ou appelez directement lâAPI avec
az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<RoleDefinitionId>?api-version=2022-04-01" | jq ".properties"
Dans la section suivante, vous pouvez trouver des informations sur les services Azure les plus courants et comment les énumérer :
Escalade de privilĂšges, Post-Exploitation & Persistance
Une fois que vous savez comment lâenvironnement Azure est structurĂ© et quels services sont utilisĂ©s, vous pouvez commencer Ă chercher des moyens dâescalader des privilĂšges, de vous dĂ©placer latĂ©ralement, dâeffectuer dâautres attaques post-exploitation et de maintenir la persistance.
Dans la section suivante, vous pouvez trouver des informations sur la façon dâescalader des privilĂšges dans les services Azure les plus courants :
Dans la suivante, vous pouvez trouver des informations sur la façon dâeffectuer des attaques post-exploitation dans les services Azure les plus courants :
Dans la suivante, vous pouvez trouver des informations sur la façon de maintenir la persistance dans les services Azure les plus courants :
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
HackTricks Cloud

