中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

如何借助Docker容器提權

發布時間:2021-11-25 10:03:06 來源:億速云 閱讀:594 作者:柒染 欄目:編程語言

這篇文章將為大家詳細講解有關如何借助Docker容器提權,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

免sudo使用docker

默認情況下使用docker必須要有sudo權限,對于一臺機器多用戶使用,往往很多用戶只有普通權限,如何保證普通用戶也能順利使用Docker呢?

這一點想必難不到大家,只需要管理員將需要使用docker的用戶添加到docker用戶組(安裝docker后默認會創建該組)中,用戶重新登錄機器即可免sudo使用docker了。

docker容器內用戶權限不受限

我們知道,用戶創建一個docker容器后,容器內默認是root賬戶,在不需要加sudo的情況下可以任意更改容器內的配置。

正常情況下,這種模式既可以保證一臺機器被很多普通用戶使用,通過docker容器的隔離,相互之前互不影響;也給用戶在容器內開放了充足的權限保證用戶可以正常安裝軟件,修改容器配置等操作。

docker文件映射方便容器內外文件共享

在我們創建容器的時候,docker提供了一個-v選項,提供用戶將容器外的host目錄映射進容器內,方便的進行容器內外的文件共享。

然而便利倒是有了,但潛在了風險也是可想而知。

結合上面的兩點便利,筆者想到一種普通用戶借助docker突破權限的限制,達到本地提權的目的。參見下圖:

如何借助Docker容器提權

提權解讀

初始情況下這里host上的test用戶是非sudo組用戶,只擁有普通權限。為了使用docker,已提前通過管理員將test用戶加入docker用戶組。

首先我們借助任意一個docker鏡像創建一個容器:

docker run -it --rm xxx /bin/bash    #常規使用
docker run -it --rm -v /etc:/etc xxx /bin/bash    #異常使用

這里最關鍵的一點就是-v選項的參數/etc:/etc

我們知道linux機器上的本地用戶信息主要記錄在/etc/目錄下,比如兩個常見文件/etc/passwd/etc/group兩個文件分別記錄了用戶基本屬性與用戶分組信息。

正常情況下創建的容器,內部也會有/etc目錄,容器內部的用戶信息也是記錄在該目錄。

然而我這里巧妙的將host上的/etc目錄直接映射進容器,從而覆蓋了容器內的/etc目錄。再加上容器內用戶默認是root,擁有超級管理員權限,如上圖中,通過容器內的root用戶在容器內新加了一個用戶test1:adduser test1,并賦予該用戶sudo權限:usermod -aG sudo test1

至此,docker容器的作用已結束,Ctrl+D退出容器回到host,通過cat /etc/passwd查看一下本地用戶基本屬性,想必大家也能猜出這么做會出現什么有趣的現象。圖中我沒有查看,而是直接su test1,順利切換到在容器內添加的用戶,也就是說在容器內添加的用戶實際上也添加到了host上。通過id命令查看該用戶也被同步加入到了sudo用戶組。

其實到了這一步已經達到了提權的目的,通過普通的test用戶借助docker容器成功創建了一個具有sudo權限的用戶test1。圖中只是增加了一步,借助test1將test也加入sudo用戶組,其實效果一樣。

當然這里也可以不用增加test1用戶,直接在容器內將test用戶加入sudo用戶組,因為此時test用戶對于容器也是可見,也是可以直接操作其所屬群組,如下圖所示:

如何借助Docker容器提權

最后在host上也可以看到test已經被加入sudo用戶組了。此時我沒有用id命令查看的一個原因是,linux的shell并沒有自動更新當前用戶信息,可以退出Terminal重新進入。

注:此時如果沒有重新連接,test用戶還是無法使用sudo命令。

問題影響

在這種多用戶借助docker共用一臺機器的情況下,普通用戶可以輕松的借助docker提升為sudo用戶,從而可以進行任意修改系統配置等各種惡意操作。

以上是本地用戶的破壞還不是很明顯,畢竟是公司內部用戶大多不會進行惡意操作。然而,很多情況下普通用戶為了方便,用戶密碼往往設置得很簡單,如果攻擊者通過其他途徑暴力破解普通用戶弱口令,就可以很輕松得提示為管理員從事不可限制的惡意操作,這也大大降低了攻擊者的攻擊難度。

規避措施

docker創建容器默認是以root身份來創建的,普通用戶之所以能夠創建容器的原因就是這個docker用戶組,所以我們應該規避使用這種做法。對于多個用戶想使用容器,可以通過管理員集中創建開啟了ssh服務的容器,并提供端口映射到host上,讓普通用戶通過ssh鏈接進入容器,這樣就可以限制普通用戶的活動范圍在容器內,用戶的任意操作也不會擴散到host上。

關于如何借助Docker容器提權就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

安图县| 宜君县| 宜章县| 北票市| 英吉沙县| 谢通门县| 博乐市| 仙居县| 饶阳县| 常州市| 香河县| 磐安县| 大理市| 东丽区| 肥城市| 巴马| 岱山县| 忻城县| 江华| 太仆寺旗| 松溪县| 丹寨县| 大同县| 长丰县| 吕梁市| 怀安县| 甘谷县| 西畴县| 南漳县| 海阳市| 宜黄县| 五台县| 江门市| 张家港市| 辽中县| 华亭县| 岳阳市| 绥滨县| 应用必备| 南丹县| 报价|