1

用这个启动一个shell:

bwrap --unshare-pid --unshare-user --dev-bind / / bash

在主机上的另一个 shell 中,我们可以使用 lsns 看到这一点:

4026532550 user        2 1799976 user bwrap --unshare-pid --unshare-user --dev-bind / / bash
4026532552 mnt         2 1799976 user bwrap --unshare-pid --unshare-user --dev-bind / / bash
4026532562 pid         2 1799976 user bwrap --unshare-pid --unshare-user --dev-bind / / bash

命名空间报告中的 lsns

4026531834 time        3 1799976 user bwrap --unshare-pid --unshare-user --dev-bind / / bash
4026531835 cgroup      3 1799976 user bwrap --unshare-pid --unshare-user --dev-bind / / bash
4026531838 uts         3 1799976 user bwrap --unshare-pid --unshare-user --dev-bind / / bash
4026531839 ipc         3 1799976 user bwrap --unshare-pid --unshare-user --dev-bind / / bash
4026531992 net         3 1799976 user bwrap --unshare-pid --unshare-user --dev-bind / / bash
4026532550 user        3 1799976 user bwrap --unshare-pid --unshare-user --dev-bind / / bash
4026532552 mnt         3 1799976 user bwrap --unshare-pid --unshare-user --dev-bind / / bash
4026532562 pid         3 1799976 user bwrap --unshare-pid --unshare-user --dev-bind / / bash

主要问题:

如何在与第一个相同的命名空间中启动第二个 shell?


奖金问题:

据我了解,在大多数情况下,bubblewrap 创建了一个中间命名空间(只有用户命名空间?)

是否可以在bubblewrap 创建的中间命名空间中启动一个shell?

它会因为所有权限都已被中间命名空间中的气泡包装删除而无用吗?

这个想法是进一步的挂载/卸载可以在中间命名空间的最终命名空间中完成,或者其他一些特权的东西


欢迎任何解决方案,最好使用bubblewrap,否则最好使用nsenter 以及用于PoC 的原始setns 系统调用

请注意,bwrap 不是 setuid,我以非特权用户身份启动 bwrap,内核中启用了所有类型的命名空间,并且它们作为非特权用户正常工作 afaik

根据这个问题https://github.com/containers/bubblewrap/issues/253,bubblewrap 只能创建新的挂载命名空间,所以这个问题目前可能无法仅使用bubblewrap 来解决

Bubblewrap 在创建初始命名空间、简单且足够的配置方面做得很好,如果它创建的命名空间无法以任何方式正确重新输入,我可能会修补 bubblewrap 以便允许它或完全放弃它并编写一个基于bubblewrap如何做大多数事情的自己的setns包装器

Flatpak 使用bubblewrap 并允许输入命名空间,检查bubblewrap 是否创建中间命名空间,我试图理解https://github.com/flatpak/flatpak/blob/4735e3ea90d9cfa7237aa1de7818ba396a45f084/app/flatpak-builtins-enter.c处的代码但我无法让它手动工作

4

1 回答 1

0

像这样:

nsenter -U --preserve-credentials -m -p -t 1799976

1799976当前在该命名空间中的进程的 PID 在哪里。如果您不想进入 mount 或 PID 命名空间,请分别省略-mor -p

于 2022-01-30T01:33:24.687 回答