Xen upstream est piloté localement depuis dom0 avec la toolstack xl, mais les distributions managées, XenServer et XCP-ng, ajoutent XAPI, un service de gestion à l'échelle du pool exposant une API XML-RPC/JSON-RPC (sur 443) et piloté par la CLI xe. Un pool est un ensemble d'hôtes avec un coordinateur (maître) ; XAPI sur le coordinateur contrôle chaque hôte et VM du pool. Atteindre XAPI avec des identifiants, un jeton de session volé, ou via une faille de l'API équivaut au contrôle à l'échelle du pool : cycle de vie des VM, accès à la console, opérations de disque et de snapshot, et commandes de niveau hôte, sans qu'une évasion d'invité soit nécessaire.
Atteindre et piloter XAPI#
# the xe CLI against the pool coordinator
xe -s <host> -u root -pw <pw> vm-list
xe -s <host> -u root -pw <pw> host-list
# the API is XML-RPC/JSON-RPC over HTTPS; a session is opened then reused
curl -sk https://<host>/jsonrpc -d '{"method":"session.login_with_password","params":["root","<pw>"],"id":0,"jsonrpc":"2.0"}'
# act: run on a host, or operate on VM disks
xe -s <host> -u root -pw <pw> vm-import / vm-export ... # export a VM (disk theft)
Actions de contrôle#
With XAPI/pool access an attacker can:
- control every VM across the pool (start/stop/console/migrate)
- export or snapshot VM disks (VDIs) for offline data theft
- run host-level operations through host.* calls
- read pool configuration, users, and secrets
Compromising the pool coordinator extends control to all member hosts.
Notes d'exploitation#
- XAPI s'applique à l'échelle du pool : compromettre le XAPI du coordinateur contrôle chaque hôte et VM du pool, c'est donc la cible de gestion Xen à plus forte valeur.
- Les jetons de session sont des identifiants porteurs (bearer) une fois que
session.login_with_passwordréussit ; un jeton volé agit sans se réauthentifier, et les opérationsvm-export/VDI tirent les disques des invités sans évasion d'invité. xl/libxl sur Xen upstream est local à dom0 (pas d'API réseau), de sorte que la voie de gestion y est l'accès à dom0 lui-même, voir Accès à l'hôte et shell.- Identifiez les versions de XenServer/XCP-ng et de XAPI pour tout avis relatif au plan de gestion.