# Linux Pwn

> Linux 二进制漏洞利用专项技能。覆盖栈溢出、堆利用(House of系列/FSOP/tcache/fastbin)、 高级 ROP(ret2csu/SROP/JIT-ROP)、格式化字符串深入利用、内核提权与保护绕过。 当用户请求 exploit 开发、漏洞利用、提权、CTF pwn 挑战解决时触发。

- Skill: `forceinjection/linux-pwn` (Agent Skill, multi-file: 7 files)
- Install (CLI): `npx skillmds@latest add forceinjection/linux-pwn`
- Raw SKILL.md: https://api.skillmd.com/api/skills/forceinjection/linux-pwn/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- Author: ForceInjection (https://skillmd.com/u/forceinjection)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/forceinjection/linux-pwn

---


# Linux PWN — Linux 二进制漏洞利用

Linux 二进制漏洞利用的专项技能。覆盖从基础原语识别到现代 glibc 堆利用和内核提权的完整技术栈。

## Trigger Conditions

- 用户请求对 ELF 二进制进行漏洞利用/exploit 开发
- CTF pwn 挑战解决
- 询问堆利用、ROP 链、格式化字符串攻击、内核提权等技术
- 已有漏洞发现，需要构造 exploit

## 前置依赖

建议先使用 `elf-analyzer` 技能完成目标二进制的 triage 和安全态势评估。
本技能假定已知: 架构、链接方式、安全缓解措施状态 (RELRO/Canary/NX/PIE/seccomp)。

## Tool Discovery

```bash
command -v python3 gdb checksec ROPgadget ropper one_gadget \
  seccomp-tools strace pwntools 2>/dev/null | sort

# 关键后备链
# pwntools 不可用 → 手工 struct.pack + socket 编程
# ROPgadget 不可用 → ropper → objdump + grep 手工搜索 gadgets
# seccomp-tools 不可用 → strace + 手工 BPF 分析
```

## Workflow

### Step 1: 原语识别

**加载 `references/exploit-primitives.md`**。基于 elf-analyzer 提供的安全态势，识别可利用的漏洞类型和最佳利用路径。

### Step 2: 利用策略选择

根据安全缓解措施组合，自动路由到最优技术:

| 条件组合 | 推荐技术 | 加载文件 |
|---------|---------|---------|
| NX + No PIE + Partial RELRO | ret2libc / ret2dl_resolve | `rop-advanced.md` |
| NX + PIE + Partial RELRO | leak + ret2libc | `rop-advanced.md` |
| Full RELRO (glibc < 2.34) | __free_hook/__malloc_hook | `heap-exploitation.md` |
| Full RELRO (glibc ≥ 2.34) | House of Apple 2 / FSOP | `heap-exploitation.md` |
| seccomp 启用 | ROP syscall chain / 跨架构切换 | `rop-advanced.md` |
| 栈溢出 + Canary | leak canary → overflow | `format-string-deep.md` |
| 格式化字符串 | %n 写 / GOT 覆写 / .fini_array | `format-string-deep.md` |
| 内核模块漏洞 | heap spray → cred 篡改 | `kernel-exploitation.md` |

### Step 3: Exploit 开发

1. 编写利用脚本 (pwntools 模板)
2. 本地验证 (GDB 调试)
3. 远程适配 (libc 版本/地址随机化)

### Step 4: 报告

记录利用链、GDB 调试要点、libc 版本适配信息。

## Reference Loading Guide

| 场景 | 加载的 Reference 文件 |
|------|---------------------|
| 漏洞类型识别 | `references/exploit-primitives.md` |
| 堆利用技术 | `references/heap-exploitation.md` |
| 高级 ROP 技术 | `references/rop-advanced.md` |
| 格式化字符串攻击 | `references/format-string-deep.md` |
| 内核提权 | `references/kernel-exploitation.md` |
| .ko/eBPF 内核模块 | `references/kernel-modules.md` |

## Adjacent Skills

| 技能 | 何时使用 |
|------|---------|
| `elf-analyzer` | 需要先对二进制做 triage，获取安全态势 |
| `binary-reverse` | 需要深入理解二进制逻辑、反混淆 |

## Token Budget

1. 聊天只放结论，利用脚本和调试日志写入 case/
2. 两击失败即转向: 同一 exploit 路径两次失败后切换策略
3. 辅助脚本持久化到 case/04-decoding/ 或 case/exploit/

