# Az - VMs & Network Post Exploitation

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

## VMs & Network

Azure VMs とネットワーキングに関する詳細情報は、以下のページを確認してください：

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

### VM アプリケーションピボッティング

VM アプリケーションは、他のサブスクリプションやテナントと共有できます。アプリケーションが共有されている場合、それはおそらく使用されているためです。したがって、攻撃者が **アプリケーションを侵害し、バックドア付きの** バージョンをアップロードすることに成功すれば、それが **別のテナントやサブスクリプションで実行される可能性があります**。

### 画像内の機密情報

過去に取得された VM の画像内に **機密情報を見つけることができる可能性があります**。

1. **ギャラリーから画像をリストする**
```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. **カスタムイメージのリスト**
```bash
az image list -o table
```
3. **画像IDからVMを作成**し、その中に機密情報がないか検索します
```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
```
### リストアポイント内の機密情報

**リストアポイント内に機密情報が存在する可能性があります**。

1. **リストアポイントをリストする**
```bash
az restore-point list \
--resource-group <RESOURCE_GROUP> \
--restore-point-collection-name <COLLECTION_NAME> \
-o table
```
2. **復元ポイントからディスクを作成する**
```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. **ディスクをVMにアタッチする**（攻撃者はすでにアカウント内のVMを侵害している必要があります）
```bash
az vm disk attach \
--resource-group <RESOURCE_GROUP> \
--vm-name <VM_NAME> \
--name <DISK_NAME>
```
4. **ディスクをマウント**し、**機密情報を検索**します

{{#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. ディスクの管理を開く**

1. **スタート**を右クリックし、**ディスクの管理**を選択します。
2. 接続されているディスクは**オフライン**または**未割り当て**として表示されるはずです。

#### **2. ディスクをオンラインにする**

1. 下部のペインでディスクを見つけます。
2. ディスク（例：**ディスク 1**）を右クリックし、**オンライン**を選択します。

#### **3. ディスクを初期化する**

1. ディスクが初期化されていない場合は、右クリックして**ディスクの初期化**を選択します。
2. パーティションスタイルを選択します：
- **MBR**（マスターブートレコード）または**GPT**（GUIDパーティションテーブル）。現代のシステムにはGPTが推奨されます。

#### **4. 新しいボリュームを作成する**

1. ディスク上の未割り当てスペースを右クリックし、**新しいシンプルボリューム**を選択します。
2. ウィザードに従って：
- ドライブ文字を割り当てます（例：`D:`）。
- ディスクをフォーマットします（ほとんどの場合、NTFSを選択します）。
{{#endtab }}
{{#endtabs }}

### ディスクとスナップショット内の機密情報

**ディスクや古いディスクのスナップショット内に機密情報を見つけることができるかもしれません**。

1. **スナップショットのリスト**
```bash
az snapshot list \
--resource-group <RESOURCE_GROUP> \
-o table
```
2. **スナップショットからディスクを作成** (必要に応じて)
```bash
az disk create \
--resource-group <RESOURCE_GROUP> \
--name <DISK_NAME> \
--source <SNAPSHOT_ID> \
--size-gb <DISK_SIZE>
```
3. **ディスクをVMにアタッチしてマウント**し、機密情報を検索します（これを行う方法については前のセクションを確認してください）

### VM拡張機能とVMアプリケーション内の機密情報

**VM拡張機能とVMアプリケーション内に機密情報を見つけることができるかもしれません**。

1. **すべての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. VMに拡張機能をインストールし、**機密情報を検索**します。
```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}}
