{"id":20884726,"url":"https://github.com/aabysszg/docker-tcp-scan","last_synced_at":"2025-04-05T23:09:49.568Z","repository":{"id":253736017,"uuid":"844355947","full_name":"AabyssZG/Docker-TCP-Scan","owner":"AabyssZG","description":"旨在以攻促防，针对Docker TCP socket的开源利用工具","archived":false,"fork":false,"pushed_at":"2024-08-27T08:03:00.000Z","size":1245,"stargazers_count":337,"open_issues_count":0,"forks_count":32,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-29T22:06:23.113Z","etag":null,"topics":["cloud-security","cybersecurity","cybersecurity-education","docker","docker-remote-api","rce"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AabyssZG.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-19T04:51:12.000Z","updated_at":"2025-03-21T08:40:13.000Z","dependencies_parsed_at":"2024-08-27T08:10:59.833Z","dependency_job_id":null,"html_url":"https://github.com/AabyssZG/Docker-TCP-Scan","commit_stats":null,"previous_names":["aabysszg/docker-tcp-scan"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AabyssZG%2FDocker-TCP-Scan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AabyssZG%2FDocker-TCP-Scan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AabyssZG%2FDocker-TCP-Scan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AabyssZG%2FDocker-TCP-Scan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AabyssZG","download_url":"https://codeload.github.com/AabyssZG/Docker-TCP-Scan/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247411235,"owners_count":20934653,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud-security","cybersecurity","cybersecurity-education","docker","docker-remote-api","rce"],"created_at":"2024-11-18T08:11:01.860Z","updated_at":"2025-04-05T23:09:49.545Z","avatar_url":"https://github.com/AabyssZG.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Docker-TCP-Scan](https://socialify.git.ci/AabyssZG/Docker-TCP-Scan/image?description=1\u0026font=Raleway\u0026forks=1\u0026issues=1\u0026language=1\u0026logo=https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F54609266%3Fv%3D4\u0026name=1\u0026owner=1\u0026pattern=Signal\u0026stargazers=1\u0026theme=Dark)\n\n## ✈️ 一、工具概述\n随着企业上云逐渐形成了趋势和规模，云安全也成为了新的焦点和『风口』，云上安全越来越重要；在近几年的攻防中『AKSK』、『小程序』、『云上供应链』都已经成为了**兵家必争之地**和**重要突破口**\n\n『由Docker等技术支持的云计算和基础架构即代码（Infrastructure as Code，IaC）决定了构建和部署的软件系统数量。』这是《Developing Docker and Docker-Compose Specifications:A Developer’s Survey》里面的第一句话，随着云计算的广泛应用以及开发和运营团队高效协作的需要，Dcoker的使用越来越突出；**Docker对于云计算而言，十分重要**：Docker 容器允许开发人员将他们的应用程序与所需的依赖项（例如配置、框架、库和运行时）打包到其中,由此可以实现不同云计算之间应用程序的可移植性，提供了一个把应用程序拆分为分布式组件的方法，并且用户还可以管理和括展这些容器成为集群\n\n了解过 `Docker Remote API` 的师傅应该都知道2375端口，2375是Docker远程操控的默认端口，通过这个端口可以直接对远程的docker daemon进行操作；当主机以 **`DOCKER_OPTS=\"-H tcp://0.0.0.0:2375\"`** 这样的配置方式启动Docker时，可以在外部机器对 `Docker Remote API` 进行直接操作：\n\n```bash\ndocker -H tcp://$HOST:2375 ps\n```\n\n\u003e 这种简单配置让Docker Daemon把服务暴露在tcp的2375端口上，这样就可以在互联网上远程操作Docker\n\u003e\n\u003e 但Docker本身没有身份认证的功能，只要网络上能访问到服务端口，就可以操作Docker！\n\n**这就造成了非常严重的漏洞！能够直接通过 `Docker Remote API` 对相关运行的容器下发恶意命令！**\n\n**特别感谢[国际云安全联盟（CSA）渗透测试工作组](https://www.c-csa.cn)的各位老师给我的建议：**\n\n\u003cimg src=\"https://www.c-csa.cn/u_file/photo/20200609/053979bc45.png\" width=\"400\"\u003e\n\n**本工具旨在以攻促防，是一款针对Docker TCP socket的开源利用工具**\n\n## 🚨 二、安装Python依赖库\n\n注：其他工具基本都使用 `import docker`，而本工具并没有 `import docker`，意味着并不需要在本地渗透环境中安装 `Docker` 从而更加轻量化\n\n```\npip install -r requirements.txt\n```\n\n如果pip安装速度慢，可以采用国内源进行安装：\n\n```\npip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/\n```\n\n## 🐉 三、工具使用\n\n如何找到互联网上的 `Docker Remote API` ，ZoomEye语法如下：\n\n```\napp:\"Docker remote API\"\n```\n\nFofa语法如下：\n\n```\napp=\"docker-产品\" \u0026\u0026 port=\"2375\"\n```\n\n本工具的参数如下：\n\n```\n# python3 Docker-TCP-Scan.py\n   ___           __              ______________      ____\n  / _ \\___  ____/ /_____ _______/_  __/ ___/ _ \\____/ __/______ ____\n / // / _ \\/ __/  '_/ -_) __/___// / / /__/ ___/___/\\ \\/ __/ _ `/ _ \\\n/____/\\___/\\__/_/\\_\\\\__/_/      /_/  \\___/_/      /___/\\__/\\_,_/_//_/\n                 V1.3   [+] Author: 曾哥(@AabyssZG)\n\n用法:\n        对单一URL进行Docker端点探测:       python3 Docker-TCP-Scan.py -u http://example.com/\n        读取目标TXT进行Docker端点探测:     python3 Docker-TCP-Scan.py -uf url.txt\n        下载指定Docker端点的容器日志:      python3 Docker-TCP-Scan.py -d http://example.com/\n        使用HTTP代理并自动进行连通性测试:    python3 Docker-TCP-Scan.py -p \u003c代理IP:端口\u003e\n        从TXT文件中导入自定义HTTP头部:       python3 Docker-TCP-Scan.py -t header.txt\n        通过ZoomEye密钥进行API下载数据:      python3 Docker-TCP-Scan.py -z \u003cZoomEye的API-KEY\u003e\n        通过Fofa密钥进行API下载数据:         python3 Docker-TCP-Scan.py -f \u003cFofa的API-KEY\u003e\n        通过Hunter密钥进行API下载数据:       python3 Docker-TCP-Scan.py -y \u003cHunter的API-KEY\u003e\n\n免责声明：\n        1.如果您下载、安装、使用、修改本工具及相关代码，即表明您信任本工具\n        2.在使用本工具时造成对您自己或他人任何形式的损失和伤害，我们不承担任何责任\n        3.如您在使用本工具的过程中存在任何非法行为，您需自行承担相应后果，我们将不承担任何法律及连带责任\n        4.请您务必审慎阅读、充分理解各条款内容，特别是免除或者限制责任的条款，并选择接受或不接受\n        5.除非您已阅读并接受本协议所有条款，否则您无权下载、安装或使用本工具\n        6.您的下载、安装、使用等行为即视为您已阅读并同意上述协议的约束\n```\n\n## 🛸 四、工具演示\n\n### 0# Docker资产测绘\n\n本工具专门对接了 [ZoomEye的API接口](https://www.zoomeye.org/doc)、 [Fofa的API接口](https://fofa.info/api)、 [鹰图的API接口](https://hunter.qianxin.com/home/helpCenter?r=5-1-2)，使用API-KEY即可批量下载 `Docker Remote API` 的资产测绘数据：\n\n```\npython3 Docker-TCP-Scan.py -f \u003cFofa的API-KEY\u003e\npython3 Docker-TCP-Scan.py -z \u003cZoomEye的API-KEY\u003e\npython3 Docker-TCP-Scan.py -y \u003cHunter的API-KEY\u003e\n```\n\n![Fofa](./pic/Fofa.png)\n\n**注：目前该模块已经支持自定义语法的资产测绘导出；资产测绘结束后，会把通过API下载的结果导出到TXT，就可以使用其他参数进行操作啦**\n\n### 1# 测试并使用代理和自定义HTTP头部\n\n#### 测试并使用代理\n\n```\npython3 Docker-TCP-Scan.py -p \u003c代理IP:端口\u003e\npython3 Docker-TCP-Scan.py -p \u003cHTTP认证账号:HTTP认证密码@代理IP:端口\u003e\n```\n\n比如我想对单一URL进行Docker端点探测并使用代理\n```\npython3 Docker-TCP-Scan.py -u example.com -p \u003c代理IP:端口\u003e\n```\n同样，其他参数（`-u` / `-uf` / `-d`）均可以配合代理使用\n\n#### 测试并使用自定义HTTP头部（自定义请求头）\n\n```\npython3 Docker-TCP-Scan.py -t header.txt\n```\n\n使用该自定义HTTP头部功能请自行更改 `header.txt` 内的内容，允许（`-u` / `-uf` /  `-d`）参数使用\n\n### 2# 对单一URL进行Docker端点探测\n\n使用以下命令行对单一URL进行Docker端点探测利用：\n\n```\npython3 Docker-TCP-Scan.py -u example.com\n```\n\n![单一URL](./pic/appoint.png)\n\n**注：由于本工具危害巨大，需要明确同意接受该免责声明的所有内容**\n\n### 3# 读取目标TXT进行批量信息泄露扫描\n\n使用以下命令行读取目标TXT进行批量信息泄露扫描：\n\n```\npython3 Docker-TCP-Scan.py -uf url.txt\n```\n\n![读取TXT并批量扫描](./pic/ergodic.png)\n\n新增延时扫描选项，如果不想延时扫描输入 `0` 回车即可\n\n**注：由于本工具危害巨大，需要明确同意接受该免责声明的所有内容；扫描结束后，会把成功的结果导出为同目录下的 `output.txt`**\n\n### 4# 扫描并下载Docker日志\n\n使用以下命令行扫描并下载Docker日志：\n\n```\npython3 Docker-TCP-Scan.py -d example.com\n```\n\n**注：目前这个功能还在测试当中**\n\n## 🖐 五、免责声明\n\n1. 如果您下载、安装、使用、修改本工具及相关代码，即表明您信任本工具\n2. 在使用本工具时造成对您自己或他人任何形式的损失和伤害，我们不承担任何责任\n3. 如您在使用本工具的过程中存在任何非法行为，您需自行承担相应后果，我们将不承担任何法律及连带责任\n4. 请您务必审慎阅读、充分理解各条款内容，特别是免除或者限制责任的条款，并选择接受或不接受\n5. 除非您已阅读并接受本协议所有条款，否则您无权下载、安装或使用本工具\n6. 您的下载、安装、使用等行为即视为您已阅读并同意上述协议的约束\n\n## 🙏 六、感谢各位师傅\n\n[![Star History Chart](https://api.star-history.com/svg?repos=AabyssZG/Docker-TCP-Scan\u0026type=Date)](https://star-history.com/#AabyssZG/Docker-TCP-Scan\u0026Date)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faabysszg%2Fdocker-tcp-scan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faabysszg%2Fdocker-tcp-scan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faabysszg%2Fdocker-tcp-scan/lists"}