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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CTF-CVE-2022-0847 — CTF 挑战,部署 CVE-2022-0847(Dirty Pipe)漏洞利用程序以覆盖只读文件。包含设置脚本、提示以及用于内核漏洞利用练习的验证。 | Kitploit
工具/GitHubGitHub/justinye377/ctf-cve-2022-0847
权限提升漏洞利用CTF学习与教育二进制利用实验室与实践
GitHubjustinye377/ctf-cve-2022-0847

CTF-CVE-2022-0847

CTF 挑战,部署 CVE-2022-0847(Dirty Pipe)漏洞利用程序以覆盖只读文件。包含设置脚本、提示以及用于内核漏洞利用练习的验证。

查看仓库
121年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Dirty Pipe 部署

对于这个挑战,你需要使用 CVE-2022-0847 漏洞利用覆盖只读文件 "cat.txt" 使用该漏洞利用有很多种方法可以实现

依赖项

  • Linux 内核版本 5.8 或更高版本(易受攻击)
  • gcc(GNU 编译器套件)用于编译漏洞利用代码

首次设置

  1. 搭建易受攻击的环境:
  • 对于 Linux 用户:
    • 使用内核版本为 5.8 或更高、但低于已修复版本的 Linux 发行版:
    • 已修复版本包括 5.16.11、5.15.25 和 5.10.102。
    • 通过运行以下命令验证系统上的内核版本: uname -r
    • 如果你的内核已被修复,则可能需要降级或使用其他 Linux 安装以满足易受攻击的条件。
  • 对于 Windows 用户:
    • 安装虚拟机:
      • 下载并安装虚拟机软件,例如 Oracle VM VirtualBox 或 VMware。
    • 下载易受攻击的 Linux 发行版:
      • 访问 Kali Linux 存档以下载较旧版本的 Kali Linux。
      • 建议的版本包括任何带有 5.8 - 5.15 内核的发行版(例如 Kali 2021.1)。
    • 或者,其他具有匹配内核版本的 Linux 发行版也可以使用(例如较旧版本的 Ubuntu 或 Debian)。
  • 搭建虚拟机:
    • 在 VirtualBox 中创建新的虚拟机:
    • 分配至少 2 GB 内存和 10 GB 磁盘空间。
    • 使用下载的 ISO 文件安装 Linux 发行版。
    • 安装完成后,通过运行以下命令确认内核版本: uname -r
  • 安装所需工具:
    • 搭建环境后,请确保已安装以下工具:
      • gcc:编译漏洞利用代码所需。
      • make:用于在需要时构建项目。
      • 更新包管理器并安装工具: sudo apt update sudo apt install gcc make -y

启动挑战

  1. 开始: 确保检查内核版本! 使用这个 GitHub 链接(https://github.com/basharkey/CVE-2022-0847-dirty-pipe-checker.git)

检查 cat.txt 文件是否为只读文件

限制条件如下: 攻击者必须具有读权限(因为它需要将一页 splice() 到管道中) 偏移量不能位于页边界上(因为该页至少有一个字节必须已经被拼接(splice)到管道中) 写入不能跨越页边界(因为其余部分会创建一个新的匿名缓冲区) 文件不能被调整大小(因为管道有自己的页面填充管理,并且不会告知页缓存已追加了多少数据)

  1. 部署漏洞利用:
  • 创建一个管道。

  • 用任意数据填充管道(以在所有环形缓冲区条目中设置 PIPE_BUF_FLAG_CAN_MERGE 标志)。

  • 排空管道(使 struct pipe_inode_info 环形缓冲区中的所有 struct pipe_buffer 实例都保留该标志)。

  • 将目标文件(以 O_RDONLY 打开)中目标偏移量之前的数据拼接(splice)到管道中。

  • 向管道中写入任意数据;由于设置了 PIPE_BUF_FLAG_CAN_MERGE,这些数据将覆盖缓存的文件页,而不是创建新的匿名 struct pipe_buffer。

  • 覆盖 cat.txt,将 I'm a cat 1444 改为 I'm a dog 2025

  • 使用 check_cat.sh 检查它是否有效 chmod +x check_cat.sh ./check_cat.sh

挑战重新生成

使用以下命令 chmod +x cat_generate.sh ./cat_generate.sh

发布挑战

提示位于 hints.txt 中

下载工具