Community编程与开发github.com

kernel-exploitation 内核利用攻防手册

Linux 内核利用技术手册。适用于在 CTF 竞赛或现实场景中,通过 UAF、越界读写、竞争条件、类型混淆等内核漏洞,结合 commit_creds、modprobe_path 覆盖或内核 ROP 链实现权限提升。

kernel-exploitation 内核利用攻防手册 是什么?

该技能(yaklang/kernel-exploitation)是一份面向开发者和 CTF 参与者的 Linux 内核利用实战手册。它专注于利用常见内核漏洞(如释放后使用 UAF、越界读写 OOB、竞争条件 race condition、类型混淆 type confusion)进行权限提升攻击。技能涵盖三大核心技术路径:通过 commit_creds 修改凭证直接提权、覆写 modprobe_path 系统变量触发任意命令执行,以及构建内核 ROP 链绕过保护机制。该技能适用于多种平台,包括标准 Linux 发行版、自定义内核环境以及 CTF 竞技场。其核心思想是结合漏洞的触发点与利用技术,在攻击者获得任意内核内存读写能力后,将控制流导向预设的 payload 以获取 root 权限。文档以清晰步骤组织,附有代码示例和调试建议,帮助理解从漏洞分析到完整提权链的构建过程。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/yaklang/hack-skills/tree/main/skills/kernel-exploitation

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

kernel-exploitation 内核利用攻防手册 是做什么的?

Linux 内核利用攻防手册。适用于在 CTF 竞赛或现实场景中,通过释放后使用 (UAF)、越界读写 (OOB)、竞争条件 (race condition)、类型混淆 (type confusion) 等内核漏洞,结合 commit_creds、modprobe_path 覆盖或内核 ROP 链实现权限提升。

核心漏洞类型

  • UAF (Use-After-Free):内核对象释放后仍被引用,导致控制流劫持
  • OOB (Out-of-Bounds):数组或缓冲区越界读写,可破坏相邻内存
  • 竞争条件:多线程并发访问共享资源,导致状态不一致
  • 类型混淆:对象类型误判,实现跨类型的内存操作

利用技术

1. commit_creds 提权

通过覆盖当前进程的 cred 结构体,直接提升到 root 权限。常用方式:

  • 泄露内核基址 → 获取 commit_creds 函数地址
  • 构造 ROP 链:commit_creds(&init_cred) → 返回用户态 shell

2. modprobe_path 覆盖

利用内核的模块加载机制:

  • 将 modprobe_path 全局变量指向用户可控的脚本路径
  • 触发未知二进制执行 → 内核调用该脚本 → 获取 root shell

3. 内核 ROP 链

在禁用 KPTI 或 SMAP/SMEP 的场景下:

  1. 寻找可用的 gadget(如 pop rax; ret)
  2. 在用户态内存中布局 ROP payload
  3. 劫持内核执行流,调用 commit_creds + swapgs + iretq 返回用户态

适用平台

  • 标准 Linux 内核 (x86_64, ARM64)
  • CTF 竞赛题目(如 picoCTF、hackthebox 等)
  • 自定义内核调试环境(QEMU + gdb)

使用示例

# 编译内核模块漏洞利用程序
make
# 运行利用程序(需拥有内核内存读写能力)
./exploit

调试建议

  • 启用 KASLR 后需先泄露内核基址
  • 检查 SMEP/SMAP/KPTI 状态,选择对应利用方式
  • 使用 QEMU + GDB 进行断点调试,观察 cred 结构体变化

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

yaklang/401-403-bypass-techniques

401/403 bypass playbook. Use when encountering access-denied responses on admin panels, API endpoints, or restricted paths. Covers path manipulation, HTTP method tampering, header injection, protocol downgrade, and automated bypass tools.

yaklang/active-directory-acl-abuse

Active Directory ACL abuse playbook. Use when exploiting misconfigured AD permissions including GenericAll, WriteDACL, DCSync rights, shadow credentials, LAPS reading, GPO abuse, and BloodHound-guided attack paths.

yaklang/active-directory-certificate-services

AD Certificate Services attack playbook. Use when targeting misconfigured AD CS for privilege escalation via ESC1-ESC13 template abuse, NTLM relay to enrollment, CA officer abuse, and certificate-based persistence.

yaklang/active-directory-kerberos-attacks

Kerberos attack playbook for Active Directory. Use when targeting AD authentication via AS-REP roasting, Kerberoasting, golden/silver/diamond tickets, delegation abuse, or pass-the-ticket attacks.

yaklang/ai-ml-security

AI/ML security playbook. Use when assessing model supply chain attacks (pickle RCE, poisoned weights), adversarial examples, model poisoning, model stealing, data privacy attacks (membership inference, model inversion), and autonomous agent security risks.

yaklang/android-pentesting-tricks

Android pentesting playbook. Use when testing Android applications for SSL pinning bypass, exported component abuse, WebView vulnerabilities, intent redirection, root detection bypass, tapjacking, and backup extraction during authorized mobile security assessments.

yaklang/anti-debugging-techniques

Anti-debugging detection and bypass playbook. Use when reversing protected binaries that detect debuggers via ptrace, PEB flags, timing checks, or signal/exception handlers on Linux and Windows.

yaklang/api-auth-and-jwt-abuse

API authentication and JWT abuse playbook. Use when testing bearer tokens, API keys, claim trust, header spoofing, rate limits, and API auth boundary weaknesses.

yaklang/api-authorization-and-bola

API authorization and BOLA testing playbook. Use when APIs expose object identifiers, nested resources, hidden writable fields, or weak function-level authorization.

yaklang/api-recon-and-docs

API reconnaissance and documentation review playbook. Use when discovering endpoints, schemas, versions, OpenAPI specs, hidden docs, and surface area for API testing.

yaklang/api-sec

Entry P1 category router for API security. Use when choosing between API recon, authorization, token abuse, and hidden-parameter workflows before any deeper API topic skill.

yaklang/arbitrary-write-to-rce

Arbitrary write to RCE playbook. Use when you have an arbitrary write primitive (from heap exploitation, format string, or OOB write) and need to convert it into code execution by targeting GOT, hooks, _IO_FILE vtable, exit_funcs, TLS_dtor_list, modprobe_path, .fini_array, or C++ vtables.

yaklang/authbypass-authentication-flaws

Authentication bypass testing playbook. Use when assessing login flows, password reset logic, account recovery, MFA bypass, token predictability, brute-force resistance, and session boundary flaws.

yaklang/auth-sec

Entry P1 category router for authentication and authorization. Use when testing login flows, sessions, object authorization, JWT, OAuth, CORS, CSRF, and enterprise SSO weaknesses before any deeper auth topic skill.

yaklang/binary-protection-bypass

Binary protection bypass playbook. Use when identifying and bypassing ASLR, PIE, NX/DEP, stack canary, RELRO, FORTIFY_SOURCE, CET, and MTE protections in ELF binaries to enable exploitation.

yaklang/browser-exploitation-v8

Browser and V8 exploitation playbook. Use when exploiting JavaScript engine vulnerabilities including JIT type confusion, incorrect bounds elimination, and V8 sandbox bypass to achieve renderer RCE and sandbox escape in Chrome/Chromium.

yaklang/business-logic-vuln

Entry P1 category router for business logic testing. Use when workflow abuse, race conditions, pricing flaws, or multi-step state attacks matter more than parser-level input injection.

yaklang/business-logic-vulnerabilities

Business logic vulnerability playbook. Use when reasoning about workflows, race conditions, price manipulation, coupon abuse, state machines, and multi-step authorization gaps.

yaklang/classical-cipher-analysis

Classical cipher analysis playbook. Use when encountering substitution ciphers, Vigenere, transposition, XOR, or encoded text in CTF challenges that requires frequency analysis, Kasiski examination, or known-plaintext cryptanalysis.

yaklang/clickjacking

Clickjacking playbook. Use when testing whether target pages can be framed, whether X-Frame-Options or CSP frame-ancestors are properly configured, and whether UI redress attacks can trigger sensitive actions.

相关技能