Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-31431 — カーネル権限昇格エクスプロイト。CVE-2026-31431を悪用し、AF_ALGインターフェースを利用して/bin/suを上書きし、rootシェルを起動します。C実装とトラブルシューティングガイドを含みます。 | Kitploit
ツール/GitHubGitHub/0xshe/cve-2026-31431
特権昇格エクスプロイトフレームワークエクスプロイト学習と教育バイナリエクスプロイト
GitHub0xshe/cve-2026-31431

CVE-2026-31431

カーネル権限昇格エクスプロイト。CVE-2026-31431を悪用し、AF_ALGインターフェースを利用して/bin/suを上書きし、rootシェルを起動します。C実装とトラブルシューティングガイドを含みます。

リポジトリを見る
40203ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

作者: 0xShe

语言 / Language

  • English: https://github.com/0xShe/CVE-2026-31431/blob/main/README.md
  • 中文: https://github.com/0xShe/CVE-2026-31431/blob/main/README-CN.md 1

CVE-2026-31431 内核权限提升工具指南

0x01 快速开始

部分目标环境未安装 Python,因此本权限提升逻辑已用 C 语言重写。

  1. 编译

在您的 Linux 机器或 WSL 上运行以下命令(建议使用 -static 以避免 GLIBC 版本问题):

root@kitploit:~
gcc -static exploit.c -o exploit

2. 部署与执行

将生成的二进制文件上传到目标机器:

root@kitploit:~
chmod +x exploit
./exploit

如果利用成功,程序将自动执行 su 并直接生成一个 root shell,无需输入密码。


0x02 权限提升逻辑:它是如何工作的?

此漏洞利用的是 Linux 内核 AF_ALG 接口(内核加密 API)中的一个逻辑缺陷。

  1. 创建加密套接字 程序使用 socket(AF_ALG, ...) 创建一个 AEAD(带关联数据的认证加密)套接字。

  2. 内存注入(Splice) 通过利用 Linux 的 splice 系统调用,可以将文件描述符(此处为 /bin/su)中的数据直接重定向到内核加密缓冲区中。

  3. 载荷覆盖 利用特定的内存偏移量,该漏洞将 /bin/su 的认证逻辑的一部分替换为权限提升载荷(一个启动 /bin/sh 的最小 ELF 程序)。

  4. 触发权限提升 在内核完成一系列加密操作后,内存中的 su 进程已被篡改。当最终执行 system("su") 时,系统实际运行的是被修改后的 root shell 载荷。


0x03 故障排查指南:为什么仍然要求输入密码?

在调试过程中,如果程序输出 Exploit finished 但运行 su 时仍要求输入密码,问题通常由以下细节之一引起。

  1. 关键的 MSG_MORE 标志

这是最常见的失败点。sendmsg 调用必须包含 MSG_MORE 标志。

  • 原因: 该标志告知内核还有更多数据即将到达,防止加密缓冲区过早被终结。

  • 后果: 如果没有此标志,内核会立即关闭当前的加密上下文。结果,后续的 splice 注入无法进入正确的内核缓冲区,导致覆盖无法实现。

  1. 关联数据长度(Assoclen)

内核对于 AEAD 关联数据的对齐和长度检查极为严格。

  • 陷阱: 如果 C 代码中的 ASSOCLEN 设置为 4 字节,而内核期望 8 字节(反之亦然),内核可能会抛出无效参数错误,或直接静默跳过注入逻辑。
  1. 文件偏移量重置

在修改 /bin/su 的循环过程中,每次 splice 操作都必须从偏移量 0 开始读取。

  • 陷阱: 如果未将 off_su 显式重置为 0,splice 的行为类似于 read(),会持续推进文件指针。在第二次迭代时,注入的数据会发生错位,这可能会损坏 su 或破坏利用逻辑。
  1. 内核补丁

某些系统可能已经应用了静默安全补丁。在多个机器上的测试中已确认这一点——某些目标已经收到了非官方或向后移植的修复。


0x04 注意事项

  • 内核版本: 此漏洞主要影响早期的 5.x Linux 内核(例如 Ubuntu 20.04 的初始版本)。如果内核已被修补,此方法将不再有效。

  • 路径差异: 不同的 Linux 发行版可能将 su 存储在不同的位置(/bin/su 或 /usr/bin/su)。代码会尝试自动检测正确的路径,但如果两者都不存在,请使用 which su 手动确认,并相应修改代码。

  • 免责声明: 本文严格用于技术研究和教育目的。请勿将其用于非法活动。用户应对因滥用此工具而产生的任何法律后果承担全部责任。

ツールをダウンロード