Az - Basic Information
Last updated
Last updated
Apprenez et pratiquez le Hacking AWS :HackTricks Formation AWS Red Team Expert (ARTE) Apprenez et pratiquez le Hacking GCP : HackTricks Formation GCP Red Team Expert (GRTE)
Il peut contenir d'autres groupes de gestion ou abonnements.
Cela permet d'appliquer des contrôles de gouvernance tels que RBAC et Azure Policy une fois au niveau du groupe de gestion et de les hériter par tous les abonnements dans le groupe.
10 000 groupes de gestion peuvent être pris en charge dans un seul annuaire.
Un arbre de groupes de gestion peut prendre en charge jusqu'à six niveaux de profondeur. Cette limite n'inclut pas le niveau racine ou le niveau d'abonnement.
Chaque groupe de gestion et abonnement peut prendre en charge un seul parent.
Même si plusieurs groupes de gestion peuvent être créés, il n'y a qu'un seul groupe de gestion racine.
Le groupe de gestion racine contient tous les autres groupes de gestion et abonnements et ne peut pas être déplacé ou supprimé.
Tous les abonnements au sein d'un seul groupe de gestion doivent faire confiance au même locataire Entra ID.
C'est un autre conteneur logique où les ressources (VM, DB…) peuvent être exécutées et seront facturées.
Son parent est toujours un groupe de gestion (et cela peut être le groupe de gestion racine) car les abonnements ne peuvent pas contenir d'autres abonnements.
Il fait confiance à un seul annuaire Entra ID
Les permissions appliquées au niveau de l'abonnement (ou à l'un de ses parents) sont héritées par toutes les ressources à l'intérieur de l'abonnement
Extrait des docs : Un groupe de ressources est un conteneur qui contient des ressources liées pour une solution Azure. Le groupe de ressources peut inclure toutes les ressources de la solution, ou seulement celles que vous souhaitez gérer en tant que groupe. En général, ajoutez des ressources qui partagent le même cycle de vie au même groupe de ressources afin que vous puissiez facilement les déployer, les mettre à jour et les supprimer en tant que groupe.
Toutes les ressources doivent être dans un groupe de ressources et ne peuvent appartenir qu'à un seul groupe et si un groupe de ressources est supprimé, toutes les ressources à l'intérieur sont également supprimées.
Chaque ressource dans Azure a un identifiant de ressource Azure qui l'identifie.
Le format d'un identifiant de ressource Azure est le suivant :
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
Pour une machine virtuelle nommée myVM dans un groupe de ressources myResourceGroup
sous l'ID d'abonnement 12345678-1234-1234-1234-123456789012
, l'identifiant de ressource Azure ressemble à ceci :
/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
Azure est la plateforme de cloud computing complète de Microsoft, offrant une large gamme de services, y compris des machines virtuelles, des bases de données, de l'intelligence artificielle et du stockage. Elle sert de fondation pour héberger et gérer des applications, construire des infrastructures évolutives et exécuter des charges de travail modernes dans le cloud. Azure fournit des outils pour les développeurs et les professionnels de l'informatique afin de créer, déployer et gérer des applications et des services de manière transparente, répondant à une variété de besoins allant des startups aux grandes entreprises.
Entra ID est un service de gestion des identités et des accès basé sur le cloud conçu pour gérer l'authentification, l'autorisation et le contrôle d'accès des utilisateurs. Il permet un accès sécurisé aux services Microsoft tels qu'Office 365, Azure et de nombreuses applications SaaS tierces. Avec des fonctionnalités telles que l'authentification unique (SSO), l'authentification multi-facteurs (MFA) et des politiques d'accès conditionnel, entre autres.
Les services de domaine Entra étendent les capacités d'Entra ID en offrant des services de domaine gérés compatibles avec les environnements traditionnels de Windows Active Directory. Il prend en charge des protocoles hérités tels que LDAP, Kerberos et NTLM, permettant aux organisations de migrer ou d'exécuter des applications plus anciennes dans le cloud sans déployer de contrôleurs de domaine sur site. Ce service prend également en charge les stratégies de groupe pour une gestion centralisée, ce qui le rend adapté aux scénarios où des charges de travail héritées ou basées sur AD doivent coexister avec des environnements cloud modernes.
Nouveaux utilisateurs
Indiquer le nom et le domaine de l'email du locataire sélectionné
Indiquer le nom affiché
Indiquer le mot de passe
Indiquer les propriétés (prénom, titre du poste, informations de contact…)
Le type d'utilisateur par défaut est “membre”
Utilisateurs externes
Indiquer l'email à inviter et le nom affiché (peut être un email non Microsoft)
Indiquer les propriétés
Le type d'utilisateur par défaut est “Invité”
Vous pouvez les consulter sur https://learn.microsoft.com/en-us/entra/fundamentals/users-default-permissions mais parmi d'autres actions, un membre pourra :
Lire tous les utilisateurs, groupes, applications, appareils, rôles, abonnements et leurs propriétés publiques
Inviter des invités (peut être désactivé)
Créer des groupes de sécurité
Lire les adhésions de groupe non cachées
Ajouter des invités aux groupes possédés
Créer une nouvelle application (peut être désactivé)
Ajouter jusqu'à 50 appareils à Azure (peut être désactivé)
N'oubliez pas que pour énumérer les ressources Azure, l'utilisateur a besoin d'une attribution explicite de la permission.
Membres (docs)
Enregistrer des applications : Par défaut Oui
Restreindre les utilisateurs non administrateurs de créer des locataires : Par défaut Non
Créer des groupes de sécurité : Par défaut Oui
Restreindre l'accès au portail d'administration Microsoft Entra : Par défaut Non
Cela ne restreint pas l'accès API au portail (uniquement web)
Autoriser les utilisateurs à connecter un compte de travail ou scolaire avec LinkedIn : Par défaut Oui
Afficher garder l'utilisateur connecté : Par défaut Oui
Restreindre les utilisateurs de récupérer la ou les clés BitLocker pour leurs appareils possédés : Par défaut Non (vérifiez dans les paramètres de l'appareil)
Lire d'autres utilisateurs : Par défaut Oui (via Microsoft Graph)
Invités
Restrictions d'accès des utilisateurs invités
Les utilisateurs invités ont le même accès que les membres accorde par défaut toutes les permissions des utilisateurs membres aux utilisateurs invités.
Les utilisateurs invités ont un accès limité aux propriétés et adhésions des objets d'annuaire (par défaut) restreint l'accès des invités uniquement à leur propre profil utilisateur par défaut. L'accès aux informations d'autres utilisateurs et de groupe n'est plus autorisé.
L'accès des utilisateurs invités est restreint aux propriétés et adhésions de leurs propres objets d'annuaire est le plus restrictif.
Les invités peuvent inviter
Quiconque dans l'organisation peut inviter des utilisateurs invités, y compris des invités et des non-administrateurs (le plus inclusif) - Par défaut
Les utilisateurs membres et les utilisateurs assignés à des rôles administratifs spécifiques peuvent inviter des utilisateurs invités, y compris des invités avec des permissions de membre
Seuls les utilisateurs assignés à des rôles administratifs spécifiques peuvent inviter des utilisateurs invités
Personne dans l'organisation ne peut inviter des utilisateurs invités, y compris des administrateurs (le plus restrictif)
Les utilisateurs externes peuvent partir : Par défaut Vrai
Autoriser les utilisateurs externes à quitter l'organisation
Même s'ils sont restreints par défaut, les utilisateurs (membres et invités) avec des permissions accordées pourraient effectuer les actions précédentes.
Il existe 2 types de groupes :
Sécurité : Ce type de groupe est utilisé pour donner aux membres accès aux applications, ressources et attribuer des licences. Les utilisateurs, appareils, principaux de service et autres groupes peuvent être membres.
Microsoft 365 : Ce type de groupe est utilisé pour la collaboration, donnant aux membres accès à une boîte aux lettres partagée, un calendrier, des fichiers, un site SharePoint, etc. Les membres du groupe ne peuvent être que des utilisateurs.
Cela aura une adresse email avec le domaine du locataire EntraID.
Il existe 2 types d'adhésions :
Assigné : Permet d'ajouter manuellement des membres spécifiques à un groupe.
Adhésion dynamique : Gère automatiquement l'adhésion en utilisant des règles, mettant à jour l'inclusion du groupe lorsque les attributs des membres changent.
Un Principal de service est une identité créée pour être utilisée avec des applications, des services hébergés et des outils automatisés pour accéder aux ressources Azure. Cet accès est restreint par les rôles assignés au principal de service, vous donnant le contrôle sur quelles ressources peuvent être accessibles et à quel niveau. Pour des raisons de sécurité, il est toujours recommandé d'utiliser des principaux de service avec des outils automatisés plutôt que de leur permettre de se connecter avec une identité utilisateur.
Il est possible de se connecter directement en tant que principal de service en lui générant un secret (mot de passe), un certificat, ou en accordant un accès fédéré à des plateformes tierces (par exemple, Github Actions) sur celui-ci.
Si vous choisissez l'authentification par mot de passe (par défaut), enregistrez le mot de passe généré car vous ne pourrez plus y accéder.
Si vous choisissez l'authentification par certificat, assurez-vous que l'application aura accès à la clé privée.
Un Enregistrement d'application est une configuration qui permet à une application de s'intégrer avec Entra ID et d'effectuer des actions.
ID d'application (Client ID) : Un identifiant unique pour votre application dans Azure AD.
URI de redirection : URLs où Azure AD envoie les réponses d'authentification.
Certificats, Secrets & Identifiants fédérés : Il est possible de générer un secret ou un certificat pour se connecter en tant que principal de service de l'application, ou pour accorder un accès fédéré à celle-ci (par exemple, Github Actions).
Si un certificat ou un secret est généré, il est possible pour une personne de se connecter en tant que principal de service avec des outils CLI en connaissant l'ID d'application, le secret ou le certificat et le locataire (domaine ou ID).
Permissions API : Spécifie quelles ressources ou API l'application peut accéder.
Paramètres d'authentification : Définit les flux d'authentification pris en charge par l'application (par exemple, OAuth2, OpenID Connect).
Principal de service : Un principal de service est créé lorsqu'une application est créée (si cela est fait depuis la console web) ou lorsqu'elle est installée dans un nouveau locataire.
Le principal de service obtiendra toutes les permissions demandées avec lesquelles il a été configuré.
Consentement des utilisateurs pour les applications
Ne pas autoriser le consentement des utilisateurs
Un administrateur sera requis pour toutes les applications.
Autoriser le consentement des utilisateurs pour les applications de publishers vérifiés, pour des permissions sélectionnées (Recommandé)
Tous les utilisateurs peuvent consentir pour des permissions classées comme "faible impact", pour des applications de publishers vérifiés ou des applications enregistrées dans cette organisation.
Permissions par défaut à faible impact (bien que vous deviez accepter de les ajouter comme faibles) :
User.Read - se connecter et lire le profil utilisateur
offline_access - maintenir l'accès aux données auxquelles les utilisateurs ont donné accès
openid - connecter les utilisateurs
profile - voir le profil de base de l'utilisateur
email - voir l'adresse email de l'utilisateur
Autoriser le consentement des utilisateurs pour les applications (Par défaut)
Tous les utilisateurs peuvent consentir pour toute application d'accéder aux données de l'organisation.
Demandes de consentement administratives : Par défaut Non
Les utilisateurs peuvent demander le consentement administratif pour des applications auxquelles ils ne peuvent pas consentir
Si Oui : Il est possible d'indiquer les utilisateurs, groupes et rôles qui peuvent consentir aux demandes
Configurez également si les utilisateurs recevront des notifications par email et des rappels d'expiration
Les identités gérées dans Azure Active Directory offrent une solution pour gérer automatiquement l'identité des applications. Ces identités sont utilisées par les applications dans le but de se connecter à des ressources compatibles avec l'authentification Azure Active Directory (Azure AD). Cela permet de supprimer le besoin de coder en dur les identifiants cloud dans le code car l'application pourra contacter le service de métadonnées pour obtenir un jeton valide afin de réaliser des actions en tant qu'identité gérée indiquée dans Azure.
Il existe deux types d'identités gérées :
Assigné au système. Certains services Azure vous permettent d'activer une identité gérée directement sur une instance de service. Lorsque vous activez une identité gérée assignée au système, un principal de service est créé dans le locataire Entra ID de confiance par l'abonnement où la ressource est située. Lorsque la ressource est supprimée, Azure supprime automatiquement l'identité pour vous.
Assigné par l'utilisateur. Il est également possible pour les utilisateurs de générer des identités gérées. Celles-ci sont créées à l'intérieur d'un groupe de ressources dans un abonnement et un principal de service sera créé dans l'EntraID de confiance par l'abonnement. Ensuite, vous pouvez assigner l'identité gérée à une ou plusieurs instances d'un service Azure (plusieurs ressources). Pour les identités gérées assignées par l'utilisateur, l'identité est gérée séparément des ressources qui l'utilisent.
Les identités gérées ne génèrent pas de credentials éternels (comme des mots de passe ou des certificats) pour accéder au principal de service qui y est attaché.
C'est juste une table dans Azure pour filtrer les principaux de service et vérifier les applications qui ont été assignées.
Ce n'est pas un autre type d'“application”, il n'y a aucun objet dans Azure qui soit une “Application d'entreprise”, c'est juste une abstraction pour vérifier les Principaux de service, les Enregistrements d'applications et les identités gérées.
Les unités administratives permettent de donner des permissions d'un rôle sur une portion spécifique d'une organisation.
Exemple :
Scénario : Une entreprise veut que les administrateurs informatiques régionaux gèrent uniquement les utilisateurs de leur propre région.
Mise en œuvre :
Créer des unités administratives pour chaque région (par exemple, "AU Amérique du Nord", "AU Europe").
Peupler les AU avec des utilisateurs de leurs régions respectives.
Les AU peuvent contenir des utilisateurs, groupes ou appareils
Les AU prennent en charge les adhésions dynamiques
Les AU ne peuvent pas contenir d'AU
Attribuer des rôles administratifs :
Accorder le rôle "Administrateur des utilisateurs" au personnel informatique régional, limité à l'AU de leur région.
Résultat : Les administrateurs informatiques régionaux peuvent gérer les comptes utilisateurs au sein de leur région sans affecter d'autres régions.
Afin de gérer Entra ID, il existe certains rôles intégrés qui peuvent être assignés aux principaux Entra ID pour gérer Entra ID
Consultez les rôles sur https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference
Le rôle le plus privilégié est Administrateur global
Dans la description du rôle, il est possible de voir ses permissions granulaires
Les rôles sont assignés aux principaux sur un scope : principal -[HAS ROLE]->(scope)
Les rôles assignés aux groupes sont hérités par tous les membres du groupe.
Selon le scope auquel le rôle a été assigné, le rôle peut être hérité par d'autres ressources à l'intérieur du conteneur de scope. Par exemple, si un utilisateur A a un rôle sur l'abonnement, il aura ce rôle sur tous les groupes de ressources à l'intérieur de l'abonnement et sur toutes les ressources à l'intérieur du groupe de ressources.
Propriétaire
Accès complet à toutes les ressources
Peut gérer l'accès pour d'autres utilisateurs
Tous les types de ressources
Contributeur
Accès complet à toutes les ressources
Ne peut pas gérer l'accès
Tous les types de ressources
Lecteur
• Voir toutes les ressources
Tous les types de ressources
Administrateur d'accès utilisateur
Voir toutes les ressources
Peut gérer l'accès pour d'autres utilisateurs
Tous les types de ressources
Extrait des docs : Le contrôle d'accès basé sur les rôles Azure (Azure RBAC) a plusieurs rôles intégrés Azure que vous pouvez assigner à des utilisateurs, groupes, principaux de service et identités gérées. Les attributions de rôle sont la manière dont vous contrôlez l'accès aux ressources Azure. Si les rôles intégrés ne répondent pas aux besoins spécifiques de votre organisation, vous pouvez créer vos propres rôles personnalisés Azure.
Les rôles intégrés s'appliquent uniquement aux ressources auxquelles ils sont destinés, par exemple, vérifiez ces 2 exemples de rôles intégrés sur les ressources Compute :
Fournit la permission au coffre de sauvegarde pour effectuer une sauvegarde de disque.
3e5e47e6-65f7-47ef-90b5-e5dd4d455f24
Voir les machines virtuelles dans le portail et se connecter en tant qu'utilisateur régulier.
fb879df8-f326-4884-b1cf-06f3ad86be52
Ces rôles peuvent également être assignés sur des conteneurs logiques (tels que des groupes de gestion, des abonnements et des groupes de ressources) et les principaux affectés les auront sur les ressources à l'intérieur de ces conteneurs.
Trouvez ici une liste avec tous les rôles intégrés Azure.
Trouvez ici une liste avec tous les rôles intégrés Entra ID.
Il est également possible de créer rôles personnalisés
Ils sont créés à l'intérieur d'un scope, bien qu'un rôle puisse être dans plusieurs scopes (groupes de gestion, abonnements et groupes de ressources)
Il est possible de configurer toutes les permissions granulaires que le rôle personnalisé aura
Il est possible d'exclure des permissions
Un principal avec une permission exclue ne pourra pas l'utiliser même si la permission est accordée ailleurs
Il est possible d'utiliser des jokers
Le format utilisé est un JSON
actions
sont pour contrôler les actions sur la ressource
dataActions
sont des permissions sur les données à l'intérieur de l'objet
Exemple de JSON de permissions pour un rôle personnalisé :
Afin qu'un principal ait un accès sur une ressource, il doit se voir attribuer un rôle explicite (de quelque manière que ce soit) lui accordant cette permission.
Une attribution de rôle de refus explicite a la priorité sur le rôle accordant la permission.
Le Global Administrator est un rôle d'Entra ID qui accorde un contrôle total sur le locataire Entra ID. Cependant, il n'accorde par défaut aucune permission sur les ressources Azure.
Les utilisateurs ayant le rôle de Global Administrator ont la capacité de 's'élever' au rôle d'Administrateur d'Accès Utilisateur Azure dans le Groupe de Gestion Racine. Ainsi, les Global Administrators peuvent gérer l'accès dans toutes les souscriptions Azure et groupes de gestion. Cette élévation peut être effectuée en bas de la page : https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/Properties
Les Azure Policies sont des règles qui aident les organisations à s'assurer que leurs ressources répondent à des normes spécifiques et à des exigences de conformité. Elles vous permettent de faire respecter ou d'auditer les paramètres sur les ressources dans Azure. Par exemple, vous pouvez empêcher la création de machines virtuelles dans une région non autorisée ou vous assurer que toutes les ressources ont des balises spécifiques pour le suivi.
Les Azure Policies sont proactives : elles peuvent empêcher la création ou la modification de ressources non conformes. Elles sont également réactives, vous permettant de trouver et de corriger les ressources non conformes existantes.
Définition de la politique : Une règle, écrite en JSON, qui spécifie ce qui est autorisé ou requis.
Attribution de la politique : L'application d'une politique à un champ spécifique (par exemple, souscription, groupe de ressources).
Initiatives : Une collection de politiques regroupées pour une application plus large.
Effet : Spécifie ce qui se passe lorsque la politique est déclenchée (par exemple, "Refuser", "Auditer" ou "Ajouter").
Quelques exemples :
Assurer la conformité avec des régions Azure spécifiques : Cette politique garantit que toutes les ressources sont déployées dans des régions Azure spécifiques. Par exemple, une entreprise pourrait vouloir s'assurer que toutes ses données sont stockées en Europe pour se conformer au RGPD.
Faire respecter les normes de nommage : Les politiques peuvent faire respecter des conventions de nommage pour les ressources Azure. Cela aide à organiser et à identifier facilement les ressources en fonction de leurs noms, ce qui est utile dans de grands environnements.
Restreindre certains types de ressources : Cette politique peut restreindre la création de certains types de ressources. Par exemple, une politique pourrait être définie pour empêcher la création de types de ressources coûteux, comme certaines tailles de VM, pour contrôler les coûts.
Faire respecter les politiques de balisage : Les balises sont des paires clé-valeur associées aux ressources Azure utilisées pour la gestion des ressources. Les politiques peuvent faire respecter la présence de certaines balises, ou avoir des valeurs spécifiques, pour toutes les ressources. Cela est utile pour le suivi des coûts, la propriété ou la catégorisation des ressources.
Limiter l'accès public aux ressources : Les politiques peuvent faire respecter que certaines ressources, comme les comptes de stockage ou les bases de données, n'ont pas de points de terminaison publics, garantissant qu'elles ne sont accessibles que dans le réseau de l'organisation.
Appliquer automatiquement les paramètres de sécurité : Les politiques peuvent être utilisées pour appliquer automatiquement des paramètres de sécurité aux ressources, comme appliquer un groupe de sécurité réseau spécifique à toutes les VM ou s'assurer que tous les comptes de stockage utilisent le chiffrement.
Notez que les Azure Policies peuvent être attachées à n'importe quel niveau de la hiérarchie Azure, mais elles sont généralement utilisées dans le groupe de gestion racine ou dans d'autres groupes de gestion.
Exemple de politique Azure json :
Dans Azure, les autorisations peuvent être attribuées à n'importe quelle partie de la hiérarchie. Cela inclut les groupes de gestion, les abonnements, les groupes de ressources et les ressources individuelles. Les autorisations sont héritées par les ressources contenues de l'entité où elles ont été attribuées.
Cette structure hiérarchique permet une gestion efficace et évolutive des autorisations d'accès.
RBAC (contrôle d'accès basé sur les rôles) est ce que nous avons déjà vu dans les sections précédentes : Attribuer un rôle à un principal pour lui accorder l'accès à une ressource. Cependant, dans certains cas, vous pourriez vouloir fournir une gestion des accès plus granulaire ou simplifier la gestion de centaines d'attributions de rôles.
Azure ABAC (contrôle d'accès basé sur les attributs) s'appuie sur Azure RBAC en ajoutant des conditions d'attribution de rôle basées sur des attributs dans le contexte d'actions spécifiques. Une condition d'attribution de rôle est un vérification supplémentaire que vous pouvez ajouter en option à votre attribution de rôle pour fournir un contrôle d'accès plus granulaire. Une condition filtre les autorisations accordées dans le cadre de la définition de rôle et de l'attribution de rôle. Par exemple, vous pouvez ajouter une condition qui exige qu'un objet ait une étiquette spécifique pour lire l'objet. Vous ne pouvez pas explicitement refuser l'accès à des ressources spécifiques en utilisant des conditions.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)