Juguitos/copy-fail

GitHub: Juguitos/copy-fail

针对 CVE-2026-31431 的纯 Python 本地提权 PoC,利用 Linux 内核 AF_ALG/algif_aead 接口修改 SUID 程序 page cache 以获取 root 权限。

Stars: 0 | Forks: 0

# 复制 Fail PoC ## 英文 针对 **CVE-2026-31431** 的 Python PoC,旨在授权的 Linux 系统上进行受控实验室测试。 ### 描述 `copy-fail.py` 通过内核 `AF_ALG` 接口检查 `algif_aead` 是否可用,并且如果系统与此 PoC 测试的技术兼容,则会尝试修改目标 SUID 二进制文件的 page cache 以启动一个交互式 PTY shell。 该脚本包含以下架构的 payload: - `x86_64` - `i686` - `aarch64` ![Demo](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/76bd0a86f4091719.gif) ### 要求 - Linux。 - Python 3.10 或更高版本。 - 测试系统的本地访问权限。 - 内核支持 `AF_ALG` 和 `algif_aead`。 - 可读取的目标 SUID 二进制文件。默认目标为 `/usr/bin/su`。 不需要外部的 Python 依赖;该脚本仅使用标准库模块。 ### 用法 显示帮助: ``` python3 copy-fail.py --help ``` 使用默认目标 (`/usr/bin/su`) 运行: ``` python3 copy-fail.py ``` 使用另一个 SUID 二进制文件作为目标: ``` python3 copy-fail.py --target /usr/bin/newgrp ``` 以 root 身份运行特定命令: ``` python3 copy-fail.py --exec /bin/bash ``` 禁用自动终端设置: ``` python3 copy-fail.py --no-setup ``` 显示项目版本: ``` python3 copy-fail.py --version ``` ### 选项 | 选项 | 描述 | | --- | --- | | `-t`, `--target PATH` | 目标 SUID 二进制文件。默认:`/usr/bin/su`。 | | `-e`, `--exec CMD` | 以 root 身份运行的命令。必须提供完整路径。 | | `--no-setup` | 禁用自动终端环境设置。 | | `--version` | 显示项目版本。 | | `-h`, `--help` | 显示程序帮助。 | ### 运行时检查 在运行主流程之前,脚本会尝试创建并绑定一个 `AF_ALG` socket: ``` authencesn(hmac(sha256),cbc(aes)) ``` 如果 `algif_aead` 不可用,程序将退出且不继续执行。 ### 安全测试 测试套件仅涵盖诸如 `--help` 和 `--version` 等无害的 CLI 路径。它不会执行 PoC 流程。 ``` python3 -m unittest discover -s tests ``` ### 测试环境 - Ubuntu 24.04 - RHEL 14.3 - SUSE Linux Enterprise 16 - Debian 13 ### 安全提示 - 仅在一次性机器或实验室环境中运行它。 - 行为取决于内核、架构和可用的 SUID 二进制文件。 - PoC 在测试期间会操纵系统的 page cache 内存;避免在生产机器上运行。 - 在执行之前请审查并理解代码。 ### 项目文件 - `copy-fail.py`:完整的 PoC 实现和 CLI。 - `tests/test_cli.py`:安全的 CLI 冒烟测试。 - `SECURITY.md`:安全策略和报告范围。 - `DISCLAIMER.md`:授权使用免责声明。 - `CHANGELOG.md`:发布历史。 - `CONTRIBUTING.md`:贡献指南。 - `LICENSE`:许可证状态占位符。 ### 许可证 尚未选择正式许可证。在版权所有者添加之前,保留所有权利。 ## 西班牙文 针对 **CVE-2026-31431** 的 Python PoC,旨在授权的 Linux 系统上进行受控实验室测试。 ### 描述 `copy-fail.py` 通过内核 `AF_ALG` 接口检查 `algif_aead` 是否可用,并且如果系统与此 PoC 测试的技术兼容,则会尝试修改目标 SUID 二进制文件的 page cache 以启动一个交互式 PTY shell。 该脚本包含以下架构的 payload: - `x86_64` - `i686` - `aarch64` ![Demo](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/76bd0a86f4091719.gif) ### 要求 - Linux。 - Python 3.10 或更高版本。 - 测试系统的本地访问权限。 - 内核支持 `AF_ALG` 和 `algif_aead`。 - 可读取的目标 SUID 二进制文件。默认使用 `/usr/bin/su`。 不需要外部的 Python 依赖;使用标准库模块。 ### 用法 显示帮助: ``` python3 copy-fail.py --help ``` 使用默认目标 (`/usr/bin/su`) 运行: ``` python3 copy-fail.py ``` 使用另一个 SUID 二进制文件作为目标: ``` python3 copy-fail.py --target /usr/bin/newgrp ``` 以 root 身份运行特定命令: ``` python3 copy-fail.py --exec /bin/bash ``` 禁用自动终端设置: ``` python3 copy-fail.py --no-setup ``` 显示项目版本: ``` python3 copy-fail.py --version ``` ### 选项 | 选项 | 描述 | | --- | --- | | `-t`, `--target PATH` | 目标 SUID 二进制文件。默认:`/usr/bin/su`。 | | `-e`, `--exec CMD` | 以 root 身份运行的命令。必须提供完整路径。 | | `--no-setup` | 禁用自动终端环境设置。 | | `--version` | 显示项目版本。 | | `-h`, `--help` | 显示程序帮助。 | ### 运行时检查 在运行主流程之前,脚本会尝试创建并绑定一个 `AF_ALG` socket: ``` authencesn(hmac(sha256),cbc(aes)) ``` 如果 `algif_aead` 不可用,程序将终止且不继续执行。 ### 安全测试 测试套件仅涵盖诸如 `--help` 和 `--version` 等无害的 CLI 路径。它不会执行 PoC 流程。 ``` python3 -m unittest discover -s tests ``` ### 测试环境 - Ubuntu 24.04 - RHEL 14.3 - SUSE Linux Enterprise 16 - Debian 13 ### 安全提示 - 仅在一次性机器或实验室环境中运行它。 - 行为取决于内核、架构和可用的 SUID 二进制文件。 - PoC 在测试期间会操纵系统的 cache 内存;避免在生产机器上使用。 - 在执行之前请审查并理解代码。 ### 项目文件 - `copy-fail.py`:完整的 PoC 实现和 CLI。 - `tests/test_cli.py`:安全的 CLI 测试。 - `SECURITY.md`:安全策略和报告范围。 - `DISCLAIMER.md`:授权使用免责声明。 - `CHANGELOG.md`:变更历史。 - `CONTRIBUTING.md`:贡献指南。 - `LICENSE`:当前许可证状态。 ### 许可证 尚未选择正式许可证。在版权所有者添加之前,保留所有权利。
标签:aarch64, AF_ALG, algif_aead, CVE-2026-31431, Exploit, i686, Linux内核漏洞, Maven, Page Cache, PoC, PTY Shell, Python 3.10, Root提权, SUID提权, Web报告查看器, x86_64, 利用代码, 协议分析, 反弹Shell, 子域名枚举, 数据展示, 暴力破解, 本地提权, 权限提升, 漏洞复现, 漏洞验证, 系统安全, 红队, 网络安全, 隐私保护, 页缓存修改