Ruby570bocadito/Breach-Entry
GitHub: Ruby570bocadito/Breach-Entry
专注于Ubuntu Server 24.04 LTS apport ExecutablePath欺骗漏洞的零日漏洞利用研究。
Stars: 0 | Forks: 0
⚠️ 免责声明 / LEGAL DISCLAIMER ⚠️
本材料仅严格用于教育和安全研究目的。
作者对任何滥用此代码的行为概不负责。
The author is NOT responsible for any misuse of this code. |
📋 目录
🔍 漏洞 • ⚙️ 利用流程 • 💣 PoC 用法 • 📅 时间线 • 🏷️ 分类 • 💥 实际影响
🔍 CVE-2026-XXXX: apport ExecutablePath Spoofing
Ubuntu 24.04 LTS 中的 完整性/metadata bug — apport 2.28.1
⚙️ 利用流程
``` flowchart TD A["💀 Attacker (user_ns)"] --> B["LD_PRELOAD=.so /usr/bin/bash /usr/bin/passwd"] subgraph Kernel[Linux Kernel 6.8.0] B -->|"SIGILL / SIGSEGV"| C[apport hook] C -->|"_check_interpreter()"| D{"cmd = bash?→ YES : it's the interpreter"} end subgraph Apport[apport 2.28.1 - report.py] D -->|"✅ bash is the interpreter"| E["ExecutablePath = argv[1]
→ /usr/bin/passwd"] E --> F["os.access(path, os.R_OK) ✅
(any readable file passes)"] F --> G["report['ExecutablePath'] =
os.path.realpath('/usr/bin/passwd')"] G --> H["Crash report written to
/var/crash/_usr_bin_passwd.{uid}.crash"] end style A fill:#4a0000,stroke:#ff0000,color:#fff style D fill:#1a1a4a,stroke:#4466ff,color:#fff style E fill:#4a0000,stroke:#ff0000,color:#fff style F fill:#330000,stroke:#ff3333,color:#ff6666 style G fill:#4a0000,stroke:#ff0000,color:#fff style H fill:#1a1a00,stroke:#ffff00,color:#fff style Kernel fill:#1a1a2e,stroke:#6666ff,color:#ccc style Apport fill:#1a2e1a,stroke:#66ff66,color:#ccc ```
💥 PoC 用法
### 📦 前置条件 - apport 处于活动状态: `systemctl is-active apport.service` - `ulimit -c unlimited` - 作为**非特权**用户的 Shell ### 🚀 执行 ``` # Clonar git clone https://github.com/Ruby570bocadito/Breach-Entry.git cd Breach-Entry # 完整 Exploit(生成 .so、导致 crash、归因于 passwd) python3 exploit_apport.py # target: /usr/bin/passwd python3 exploit_apport.py /usr/bin/su # target personalizado ``` ### 📊 预期输出 ``` [+] Report: ExecutablePath: /usr/bin/passwd → FALSE [+] Report: InterpreterPath: /usr/bin/bash → TRUE (the real crashed process) ``` ### 📁 PoC 文件 | 文件 | 描述 | |---------|-------------| | `exploit_apport.py` | 完整的 Exploit(Python,无需 gcc 即可生成 .so) | | `.libexploit.so` | 导致崩溃的 Shared object (344B ELF64) | | `poc_apport_override.py` | 仅使用纯 Python 的基础 PoC | | `pwn_apport.c` | 备用的 C 源码(需要 gcc) | | `CVE-REQUEST-*.md` | 提交给 MITRE 的正式报告 | | `*.crash` | 已验证的崩溃报告 |📅 披露时间线
``` gantt title CVE-2026-XXXX Disclosure Timeline dateFormat YYYY-MM-DD axisFormat %Y-%m-%d section Discovery & Research Initial discovery :done, 2026-04-15, 3d PoC development :done, 2026-04-18, 5d Full exploitation analysis :done, 2026-04-23, 4d section Vendor Notification Ubuntu Security Team notified :done, 2026-04-28, 1d CVE ID requested (MITRE) :done, 2026-04-29, 2d Vendor analysis & reproduction :done, 2026-05-01, 7d section Resolution Advisory drafted :done, 2026-05-10, 3d CVE ID assigned :done, 2026-05-15, 1d Public disclosure :active, 2026-05-20, 1d ``` | 日期 | 事件 | |-------|--------| | `2026-04-15` | 🔍 初步发现 bug | | `2026-04-23` | 💻 完成可用的 PoC | | `2026-04-28` | 📧 通知 Ubuntu Security Team | | `2026-04-29` | 🆔 向 MITRE 申请 CVE | | `2026-05-15` | ✅ 分配 CVE-2026-XXXX | | `2026-05-20` | 🌐 公开披露 |💥 实际影响
| 向量 | 能实现什么 | 不能实现什么 | |--------|----------------|-------------------| | 崩溃报告和日志中的虚假归因 | ❌ 权限提升 (LPE) | | 将 bash 的 core dump 归因于 passwd/sudo | ❌ 远程代码执行 (RCE) | | 污染遥测数据 (Launchpad) | ❌ 在 `/var/crash/` 之外写入 | | 对 `/var/crash/` 的部分 DoS | ❌ 以 root 身份执行 hooks | **为什么它不严重:** 1. `drop_privileges(real_user)` 在解析**之前**运行 (apport 第 1077 → 1080 行) 2. `add_proc_info()` 和 `_check_interpreter()` 以**崩溃用户的身份**运行,而不是 root 3. `add_package_info()` 也以**降低的权限**运行 4. 报告的文件名使用了 `.replace("/", "_")`,防止了 path traversal 5. 对于正常进程,`report_owner` 是该用户(`dump_mode 1`)📂 仓库结构
``` Breach-Entry/ ├── exploit_apport.py # Exploit completo (Python, auto-genera .so) ├── .libexploit.so # Shared object crash (344B ELF64) ├── poc_apport_override.py # PoC básico solo Python ├── pwn_apport.c # C source alternativo ├── CVE-REQUEST-*.md # Reporte formal MITRE ├── *.crash # Crash reports verificados ├── tools/ │ ├── exploit_harnes.c # Kernel interface battery (15 tests) │ ├── stress_race.c # 8-thread race condition stress test │ ├── uffd_race_poc.c # userfaultfd + io_uring race PoC │ ├── syz_runner.c # Weighted kernel fuzzer │ └── syzkaller/ # Built from source at /tmp/syzkaller/ └── README.md # This file ```🧪 测试系统
| 组件 | 详情 | |-----------|--------| | **OS** | Ubuntu Server 24.04.4 LTS | | **Kernel** | 6.8.0-117-generic (构建于 Tue May 5 19:26:24 UTC 2026,自定义配置) | | **用户** | `rafa` (uid 1000),通过密码使用 sudo | | **SSH** | 暴露在 0.0.0.0:22,公网 IP 99.134.0.2,X11Forwarding yes,无防火墙 | | **硬件** | 1 vCPU,1.3GB RAM,40GB 磁盘,Hyper-V 虚拟机 |📚 参考
|
🔬 Zero-Day Exploit Research — CVE-2026-XXXX apport ExecutablePath Spoofing · Ubuntu Server 24.04 LTS 🐺 Ruby570bocadito © 2026 · Responsible Disclosure · Educational Purpose Only "With great power comes great responsibility." |