linux提权系列27: 冲破母体1

admin 2023年4月23日22:43:40评论18 views字数 1788阅读5分57秒阅读模式

docker 主机是一个运行 docker 服务和容器runtime的系统。在之前的突破部分,已经讨论了如何突破本地或远程系统上正在运行的容器。但是,如果有一个在公共 IP 上运行的远程 docker 主机,或者可以访问一个低级容器 OCI 引擎怎么办?

错误配置的 Docker socket

通常,docker 服务会在/run/docker.sock中创建一个socket文件。但在此,不会有这样的文件。/run/ 目录中有一个名为docker的文件夹,遗憾的是无法访问。

linux提权系列27: 冲破母体1

在之前文章中, docker 也可以在默认端口 2375 上运行 TCP socket。在本实验中,实际上,TCP socket在同一端口上打开。

linux提权系列27: 冲破母体1

默认情况下,Docker CLI 尝试通过 Unix socket进行通信。由于在这种情况下,socket文件不可用,需要更改 docker 主机以告诉 docker CLI 使用 TCP socket。需要导出环境变量才能在主机之间切换。

export DOCKER_HOST=tcp://127.0.0.1:2375

完成后,可以通过简单地执行docker images命令来测试它。这实际上会列出所有可用的镜像

linux提权系列27: 冲破母体1

简单地使用以下命令。它创建和启动容器。

linux提权系列27: 冲破母体1

最薄弱的一环

本实验将打开一个 Web 应用程序“Portainer”。在之前的实验中介绍过它,它会自动登录到仪表板。但通常,它有一个认证页面。幸运的是,在实验室描述中有登录凭据admin:cassandra

linux提权系列27: 冲破母体1

登录后,创建一个镜像为modified-ubuntu:latest的容器,并在容器的/host目录下绑定宿主机的/。记得选择“bind”模式和“writable”权限。完成所有这些后,只需部署容器,它就会进入容器页面。

如果不记得镜像的名称,可以在侧面导航栏的镜像部分找到它。

linux提权系列27: 冲破母体1

从表中找到容器的适当名称,以使用默认的 bash shell 选项启动执行会话。

chroot 进入/host并检索flag文件或稍后根据要求侵入系统 😉

linux提权系列27: 冲破母体1

最薄弱的一环 II

在这个实验中,有一个 旧的kali界面,有一个主机在 kali 系统之后的下一个 IP 上运行。实验室说明中提供了查找 IP 的说明。在例子中,IP 是192.158.29.3

对其执行 nmap 扫描并列出允许它扫描从 1 到 65535 的所有端口。可以通过执行以下命令来执行此操作,只需更改 IP 地址即可。

nmap -sV 192.158.29.3 --min-rate 1000 --top-ports 65535

会发现 9000 端口已打开,这是“Portainer”的默认端口。在之前的帖子中已经看到了这一点。尝试在浏览器中打开网址http://192.158.29.3:9000

linux提权系列27: 冲破母体1

发现它确实是portainer服务,这次没有用于身份验证的密码,但有一个用户名和一个字典文件。所以需要对 portainer 登录 API 执行暴力攻击

linux提权系列27: 冲破母体1

kali Linux 提供的 burp 套件中启动 snipper 暴力攻击,并加载/root/Desktop/wordlists/100-common-passwords.txt文件作为 wordlist

一旦找到登录凭据并使用它登录到 portainer

linux提权系列27: 冲破母体1

启动一个容器并启动 exec 会话,如上一个实验所示,然后 chroot/host文件系统以接管系统并检索flag文件

linux提权系列27: 冲破母体1

利用远程 Docker 主机

此实验室使用kali,可以按照说明找到目标机器的 IP。找到 IP 后,对其启动 nmap 端口扫描,会发现 docker 服务正在运行并暴露在公共 URL 上。

linux提权系列27: 冲破母体1

docker CLI 已经安装在 kali 中。只需要将 docker 主机环境变量更改为远程系统即可。为此,需要设置一个环境变量 DOCKER_HOST,如下所示

export DOCKER_HOST=tcp://your_ip_here:2375

通过列出镜像来测试连接。如果失败,则需要修复环境变量

linux提权系列27: 冲破母体1

使用以下配置运行 docker 容器,将远程系统上主机文件系统的根目录挂载到容器的/host路径。稍后 chroot 进入它并接管整个文件系统。此外,可以添加用户并提供 sudo 权限并将其用作后门或配置 cron 作业以连接到攻击者机器并以 root 身份提供反向 TCP shell

linux提权系列27: 冲破母体1

请点一下右下角的“在看”,谢谢!!

请帮忙点赞, 谢谢!!

请帮忙转发,谢谢!!

暗号: 830141


原文始发于微信公众号(奶牛安全):linux提权系列27: 冲破母体1

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年4月23日22:43:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   linux提权系列27: 冲破母体1https://cn-sec.com/archives/1686375.html

发表评论

匿名网友 填写信息