您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何借助Docker容器提權,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
默認情況下使用docker必須要有sudo權限,對于一臺機器多用戶使用,往往很多用戶只有普通權限,如何保證普通用戶也能順利使用Docker呢?
這一點想必難不到大家,只需要管理員將需要使用docker的用戶添加到docker用戶組
(安裝docker后默認會創建該組)中,用戶重新登錄機器即可免sudo
使用docker了。
我們知道,用戶創建一個docker容器后,容器內默認是root賬戶,在不需要加sudo的情況下可以任意更改容器內的配置。
正常情況下,這種模式既可以保證一臺機器被很多普通用戶使用,通過docker容器的隔離,相互之前互不影響;也給用戶在容器內開放了充足的權限保證用戶可以正常安裝軟件,修改容器配置等操作。
在我們創建容器的時候,docker提供了一個-v
選項,提供用戶將容器外的host目錄映射進容器內,方便的進行容器內外的文件共享。
然而便利倒是有了,但潛在了風險也是可想而知。
結合上面的兩點便利,筆者想到一種普通用戶借助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用戶對于容器也是可見,也是可以直接操作其所屬群組,如下圖所示:
最后在host上也可以看到test已經被加入sudo用戶組了。此時我沒有用id命令查看的一個原因是,linux的shell并沒有自動更新當前用戶信息,可以退出Terminal重新進入。
注:此時如果沒有重新連接,test用戶還是無法使用sudo命令。
在這種多用戶借助docker共用一臺機器的情況下,普通用戶可以輕松的借助docker提升為sudo用戶,從而可以進行任意修改系統配置等各種惡意操作。
以上是本地用戶的破壞還不是很明顯,畢竟是公司內部用戶大多不會進行惡意操作。然而,很多情況下普通用戶為了方便,用戶密碼往往設置得很簡單,如果攻擊者通過其他途徑暴力破解普通用戶弱口令,就可以很輕松得提示為管理員從事不可限制的惡意操作,這也大大降低了攻擊者的攻擊難度。
docker創建容器默認是以root身份來創建的,普通用戶之所以能夠創建容器的原因就是這個docker用戶組,所以我們應該規避使用這種做法。對于多個用戶想使用容器,可以通過管理員集中創建開啟了ssh服務的容器,并提供端口映射到host上,讓普通用戶通過ssh鏈接進入容器,這樣就可以限制普通用戶的活動范圍在容器內,用戶的任意操作也不會擴散到host上。
關于如何借助Docker容器提權就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。