Translated ['src/pentesting-cloud/azure-security/README.md'] to fr

This commit is contained in:
Translator
2025-03-04 22:09:21 +00:00
parent 1ce6d33c9f
commit 75c1c65642
2 changed files with 50 additions and 27 deletions

View File

@@ -417,15 +417,18 @@
- [Az - Container Registry](pentesting-cloud/azure-security/az-services/az-container-registry.md)
- [Az - Container Instances, Apps & Jobs](pentesting-cloud/azure-security/az-services/az-container-instances-apps-jobs.md)
- [Az - CosmosDB](pentesting-cloud/azure-security/az-services/az-cosmosDB.md)
- [Az - Intune](pentesting-cloud/azure-security/az-services/intune.md)
- [Az - Defender](pentesting-cloud/azure-security/az-services/az-defender.md)
- [Az - File Shares](pentesting-cloud/azure-security/az-services/az-file-shares.md)
- [Az - Function Apps](pentesting-cloud/azure-security/az-services/az-function-apps.md)
- [Az - Intune](pentesting-cloud/azure-security/az-services/intune.md)
- [Az - Key Vault](pentesting-cloud/azure-security/az-services/az-keyvault.md)
- [Az - Logic Apps](pentesting-cloud/azure-security/az-services/az-logic-apps.md)
- [Az - Management Groups, Subscriptions & Resource Groups](pentesting-cloud/azure-security/az-services/az-management-groups-subscriptions-and-resource-groups.md)
- [Az - Monitoring](pentesting-cloud/azure-security/az-services/az-monitoring.md)
- [Az - MySQL](pentesting-cloud/azure-security/az-services/az-mysql.md)
- [Az - PostgreSQL](pentesting-cloud/azure-security/az-services/az-postgresql.md)
- [Az - Queue Storage](pentesting-cloud/azure-security/az-services/az-queue.md)
- [Az - Sentinel](pentesting-cloud/azure-security/az-services/az-sentinel.md)
- [Az - Service Bus](pentesting-cloud/azure-security/az-services/az-servicebus.md)
- [Az - SQL](pentesting-cloud/azure-security/az-services/az-sql.md)
- [Az - Static Web Applications](pentesting-cloud/azure-security/az-services/az-static-web-apps.md)

View File

@@ -4,7 +4,7 @@
## Informations de base
Apprenez les bases d'Azure et d'Entra ID à la page suivante :
Apprenez les bases d'Azure et d'Entra ID sur la page suivante :
{{#ref}}
az-basic-information/
@@ -14,13 +14,13 @@ az-basic-information/
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, le **premier pas pour compromettre un environnement Azure** est d'obtenir un **point d'appui**.
### É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.
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 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...
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** :
@@ -28,34 +28,34 @@ 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 pour essayer d'obtenir un point d'accès sont :
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](az-unauthenticated-enum-and-initial-entry/az-password-spraying.md)
- Acheter des identifiants à un employé
- [**Phishing commun**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-methodology/index.html) (identifiants ou application Oauth)
- [Phishing par code de dispositif](az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md)
- [Phishing par code de dispositif d'authentification](az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md)
- **Violations** de tiers
- Vulnérabilités dans les applications hébergées sur Azure
- [**Server Side Request Forgery**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) avec accès au point de terminaison des métadonnées
- [**Server Side Request Forgery**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) avec accès à l'endpoint de métadonnées
- **Prises de contrôle de sous-domaines** comme dans [https://godiego.co/posts/STO-Azure/](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](https://github.com/peass-ng/PEASS-ng) peuvent trouver cette info) :
- À 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 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
- **`service_principal_entries.json`** contient les identifiants des applications (tenant id, 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.bin`** et msal_token_cache.bin sont utilisés sur 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.
- À l'intérieur de **`C:\Users\<username>\AppData\Local\Microsoft\IdentityCache\*`** se trouvent plusieurs fichiers `.bin` avec 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 de **`C:\Users\<username>\AppData\Local\Microsoft\TokenBroken\Cache\`** qui contiennent un base64 crypté avec DPAPI avec des jetons d'accès.
- 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)
- 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 **d'autres erreurs de configuration des services Azure** qui peuvent mener à un point d'accès à la page suivante :
Trouvez des **erreurs de configuration d'autres services Azure** qui peuvent mener à un point d'appui sur la page suivante :
{{#ref}}
az-unauthenticated-enum-and-initial-entry/
@@ -91,7 +91,7 @@ Vérifiez :
az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md
{{#endref}}
### Whoami
### Qui suis-je
> [!CAUTION]
> Apprenez **comment installer** az cli, AzureAD et Az PowerShell dans la section [**Az - Entra ID**](az-services/az-azuread.md).
@@ -143,14 +143,14 @@ Get-AzureADTenantDetail
### Entra ID Enumeration & Privesc
Par défaut, tout utilisateur devrait avoir **suffisamment de permissions pour énumérer** des éléments tels que les utilisateurs, groupes, rôles, services principaux... (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 services principaux... (voir [default AzureAD permissions](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'escalader les privilèges dans Entra ID comme **AzureHound :**
Vérifiez les **Post-Exploitation tools** pour trouver des outils permettant d'escalader les privilèges dans Entra ID comme **AzureHound :**
{{#ref}}
az-enumeration-tools.md#automated-post-exploitation-tools
@@ -165,29 +165,47 @@ Vous devriez commencer par découvrir les **permissions que vous avez** sur les
1. **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](https://portal.azure.com/#view/HubsExtension/BrowseAll) ou en recherchant "Toutes les ressources" ou en exécutant :
```bash
az rest --method GET --url "https://management.azure.com/subscriptions/<subscription-id>/resources?api-version=2021-04-01"
```
2. **Trouvez les autorisations que vous avez sur les ressources auxquelles vous avez accès et trouvez les rôles qui vous sont assignés** :
2. **Trouvez les autorisations que vous avez sur les ressources que vous pouvez voir** :
Notez que vous avez besoin de l'autorisation **`Microsoft.Authorization/roleAssignments/read`** pour exécuter cette action.
> [!TIP]
> Cela ne nécessite aucune autorisation spéciale.
De plus, avec suffisamment d'autorisations, le rôle **`Get-AzRoleAssignment`** peut être utilisé pour **énumérer tous les rôles** dans l'abonnement ou l'autorisation sur une ressource spécifique en l'indiquant comme dans :
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](https://github.com/carlospolop/Find_My_Az_Management_Permissions)**.
<details>
<summary>Énumérer les autorisations avec **`Microsoft.Authorization/roleAssignments/read`**</summary>
> [!TIP]
> Notez que vous avez besoin de l'autorisation **`Microsoft.Authorization/roleAssignments/read`** pour exécuter cette action.
- Avec suffisamment d'autorisations, le rôle **`Get-AzRoleAssignment`** peut ê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 :
```bash
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 :
```bash
az rest --method GET --uri "https://management.azure.com/<Scope>/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"
az rest --method GET --uri "https://management.azure.com/<Scope>/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01" | jq ".value"
```
comme dans :
```bash
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=2020-08-01-preview" | jq ".value"
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 d'obtenir les rôles qui vous sont attachés dans azure avec :
- 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`** :
```bash
az role assignment list --assignee "<email>" --all --output table
```
@@ -195,14 +213,16 @@ Ou exécutez ce qui suit (Si les résultats sont vides, cela peut être parce qu
```bash
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>'
```
3. **Trouvez les autorisations granulaires des rôles qui vous sont attachés** :
- **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
```bash
az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<RoleDefinitionId>?api-version=2020-08-01-preview" | jq ".properties"
az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<RoleDefinitionId>?api-version=2022-04-01" | jq ".properties"
```
</details>
Dans la section suivante, vous pouvez trouver **des informations sur les services Azure les plus courants et comment les énumérer** :
{{#ref}}