mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-04 19:11:41 -08:00
Translated ['src/pentesting-cloud/azure-security/README.md', 'src/pentes
This commit is contained in:
@@ -10,17 +10,17 @@ Apprenez les bases d'Azure et d'Entra ID à la page suivante :
|
||||
az-basic-information/
|
||||
{{#endref}}
|
||||
|
||||
## Méthodologie de Pentester/Red Team Azure
|
||||
## 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, la **première étape pour compromettre un environnement Azure** est d'obtenir un **point d'accès**.
|
||||
Du point de vue d'une Red Team, la **première étape pour compromettre un environnement Azure** est de réussir à obtenir un **point d'ancrage**.
|
||||
|
||||
### Énumération externe & Accès initial
|
||||
|
||||
La première étape est bien sûr d'énumérer les informations sur le locataire que vous attaquez et d'essayer d'obtenir un point d'accès.
|
||||
La première étape est bien sûr d'énumérer les informations sur le locataire que vous attaquez et d'essayer d'obtenir un point d'ancrage.
|
||||
|
||||
En fonction du nom de domaine, il est possible de savoir **si l'entreprise utilise Azure**, d'obtenir l'**ID de locataire**, 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...
|
||||
En fonction du nom de domaine, il est possible de savoir **si l'entreprise utilise Azure**, d'obtenir l'**ID du locataire**, 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** :
|
||||
|
||||
@@ -28,7 +28,7 @@ Consultez la page suivante pour apprendre à effectuer l'**énumération externe
|
||||
az-unauthenticated-enum-and-initial-entry/
|
||||
{{#endref}}
|
||||
|
||||
Avec ces informations, les moyens les plus courants d'essayer d'obtenir un point d'accès sont :
|
||||
Avec ces informations, les moyens les plus courants pour essayer d'obtenir un point d'ancrage 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 **mot de passe**, fuites ou [password spraying](az-unauthenticated-enum-and-initial-entry/az-password-spraying.md)
|
||||
- Acheter des identifiants à un employé
|
||||
@@ -43,19 +43,19 @@ Avec ces informations, les moyens les plus courants d'essayer d'obtenir un point
|
||||
- À l'intérieur de **`<HOME>/.Azure`**
|
||||
- **`azureProfile.json`** contient des informations sur les utilisateurs connectés dans le passé
|
||||
- **`clouds.config` contient** des informations sur les abonnements
|
||||
- **`service_principal_entries.json`** contient les identifiants des applications (ID de locataire, clients et secret). Seulement sur Linux & macOS
|
||||
- **`msal_token_cache.json`** contient des jetons d'accès et des jetons de rafraîchissement. Seulement sur Linux & macOS
|
||||
- **`service_principal_entries.json`** contient les identifiants des applications (ID de locataire, clients et secret). Seulement sous Linux & macOS
|
||||
- **`msal_token_cache.json`** contient des jetons d'accès et des jetons de rafraîchissement. Seulement sous Linux & macOS
|
||||
- **`service_principal_entries.bin`** et msal_token_cache.bin sont utilisés sous Windows et sont cryptés avec DPAPI
|
||||
- **`msal_http_cache.bin`** est un cache de requêtes HTTP
|
||||
- Chargez-le : `with open("msal_http_cache.bin", 'rb') as f: pickle.load(f)`
|
||||
- **`AzureRmContext.json`** contient 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 `.bin` avec des **jetons d'accès**, des jetons d'identité et des informations de compte cryptées avec le DPAPI de l'utilisateur.
|
||||
- Il est possible de trouver plus de **jetons d'accès** dans les fichiers `.tbres` à l'intérieur de **`C:\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 d'identité** depuis Az PowerShell (s'il est utilisé) en exécutant `pwsh -Command "Save-AzContext -Path /tmp/az-context.json"`
|
||||
- Sous Linux et macOS, vous pouvez obtenir des **jetons d'accès, jetons de rafraîchissement et jetons d'identité** depuis Az PowerShell (si utilisé) en exécutant `pwsh -Command "Save-AzContext -Path /tmp/az-context.json"`
|
||||
- Sous Windows, cela génère uniquement des jetons d'identité.
|
||||
- Il est possible de voir si Az PowerShell a été utilisé sous Linux et macOS en vérifiant si `$HOME/.local/share/.IdentityService/` existe (bien que les fichiers contenus soient vides et inutiles)
|
||||
|
||||
Trouvez d'autres **erreurs de configuration des services Azure** qui peuvent mener à un point d'accès à la page suivante :
|
||||
Trouvez **d'autres erreurs de configuration des services Azure** qui peuvent mener à un point d'ancrage à la page suivante :
|
||||
|
||||
{{#ref}}
|
||||
az-unauthenticated-enum-and-initial-entry/
|
||||
@@ -72,7 +72,7 @@ Les outils suivants seront très utiles pour énumérer à la fois les locataire
|
||||
az-enumeration-tools.md
|
||||
{{#endref}}
|
||||
|
||||
### Contournement des conditions de connexion
|
||||
### Contournement des politiques d'accès
|
||||
|
||||
<figure><img src="../../images/image (268).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@@ -85,6 +85,12 @@ Dans les cas où vous avez des identifiants valides mais que vous ne pouvez pas
|
||||
|
||||
Après avoir contourné cela, vous pourriez être en mesure de revenir à votre configuration initiale et vous aurez toujours accès.
|
||||
|
||||
Vérifiez :
|
||||
|
||||
{{#ref}}
|
||||
az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md
|
||||
{{#endref}}
|
||||
|
||||
### Whoami
|
||||
|
||||
> [!CAUTION]
|
||||
@@ -135,23 +141,23 @@ Get-AzureADTenantDetail
|
||||
{{#endtabs }}
|
||||
|
||||
|
||||
### Énumération d'Entra ID et élévation de privilèges
|
||||
### Énumération Entra ID & Privesc
|
||||
|
||||
Par défaut, tout utilisateur devrait avoir **suffisamment de permissions pour énumérer** des éléments tels que les utilisateurs, groupes, rôles, principaux de service... (vérifiez [les permissions par défaut d'AzureAD](az-basic-information/index.html#default-user-permissions)).\
|
||||
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 principaux de service... (vérifiez [les permissions par défaut d'AzureAD](az-basic-information/index.html#default-user-permissions)).\
|
||||
Vous pouvez trouver ici un guide :
|
||||
|
||||
{{#ref}}
|
||||
az-services/az-azuread.md
|
||||
{{#endref}}
|
||||
|
||||
Vérifiez les **outils de Post-Exploitation** pour trouver des outils permettant d'élever les privilèges dans Entra ID comme **AzureHound :**
|
||||
Vérifiez les **outils de Post-Exploitation** pour trouver des outils permettant d'escalader les privilèges dans Entra ID comme **AzureHound :**
|
||||
|
||||
{{#ref}}
|
||||
az-enumeration-tools.md#automated-post-exploitation-tools
|
||||
{{#endref}}
|
||||
|
||||
|
||||
### Énumérer les services Azure
|
||||
### Énumération Azure
|
||||
|
||||
Une fois que vous savez qui vous êtes, vous pouvez commencer à énumérer les **services Azure auxquels vous avez accès**.
|
||||
|
||||
@@ -186,11 +192,11 @@ Dans la section suivante, vous pouvez trouver **des informations sur les service
|
||||
az-services/
|
||||
{{#endref}}
|
||||
|
||||
### Élévation de privilèges, Post-Exploitation et Persistance dans les services Azure
|
||||
### 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'**élever les privilèges, de vous déplacer latéralement, d'effectuer d'autres attaques de post-exploitation et de maintenir la persistance**.
|
||||
Une fois que vous savez comment est structuré l'environnement Azure et quels services sont utilisés, vous pouvez commencer à chercher des moyens d'**escalader les privilèges, de vous déplacer latéralement, d'effectuer d'autres attaques de post-exploitation et de maintenir la persistance**.
|
||||
|
||||
Dans la section suivante, vous pouvez trouver des informations sur la façon d'élever les privilèges dans les services Azure les plus courants :
|
||||
Dans la section suivante, vous pouvez trouver des informations sur la façon d'escalader les privilèges dans les services Azure les plus courants :
|
||||
|
||||
{{#ref}}
|
||||
az-privilege-escalation/
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
### Consent Illicite
|
||||
### OAuth Application
|
||||
|
||||
Par défaut, tout utilisateur peut enregistrer une application dans Azure AD. Vous pouvez donc enregistrer une application (uniquement pour le locataire cible) qui nécessite des autorisations à fort impact avec le consentement de l'administrateur (et l'approuver si vous êtes l'administrateur) - comme envoyer des mails au nom d'un utilisateur, gestion des rôles, etc. Cela nous permettra d'**exécuter des attaques de phishing** qui seraient très **fructueuses** en cas de succès.
|
||||
Par défaut, tout utilisateur peut enregistrer une application dans Entra ID. Vous pouvez donc enregistrer une application (uniquement pour le locataire cible) qui nécessite des autorisations à fort impact avec le consentement de l'administrateur (et l'approuver si vous êtes l'administrateur) - comme envoyer des mails au nom d'un utilisateur, la gestion des rôles, etc. Cela nous permettra d'**exécuter des attaques de phishing** qui seraient très **fructueuses** en cas de succès.
|
||||
|
||||
De plus, vous pourriez également accepter cette application avec votre utilisateur comme moyen de maintenir l'accès.
|
||||
|
||||
|
||||
@@ -666,15 +666,15 @@ Get-AzureADApplication -ObjectId <id> | Get-AzureADApplicationOwner |fl *
|
||||
> [!NOTE]
|
||||
> Une chaîne secrète que l'application utilise pour prouver son identité lors de la demande d'un jeton est le mot de passe de l'application.\
|
||||
> Donc, si vous trouvez ce **mot de passe**, vous pouvez accéder en tant que **service principal** **à l'intérieur** du **tenant**.\
|
||||
> Notez que ce mot de passe n'est visible que lorsqu'il est généré (vous pouvez le changer mais vous ne pouvez pas le récupérer).\
|
||||
> Notez que ce mot de passe n'est visible que lors de sa génération (vous pouvez le changer mais vous ne pouvez pas le récupérer).\
|
||||
> Le **propriétaire** de l'**application** peut **ajouter un mot de passe** à celle-ci (afin qu'il puisse l'usurper).\
|
||||
> Les connexions en tant que ces services principaux ne sont **pas marquées comme risquées** et elles **n'auront pas de MFA.**
|
||||
|
||||
Il est possible de trouver une liste d'ID d'application couramment utilisés appartenant à Microsoft sur [https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications](https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications)
|
||||
|
||||
### Identités gérées
|
||||
### Identités Gérées
|
||||
|
||||
Pour plus d'informations sur les identités gérées, consultez :
|
||||
Pour plus d'informations sur les Identités Gérées, consultez :
|
||||
|
||||
{{#ref}}
|
||||
../az-basic-information/
|
||||
@@ -930,10 +930,10 @@ Lorsque PIM est activé, il est possible de configurer chaque rôle avec certain
|
||||
- Exiger une justification lors de l'activation
|
||||
- Exiger des informations de ticket lors de l'activation
|
||||
- Exiger une approbation pour activer
|
||||
- Temps maximum pour expirer les attributions éligibles
|
||||
- Temps maximal pour expirer les attributions éligibles
|
||||
- Beaucoup plus de configurations sur quand et qui envoyer des notifications lorsque certaines actions se produisent avec ce rôle
|
||||
|
||||
### Politiques d'Accès Conditionnel <a href="#title-text" id="title-text"></a>
|
||||
### Politiques d'Accès Conditionnel
|
||||
|
||||
Vérifiez :
|
||||
|
||||
@@ -941,11 +941,11 @@ Vérifiez :
|
||||
../az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md
|
||||
{{#endref}}
|
||||
|
||||
### Protection des Identités Entra <a href="#title-text" id="title-text"></a>
|
||||
### Protection des Identités Entra
|
||||
|
||||
La Protection des Identités Entra est un service de sécurité qui permet de **détecter lorsqu'un utilisateur ou une connexion est trop risqué** pour être accepté, permettant de **bloquer** l'utilisateur ou la tentative de connexion.
|
||||
|
||||
Il permet à l'admin de le configurer pour **bloquer** les tentatives lorsque le risque est "Faible et au-dessus", "Moyen et au-dessus" ou "Élevé". Cependant, par défaut, il est complètement **désactivé** :
|
||||
Il permet à l'admin de le configurer pour **bloquer** les tentatives lorsque le risque est "Faible et au-dessus", "Moyen et au-dessus" ou "Élevé". Bien que, par défaut, il soit complètement **désactivé** :
|
||||
|
||||
<figure><img src="../../../images/image (356).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user