真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何借助Docker容器提權(quán)

這篇文章將為大家詳細(xì)講解有關(guān)如何借助Docker容器提權(quán),文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

創(chuàng)新互聯(lián)公司專注于蒼南企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站建設(shè)。蒼南網(wǎng)站建設(shè)公司,為蒼南等地區(qū)提供建站服務(wù)。全流程按需規(guī)劃網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

免sudo使用docker

默認(rèn)情況下使用docker必須要有sudo權(quán)限,對(duì)于一臺(tái)機(jī)器多用戶使用,往往很多用戶只有普通權(quán)限,如何保證普通用戶也能順利使用Docker呢?

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

docker容器內(nèi)用戶權(quán)限不受限

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

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

docker文件映射方便容器內(nèi)外文件共享

在我們創(chuàng)建容器的時(shí)候,docker提供了一個(gè)-v選項(xiàng),提供用戶將容器外的host目錄映射進(jìn)容器內(nèi),方便的進(jìn)行容器內(nèi)外的文件共享。

然而便利倒是有了,但潛在了風(fēng)險(xiǎn)也是可想而知。

結(jié)合上面的兩點(diǎn)便利,筆者想到一種普通用戶借助docker突破權(quán)限的限制,達(dá)到本地提權(quán)的目的。參見(jiàn)下圖:

如何借助Docker容器提權(quán)

提權(quán)解讀

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

首先我們借助任意一個(gè)docker鏡像創(chuàng)建一個(gè)容器:

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

這里最關(guān)鍵的一點(diǎn)就是-v選項(xiàng)的參數(shù)/etc:/etc。

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

正常情況下創(chuàng)建的容器,內(nèi)部也會(huì)有/etc目錄,容器內(nèi)部的用戶信息也是記錄在該目錄。

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

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

其實(shí)到了這一步已經(jīng)達(dá)到了提權(quán)的目的,通過(guò)普通的test用戶借助docker容器成功創(chuàng)建了一個(gè)具有sudo權(quán)限的用戶test1。圖中只是增加了一步,借助test1將test也加入sudo用戶組,其實(shí)效果一樣。

當(dāng)然這里也可以不用增加test1用戶,直接在容器內(nèi)將test用戶加入sudo用戶組,因?yàn)榇藭r(shí)test用戶對(duì)于容器也是可見(jiàn),也是可以直接操作其所屬群組,如下圖所示:

如何借助Docker容器提權(quán)

最后在host上也可以看到test已經(jīng)被加入sudo用戶組了。此時(shí)我沒(méi)有用id命令查看的一個(gè)原因是,linux的shell并沒(méi)有自動(dòng)更新當(dāng)前用戶信息,可以退出Terminal重新進(jìn)入。

注:此時(shí)如果沒(méi)有重新連接,test用戶還是無(wú)法使用sudo命令。

問(wèn)題影響

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

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

規(guī)避措施

docker創(chuàng)建容器默認(rèn)是以root身份來(lái)創(chuàng)建的,普通用戶之所以能夠創(chuàng)建容器的原因就是這個(gè)docker用戶組,所以我們應(yīng)該規(guī)避使用這種做法。對(duì)于多個(gè)用戶想使用容器,可以通過(guò)管理員集中創(chuàng)建開(kāi)啟了ssh服務(wù)的容器,并提供端口映射到host上,讓普通用戶通過(guò)ssh鏈接進(jìn)入容器,這樣就可以限制普通用戶的活動(dòng)范圍在容器內(nèi),用戶的任意操作也不會(huì)擴(kuò)散到host上。

關(guān)于如何借助Docker容器提權(quán)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。


本文名稱:如何借助Docker容器提權(quán)
網(wǎng)址分享:http://weahome.cn/article/ihhcji.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部