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

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

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

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

工具目录

分类

查看所有分类
Loading categories
copy-fail-go — Go 版 CVE-2026-31431(copy-fail)Linux 内核权限提升 PoC,支持自动枚举 SUID 二进制文件并交互式选择目标。 | Kitploit
工具/GitHubGitHub/3jee/copy-fail-go
权限提升漏洞利用框架漏洞分析漏洞利用CTF渗透测试红队二进制利用
GitHub3jee/copy-fail-go

copy-fail-go

Go 版 CVE-2026-31431(copy-fail)Linux 内核权限提升 PoC,支持自动枚举 SUID 二进制文件并交互式选择目标。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

copy-fail-go

grenkoca 的 Python PoC 的 Go 移植版本,针对 CVE-2026-31431(copy-fail)。

此版本可编译为完全静态的二进制文件,零运行时依赖——无需 Python、无需 pip、无 libc 版本限制。将其放到任何 Linux 目标上即可运行。它还会自动枚举目标上所有 SUID 全局可读二进制文件,并让你通过交互式菜单选择要利用的目标。

仅限授权的安全研究和 CTF 使用。


什么是 CVE-2026-31431(copy-fail)?

由 Theori 发现并于 2026 年 4 月 29 日 公开披露,Copy.Fail 是 Linux 内核 algif_aead 加密模块中的一个逻辑缺陷,由 2017 年的一项优化 引入。它影响自 2017 年以来所有主流 Linux 发行版。

通过操纵内核的 AF_ALG 加密接口,非特权攻击者可以将受控数据直接写入 Linux 页缓存——即受信任系统二进制文件的内存表示。这允许临时劫持 /usr/bin/su 等二进制文件,而无需修改磁盘上的文件,使基于磁盘的取证对攻击视而不见。

与许多依赖竞态条件或内核地址泄漏的 LPE 缺陷不同,Copy.Fail 高度可靠,仅凭标准用户账户即可稳定利用。

影响:

  • 普通用户 → 在任意受影响系统上获得 root 权限
  • 容器逃逸至宿主机
  • CI/CD 任务获取其运行器的 root 权限
  • 共享/多租户基础设施跨租户被攻陷
  • 不修改磁盘上的文件(绕过完整性检查)

受影响的内核: 自 2017 年以来的所有发行版。具体版本范围请参阅 grenkoca 的原始 PoC。


与原始 Python PoC 的差异

原始版本(Python)本仓库(Go)
语言Python 3Go 1.21+
目标硬编码 /usr/bin/su通过实时文件系统扫描自动检测
目标选择无交互式编号菜单
分发方式脚本单个静态二进制文件(无运行时依赖)

要求

  • 受影响版本范围内的 Linux 内核
  • 目标上存在 SUID 全局可读二进制文件(工具会自动查找)
  • 运行无需特殊权限

构建依赖(在你的构建机器上)

工具版本
Go1.21+

构建

原生 Linux 构建

root@kitploit:~
git clone https://github.com/3jee/copy-fail-go
cd copy-fail-go
go build -o copy-fail .

从 macOS 或 Windows 交叉编译(目标为 Linux x86-64)

root@kitploit:~
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-s -w" -o copy-fail .

-s -w 标志会剥离调试信息以减小二进制文件体积。CGO_ENABLED=0 可生成完全静态、无 libc 依赖的二进制文件——无论 glibc 版本如何,均可直接放到任何 Linux 目标上运行。

其他架构

目标命令
Linux ARM64GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -o copy-fail .
Linux 32 位 x86GOOS=linux GOARCH=386 CGO_ENABLED=0 go build -o copy-fail .

使用方法

将二进制文件传输到目标并执行(无需 root 权限):

root@kitploit:~
./copy-fail

示例会话:

root@kitploit:~
CVE-2026-31431 (copy-fail) - Go PoC
Based on grenkoca's original PoC

Scanning for SUID world-readable binaries...

SUID world-readable binaries found:
------------------------------------
  [1] /usr/bin/su
  [2] /usr/bin/sudo
  [3] /usr/bin/passwd
  [4] /usr/bin/newgrp

Select target [1-4]: 1

[*] Targeting: /usr/bin/su
[*] Writing 48 bytes to /usr/bin/su...
[+] Write complete. Executing target...
# whoami
root

工作原理

  1. 以 O_RDONLY 打开目标 SUID 二进制文件——无需写权限。
  2. 创建绑定到 authencesn(hmac(sha256),cbc(aes)) AEAD 变换的 AF_ALG(SOCK_SEQPACKET)套接字。
  3. 发送带有 MSG_MORE 和 SOL_ALG 控制消息的精心构造的 sendmsg,以针对目标文件的页缓存条目排队一个加密操作。
  4. 使用 splice(2) 将文件中的页面移入 ALG 套接字,触发易受攻击的内核路径,该路径会写回修改后的页缓存页面,而不会重新检查文件权限。
  5. 对负载的每个 4 字节块重复此过程。
  6. 执行修补后的二进制文件。

致谢

  • grenkoca - 原始 Python PoC
  • Theori - 漏洞发现
  • 本仓库是带有自动目标枚举的未压缩 Go 移植版本

参考

  • OVHcloud: Copy.Fail - 如何快速保护 MKS 集群免受 Linux 内核零日漏洞影响
  • grenkoca 的原始 Python PoC(gist)
下载工具