Docker Remote API 未授權訪問

2022-09-08 15:54:10 字數 1593 閱讀 8312

docker 在使用集群管理(如:kubernetes,swarm)時,要使用remote api對節點進行管理。remote api無認證時的預設埠是2375(需要tls認證預設登入是2376)。 remote api預設是可以不需要認證能直接訪問,能直接對docker進行操作,如新建容器,刪除容器,檢視映象容器資訊等操作。

remote api操作方法可以參考:docker官方文件。

檢測docker remote api 未授權訪問可以使用curl或者直接用瀏覽器訪問

通過docker client執行目標伺服器容器命令。

1、列出所有映象

2、列出所用容器

3、進入容器兩種方法:

start 啟動乙個已經停止的容器 

attach 連線乙個已經停止的容器

當然這個容器預設entrypoint必須是/bin/bash,關於這點可以在json裡看到,還有掛載,後面提權會用到,這個也可以在json檔案裡看到。

新執行乙個容器並將entrypoint設定為/bin/bash,掛載點設定為伺服器的根目錄掛載至/mnt目錄下

注意:

wooyun上lijiejie是因為docker client版本不一致呼叫api去create重構乙個容器,並在attach、start後捕獲到輸出

啟動乙個容器,掛載宿主機的/root/目錄,之後將攻擊者的ssh公鑰~/.ssh/id_rsa.pub的內容寫到入宿主機的/root/.ssh/authorized_keys檔案中,之後就可以用root賬戶直接登入了。

本地獲取ssh公鑰

將公鑰複製到被攻擊者的/root/.ssh/authorized_keys檔案中

啟動乙個容器,掛載宿主機的/etc/目錄,之後將**shell的指令碼寫入到/etc/crontab中,攻擊機nc -vv -l -p port會得到乙個**的shell,因為沒有公網ip,就不試了。

目標機上:

攻擊機上:

也可以掛載var/spool/cron/目錄,將**shell的指令碼寫入到/var/spool/cron/root(centos系統)或/var/spool/cron/crontabs/root(ubuntu系統)

參考:

Docker Remote API未授權訪問

0x00 漏洞原因dockerd h unix var run docker.sock h 0.0.0.0 2375 docker守護程序監聽在0.0.0.0,外網可訪問 沒有使用iptables等限制可連線的 ip0x01 漏洞利用 1.遠端對被攻擊的主機的docker容器進行操作 docker ...

memcache未授權訪問

memcache是國外社群 live journal的開發團隊開發的高效能的分布式記憶體快取伺服器。一般的使用目的是,通過快取資料庫查詢結果,減少資料庫訪問次數,以提高動態web應用的速度 提高擴充套件性。memcache的預設埠是11211,不需要密碼即可訪問,黑客直接訪問即可獲取資料庫中所有資訊...

Jupyter Notebook 未授權訪問漏洞

好好學習,天天向上 jupyter notebook 此前被稱為 ipython notebook 是乙個互動式筆記本,支援執行 40 多種程式語言。如果管理員未為jupyter notebook配置密碼,將導致未授權訪問漏洞,遊客可在其中建立乙個console並執行任意python 和命令。這裡使...