Translated ['src/pentesting-cloud/azure-security/README.md', 'src/pentes

This commit is contained in:
Translator
2025-01-26 15:10:01 +00:00
parent 5b44b5140d
commit 757ea10f78
3 changed files with 32 additions and 26 deletions

View File

@@ -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/

View File

@@ -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.

View File

@@ -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>