# Az - VMs & Network Post Exploitation

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

## VMs & Network

Per ulteriori informazioni su Azure VMs e networking, controlla la seguente pagina:

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

### VM Application Pivoting

Le applicazioni VM possono essere condivise con altre sottoscrizioni e tenant. Se un'applicazione è condivisa, è probabilmente perché viene utilizzata. Quindi, se l'attaccante riesce a **compromettere l'applicazione e carica una versione con backdoor**, potrebbe essere possibile che venga **eseguita in un altro tenant o sottoscrizione**.

### Informazioni sensibili nelle immagini

Potrebbe essere possibile trovare **informazioni sensibili all'interno delle immagini** prese dalle VM in passato.

1. **Elenca le immagini** dalle gallerie
```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. **Elenca le immagini personalizzate**
```bash
az image list -o table
```
3. **Crea VM da ID immagine** e cerca informazioni sensibili al suo interno
```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
```
### Informazioni sensibili nei punti di ripristino

Potrebbe essere possibile trovare **informazioni sensibili all'interno dei punti di ripristino**.

1. **Elenca i punti di ripristino**
```bash
az restore-point list \
--resource-group <RESOURCE_GROUP> \
--restore-point-collection-name <COLLECTION_NAME> \
-o table
```
2. **Crea un disco** da un punto di ripristino
```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. **Collegare il disco a una VM** (l'attaccante deve aver già compromesso una VM all'interno dell'account)
```bash
az vm disk attach \
--resource-group <RESOURCE_GROUP> \
--vm-name <VM_NAME> \
--name <DISK_NAME>
```
4. **Monta** il disco e **cerca informazioni sensibili**

{{#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. Apri Gestione Disco**

1. Fai clic destro su **Start** e seleziona **Gestione Disco**.
2. Il disco collegato dovrebbe apparire come **Offline** o **Non Allocato**.

#### **2. Porta il Disco Online**

1. Individua il disco nel riquadro in basso.
2. Fai clic destro sul disco (ad esempio, **Disco 1**) e seleziona **Online**.

#### **3. Inizializza il Disco**

1. Se il disco non è inizializzato, fai clic destro e seleziona **Inizializza Disco**.
2. Scegli lo stile di partizione:
- **MBR** (Master Boot Record) o **GPT** (GUID Partition Table). GPT è raccomandato per i sistemi moderni.

#### **4. Crea un Nuovo Volume**

1. Fai clic destro sullo spazio non allocato sul disco e seleziona **Nuovo Volume Semplice**.
2. Segui la procedura guidata per:
- Assegnare una lettera di unità (ad esempio, `D:`).
- Formattare il disco (scegli NTFS per la maggior parte dei casi).
{{#endtab }}
{{#endtabs }}

### Informazioni sensibili in dischi e snapshot

Potrebbe essere possibile trovare **informazioni sensibili all'interno dei dischi o anche negli snapshot di dischi vecchi**.

1. **Elenca gli snapshot**
```bash
az snapshot list \
--resource-group <RESOURCE_GROUP> \
-o table
```
2. **Crea disco da snapshot** (se necessario)
```bash
az disk create \
--resource-group <RESOURCE_GROUP> \
--name <DISK_NAME> \
--source <SNAPSHOT_ID> \
--size-gb <DISK_SIZE>
```
3. **Collegare e montare il disco** a una VM e cercare informazioni sensibili (controlla la sezione precedente per vedere come fare)

### Informazioni sensibili nelle estensioni VM e nelle applicazioni VM

Potrebbe essere possibile trovare **informazioni sensibili all'interno delle estensioni VM e delle applicazioni VM**.

1. **Elenca tutte le app 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. Installa l'estensione in una VM e **cerca informazioni sensibili**
```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}}
