# Az - VMs & Network Post Exploitation

{{#include ../../../banners/hacktricks-training.md}}

## VMs & Réseau

Pour plus d'informations sur les VMs Azure et le réseau, consultez la page suivante :

{{#ref}}
../az-services/vms/
{{#endref}}

### Pivotement d'application VM

Les applications VM peuvent être partagées avec d'autres abonnements et locataires. Si une application est partagée, c'est probablement parce qu'elle est utilisée. Donc, si l'attaquant parvient à **compromettre l'application et télécharge une version avec un backdoor**, il pourrait être possible qu'elle soit **exécutée dans un autre locataire ou abonnement**.

### Informations sensibles dans les images

Il pourrait être possible de trouver **des informations sensibles à l'intérieur des images** prises des VMs dans le passé.

1. **Lister les images** des galeries
```bash
# Get galleries
az sig list -o table

# List images inside gallery
az sig image-definition list \
--resource-group <RESOURCE_GROUP> \
--gallery-name <GALLERY_NAME> \
-o table

# Get images versions
az sig image-version list \
--resource-group <RESOURCE_GROUP> \
--gallery-name <GALLERY_NAME> \
--gallery-image-definition <IMAGE_DEFINITION> \
-o table
```
2. **Lister les images personnalisées**
```bash
az image list -o table
```
3. **Créer une VM à partir de l'ID d'image** et rechercher des informations sensibles à l'intérieur.
```bash
# Create VM from image
az vm create \
--resource-group <RESOURCE_GROUP> \
--name <VM_NAME> \
--image /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Compute/galleries/<GALLERY_NAME>/images/<IMAGE_DEFINITION>/versions/<IMAGE_VERSION> \
--admin-username <ADMIN_USERNAME> \
--generate-ssh-keys
```
### Informations sensibles dans les points de restauration

Il pourrait être possible de trouver **des informations sensibles à l'intérieur des points de restauration**.

1. **Lister les points de restauration**
```bash
az restore-point list \
--resource-group <RESOURCE_GROUP> \
--restore-point-collection-name <COLLECTION_NAME> \
-o table
```
2. **Créer un disque** à partir d'un point de restauration
```bash
az disk create \
--resource-group <RESOURCE_GROUP> \
--name <NEW_DISK_NAME> \
--source /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Compute/restorePointCollections/<COLLECTION_NAME>/restorePoints/<RESTORE_POINT_NAME>
```
3. **Attacher le disque à une VM** (l'attaquant doit déjà avoir compromis une VM à l'intérieur du compte)
```bash
az vm disk attach \
--resource-group <RESOURCE_GROUP> \
--vm-name <VM_NAME> \
--name <DISK_NAME>
```
4. **Montez** le disque et **recherchez des informations sensibles**

{{#tabs }}
{{#tab name="Linux" }}
```bash
# List all available disks
sudo fdisk -l

# Check disk format
sudo file -s /dev/sdX

# Mount it
sudo mkdir /mnt/mydisk
sudo mount /dev/sdX1 /mnt/mydisk
```
{{#endtab }}

{{#tab name="Windows" }}

#### **1. Ouvrir la gestion des disques**

1. Faites un clic droit sur **Démarrer** et sélectionnez **Gestion des disques**.
2. Le disque attaché devrait apparaître comme **Hors ligne** ou **Non alloué**.

#### **2. Mettre le disque en ligne**

1. Localisez le disque dans le panneau inférieur.
2. Faites un clic droit sur le disque (par exemple, **Disque 1**) et sélectionnez **En ligne**.

#### **3. Initialiser le disque**

1. Si le disque n'est pas initialisé, faites un clic droit et sélectionnez **Initialiser le disque**.
2. Choisissez le style de partition :
- **MBR** (Master Boot Record) ou **GPT** (GUID Partition Table). GPT est recommandé pour les systèmes modernes.

#### **4. Créer un nouveau volume**

1. Faites un clic droit sur l'espace non alloué sur le disque et sélectionnez **Nouveau volume simple**.
2. Suivez l'assistant pour :
- Attribuer une lettre de lecteur (par exemple, `D:`).
- Formater le disque (choisissez NTFS dans la plupart des cas).
{{#endtab }}
{{#endtabs }}

### Informations sensibles dans les disques et les instantanés

Il pourrait être possible de trouver **des informations sensibles à l'intérieur des disques ou même des instantanés de vieux disques**.

1. **Lister les instantanés**
```bash
az snapshot list \
--resource-group <RESOURCE_GROUP> \
-o table
```
2. **Créer un disque à partir d'un instantané** (si nécessaire)
```bash
az disk create \
--resource-group <RESOURCE_GROUP> \
--name <DISK_NAME> \
--source <SNAPSHOT_ID> \
--size-gb <DISK_SIZE>
```
3. **Attacher et monter le disque** à une VM et rechercher des informations sensibles (voir la section précédente pour savoir comment faire cela)

### Informations sensibles dans les extensions de VM et les applications de VM

Il pourrait être possible de trouver **des informations sensibles à l'intérieur des extensions de VM et des applications de VM**.

1. **Lister toutes les applications de VM**
```bash
## List all VM applications inside a gallery
az sig gallery-application list --gallery-name <gallery-name> --resource-group <res-group> --output table
```
2. Installez l'extension dans une VM et **recherchez des informations sensibles**
```bash
az vm application set \
--resource-group <rsc-group> \
--name <vm-name> \
--app-version-ids /subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.Compute/galleries/myGallery/applications/myReverseShellApp/versions/1.0.2 \
--treat-deployment-as-failure true
```
{{#include ../../../banners/hacktricks-training.md}}
