Translated ['src/pentesting-cloud/azure-security/az-services/az-automati

This commit is contained in:
Translator
2025-02-12 13:58:43 +00:00
parent 1e7b1c39f5
commit 7066cae894
4 changed files with 22 additions and 22 deletions

View File

@@ -1,6 +1,6 @@
# Az - Comptes d'automatisation
{{#include ../../../../banners/hacktricks-training.md}}
{{#include ../../../banners/hacktricks-training.md}}
## Informations de base
@@ -8,7 +8,7 @@ Les comptes d'automatisation Azure sont des services basés sur le cloud dans Mi
### Paramètres
- **Identifiants** : Le mot de passe n'est accessible que dans un runbook à l'intérieur du compte d'automatisation, il est utilisé pour **stocker les noms d'utilisateur et les mots de passe en toute sécurité**.
- **Identifiants** : Le mot de passe n'est accessible que dans un runbook à l'intérieur du compte d'automatisation, ils sont utilisés pour **stocker les noms d'utilisateur et les mots de passe en toute sécurité**.
- **Variables** : Utilisées pour stocker des **données de configuration** qui peuvent être utilisées dans les runbooks. Cela pourrait également être des informations sensibles comme des clés API. Si la variable est **stockée de manière chiffrée**, elle n'est disponible que dans un runbook à l'intérieur du compte d'automatisation.
- **Certificats** : Utilisés pour stocker des **certificats** qui peuvent être utilisés dans les runbooks.
- **Connexions** : Utilisées pour stocker des **informations de connexion** à des services externes. Cela pourrait contenir des **informations sensibles**.
@@ -16,7 +16,7 @@ Les comptes d'automatisation Azure sont des services basés sur le cloud dans Mi
### Runbooks & Jobs
Un Runbook dans Azure Automation est un **script qui exécute des tâches automatiquement** dans votre environnement cloud. Les runbooks peuvent être écrits en PowerShell, Python ou éditeurs graphiques. Ils aident à automatiser des tâches administratives comme la gestion des VM, le patching ou les vérifications de conformité.
Un Runbook dans Azure Automation est un **script qui exécute des tâches automatiquement** dans votre environnement cloud. Les runbooks peuvent être écrits en PowerShell, Python ou dans des éditeurs graphiques. Ils aident à automatiser des tâches administratives comme la gestion des VM, le patching ou les vérifications de conformité.
Dans le **code** situé à l'intérieur des **Runbooks** pourrait contenir des **informations sensibles** (comme des identifiants).
@@ -33,14 +33,14 @@ Un job contient la **sortie** de l'exécution du **Runbook**. Si vous pouvez **l
Il existe 3 principales façons d'exécuter un Runbook :
- **Horaires** : Ceux-ci sont utilisés pour **déclencher** des Runbooks à un **moment spécifique** ou à un **intervalle**.
- **Webhooks** : Ce sont des **points de terminaison HTTP** qui peuvent être utilisés pour **déclencher** des Runbooks à partir de **services externes**. Notez que l'URL du webhook **n'est pas visible** après sa création.
- **Webhooks** : Ce sont des **points de terminaison HTTP** qui peuvent être utilisés pour **déclencher** des Runbooks depuis des **services externes**. Notez que l'URL du webhook **n'est pas visible** après sa création.
- **Déclenchement manuel** : Vous pouvez **déclencher manuellement** un Runbook depuis le portail Azure et depuis la CLI.
### Contrôle de version
Il permet d'importer des Runbooks depuis **Github, Azure Devops (Git) et Azure Devops (TFVC)**. Il est possible d'indiquer de publier les Runbooks du dépôt vers le compte d'automatisation Azure et il est également possible d'indiquer de **synchroniser les modifications du dépôt** vers le compte d'automatisation Azure.
Lorsque la synchronisation est activée, dans le **dépôt Github, un webhook est créé** pour déclencher la synchronisation chaque fois qu'un événement de push se produit. Exemple d'une URL de webhook : `https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-automation.net/webhooks?token=DRjQyFiOrUtz%2fw7o23XbDpOlTe1%2bUqPQm4pQH2WBfJg%3d`
Lorsque la synchronisation est activée, dans le **dépôt Github, un webhook est créé** pour déclencher la synchronisation chaque fois qu'un événement de push se produit. Exemple d'URL de webhook : `https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-automation.net/webhooks?token=DRjQyFiOrUtz%2fw7o23XbDpOlTe1%2bUqPQm4pQH2WBfJg%3d`
Notez que ces webhooks **ne seront pas visibles** lors de la liste des webhooks dans les runbooks associés au dépôt Github. Notez également qu'il est **impossible de changer l'URL du dépôt** d'un contrôle de version une fois qu'il est créé.
@@ -57,11 +57,11 @@ Lors de la création d'un Runbook, il est possible de sélectionner l'environnem
- **Python 3.8**
- **Python 2.7**
Cependant, il est également possible de **créer vos propres environnements**, en utilisant l'un de ceux-ci comme base. Dans le cas de Python, il est possible de télécharger des packages `.whl` dans l'environnement qui seront utilisés. Dans le cas de PowerShell, il est possible de télécharger des packages `.zip` avec les modules à avoir dans l'exécution.
Cependant, il est également possible de **créer vos propres environnements**, en utilisant l'un de ceux-ci comme base. Dans le cas de Python, il est possible de télécharger des packages `.whl` dans l'environnement qui sera utilisé. Dans le cas de PowerShell, il est possible de télécharger des packages `.zip` avec les modules à avoir dans l'exécution.
### Groupes de travailleurs hybrides
Dans Azure Automation, l'environnement d'exécution par défaut pour les runbooks est le **bac à sable Azure**, une plateforme basée sur le cloud gérée par Azure, adaptée aux tâches impliquant des ressources Azure. Cependant, ce bac à sable a des limitations, telles que l'accès restreint aux ressources sur site et des contraintes sur le temps d'exécution et l'utilisation des ressources. Pour surmonter ces limitations, des groupes de travailleurs hybrides sont employés. Un groupe de travailleurs hybrides se compose de **un ou plusieurs travailleurs de Runbook hybrides installés sur vos propres machines**, que ce soit sur site, dans d'autres environnements cloud ou des VM Azure. Cette configuration permet aux runbooks de s'exécuter directement sur ces machines, offrant un accès direct aux ressources locales, la capacité d'exécuter des tâches plus longues et plus gourmandes en ressources, et la flexibilité d'interagir avec des environnements au-delà de la portée immédiate d'Azure.
Dans Azure Automation, l'environnement d'exécution par défaut pour les runbooks est le **Azure Sandbox**, une plateforme basée sur le cloud gérée par Azure, adaptée aux tâches impliquant des ressources Azure. Cependant, ce sandbox a des limitations, telles que l'accès restreint aux ressources sur site et des contraintes sur le temps d'exécution et l'utilisation des ressources. Pour surmonter ces limitations, des groupes de travailleurs hybrides sont employés. Un groupe de travailleurs hybrides se compose de **un ou plusieurs travailleurs de Runbook hybrides installés sur vos propres machines**, que ce soit sur site, dans d'autres environnements cloud ou des VM Azure. Cette configuration permet aux runbooks de s'exécuter directement sur ces machines, offrant un accès direct aux ressources locales, la capacité d'exécuter des tâches plus longues et plus intensives en ressources, et la flexibilité d'interagir avec des environnements au-delà de la portée immédiate d'Azure.
Lorsqu'un groupe de travailleurs hybrides est créé, il est nécessaire d'indiquer les **identifiants** à utiliser. Il y a 2 options :
@@ -73,16 +73,16 @@ Par conséquent, si vous pouvez choisir d'exécuter un **Runbook** dans un **Tra
De plus, si le travailleur hybride s'exécute dans Azure avec d'autres identités gérées attachées, le runbook pourra accéder à **l'identité gérée du runbook et à toutes les identités gérées de la VM depuis le service de métadonnées**.
> [!TIP]
> N'oubliez pas que le **service de métadonnées** a une URL différente (**`http://169.254.169.254`**) que le service à partir duquel obtenir le jeton d'identité gérée du compte d'automatisation (**`IDENTITY_ENDPOINT`**).
> N'oubliez pas que le **service de métadonnées** a une URL différente (**`http://169.254.169.254`**) que le service d'où obtenir le jeton d'identité gérée du compte d'automatisation (**`IDENTITY_ENDPOINT`**).
### Configuration d'état (SC)
>[!WARNING]
> Comme indiqué dans [la documentation](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview), la configuration d'état d'Azure Automation sera retirée le 30 septembre 2027 et remplacée par [Azure Machine Configuration](https://learn.microsoft.com/en-us/azure/governance/machine-configuration/overview).
> [!WARNING]
> Comme indiqué dans [la documentation](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview), la configuration d'état Azure Automation sera retirée le 30 septembre 2027 et remplacée par [Azure Machine Configuration](https://learn.microsoft.com/en-us/azure/governance/machine-configuration/overview).
Les comptes d'automatisation prennent également en charge la **Configuration d'état (SC)**, qui est une fonctionnalité qui aide à **configurer** et à **maintenir** l'**état** de vos VM. Il est possible de **créer** et **d'appliquer** des configurations DSC à des machines **Windows** et **Linux**.
Du point de vue des attaquants, cela était intéressant car cela permettait d'**exécuter du code PS arbitraire dans toutes les VM configurées**, permettant d'escalader les privilèges aux identités gérées de ces VM, potentiellement en pivotant vers de nouveaux réseaux... De plus, les configurations pourraient contenir des **informations sensibles**.
Du point de vue des attaquants, cela était intéressant car cela permettait d'**exécuter du code PS arbitraire dans toutes les VM configurées**, permettant d'escalader les privilèges vers les identités gérées de ces VM, potentiellement en pivotant vers de nouveaux réseaux... De plus, les configurations pourraient contenir des **informations sensibles**.
## Énumération
```bash
@@ -238,4 +238,4 @@ Get-AzAutomationHybridWorkerGroup -AutomationAccountName <AUTOMATION-ACCOUNT> -R
- [https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview)
- [https://github.com/rootsecdev/Azure-Red-Team#runbook-automation](https://github.com/rootsecdev/Azure-Red-Team#runbook-automation)
{{#include ../../../../banners/hacktricks-training.md}}
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -1,6 +1,6 @@
# Az - Container Instances
{{#include ../../../../banners/hacktricks-training.md}}
{{#include ../../../banners/hacktricks-training.md}}
## Informations de base
@@ -25,7 +25,7 @@ Azure Container Instances (ACI) fournissent un **mode sans serveur, à la demand
## Énumération
> [!WARNING]
> Lors de l'énumération des ACI, vous pouvez révéler des configurations sensibles telles que des **variables d'environnement**, des **détails réseau**, ou des **identités gérées**. Soyez prudent avec l'enregistrement ou l'affichage de celles-ci.
> Lors de l'énumération des ACI, vous pouvez révéler des configurations sensibles telles que des **variables d'environnement**, des **détails réseau**, ou des **identités gérées**. Soyez prudent avec les logs ou leur affichage.
```bash
# List all container instances in the subscription
az container list

View File

@@ -1,6 +1,6 @@
# Az - Container Registry
{{#include ../../../../banners/hacktricks-training.md}}
{{#include ../../../banners/hacktricks-training.md}}
## Informations de base
@@ -20,7 +20,7 @@ Voici les **différentes permissions** [selon la documentation](https://learn.mi
Il existe également des **rôles intégrés** qui peuvent être attribués, et il est également possible de créer des **rôles personnalisés**.
![](</images/registry_roles.png>)
![](/images/registry_roles.png)
### Authentification
@@ -53,13 +53,13 @@ echo "Service principal password: $PASSWORD"
Seul le **Premium SKU** prend en charge le **chiffrement au repos** pour les images et autres artefacts.
### Réseau
### Réseautage
Seul le **Premium SKU** prend en charge les **points de terminaison privés**. Les autres ne prennent en charge que l'**accès public**. Un point de terminaison public a le format `<registry-name>.azurecr.io` et un point de terminaison privé a le format `<registry-name>.privatelink.azurecr.io`. Pour cette raison, le nom du registre doit être unique dans tout Azure.
### Microsoft Defender for Cloud
Cela vous permet de **scanner les images** dans le registre pour détecter des **vulnérabilités**.
Cela vous permet de **scanner les images** dans le registre pour des **vulnérabilités**.
### Suppression douce
@@ -67,7 +67,7 @@ La fonctionnalité de **suppression douce** vous permet de **récupérer un regi
### Webhooks
Il est possible de **créer des webhooks** à l'intérieur des registres. Dans ce webhook, il est nécessaire de spécifier l'URL où une **demande sera envoyée chaque fois qu'une action de push ou de suppression est effectuée**. De plus, les Webhooks peuvent indiquer un scope pour indiquer les dépôts (images) qui seront affectés. Par exemple, 'foo:*' signifie des événements sous le dépôt 'foo'.
Il est possible de **créer des webhooks** à l'intérieur des registres. Dans ce webhook, il est nécessaire de spécifier l'URL où une **demande sera envoyée chaque fois qu'une action de push ou de suppression est effectuée**. De plus, les Webhooks peuvent indiquer un scope pour indiquer les dépôts (images) qui seront affectés. Par exemple, 'foo:\*' signifie des événements sous le dépôt 'foo'.
Du point de vue d'un attaquant, il est intéressant de vérifier cela **avant d'effectuer toute action** dans le registre, et de le supprimer temporairement si nécessaire, pour éviter d'être détecté.
@@ -154,4 +154,4 @@ az acr cache show --name <cache-name> --registry <registry-name>
- [https://learn.microsoft.com/en-us/azure/container-registry/container-registry-authentication?tabs=azure-cli](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-authentication?tabs=azure-cli)
- [https://learn.microsoft.com/en-us/azure/container-registry/container-registry-roles?tabs=azure-cli#access-resource-manager](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-roles?tabs=azure-cli#access-resource-manager)
{{#include ../../../../banners/hacktricks-training.md}}
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -471,12 +471,12 @@ window.search = window.search || {};
showResults(true);
}
fetch(path_to_root + 'searchindex.json')
fetch('https://raw.githubusercontent.com/HackTricks-wiki/hacktricks-cloud/refs/heads/master/searchindex.json')
.then(response => response.json())
.then(json => init(json))
.catch(error => { // Try to load searchindex.js if fetch failed
var script = document.createElement('script');
script.src = path_to_root + 'searchindex.js';
script.src = 'https://raw.githubusercontent.com/HackTricks-wiki/hacktricks-cloud/refs/heads/master/searchindex.js';
script.onload = () => init(window.search);
document.head.appendChild(script);
});