二进制漏洞利用入门:awesome-pentest-cheat-sheets中的Exploit Development一图流与pwndbg技巧

原创2026-11-01 23:09:102,239 阅读

二进制漏洞利用入门:awesome-pentest-cheat-sheets中的Exploit Development一图流与pwndbg技巧

awesome-pentest-cheat-sheets 是一个社区维护的开源渗透测试作弊表合集(Collection of cheat sheets useful for pentesting),其中的二进制漏洞利用(Binary Exploitation)资源是新手从"只会扫描"走向"会写 Exploit"的捷径。本文带你用一张图快速掌握 Exploit Development 核心流程,并学会 pwndbg 的关键调试技巧。

awesome-pentest-cheat-sheets 二进制漏洞利用 Exploit Development 一图流作弊表

🧩 1分钟看懂:二进制漏洞利用在做什么

二进制漏洞利用(Exploit Development)的核心目标只有一个:让目标程序按你的意图执行代码。新手先记住这条主线即可:

  1. 找漏洞:最常见的是栈溢出(Stack Overflow)、格式串漏洞、堆溢出;
  2. 看防护:用 checksec 检查目标的 PIE、RELRO、Canary、NX、ASLR 等保护机制,防护越弱越容易利用;
  3. 精确定位:算出从输入到返回地址的偏移量(offset);
  4. 构造 payload:填充器 + 覆盖返回地址 + gadgets/Shellcode;
  5. 拿到 Shell:调试器里验证,再用 pwntools 自动化利用。

上图正是按这条流程组织的"一图流",适合打印贴在显示器旁边。

📸 一图流怎么读:6 个板块逐个击破

@ovid 的这张 Exploit Development Cheat Sheet(项目收录于 docs/pentest-exploit-dev-cheatsheet.jpg)信息密度很高,建议按以下顺序阅读:

  • x86/x64 寄存器速查(左上):EAX、EBX、ESP(栈指针)、EBP(帧指针)等寄存器的用途,32 位寄存器表一应俱全,读汇编时不再来回翻;
  • x86 操作码表(中左):NOP(0x90,填充 NOP Sled 必用)、JMP/CALL、INT 3 等关键指令的机器码;
  • GDB 命令组(中部):x 查看内存、si/ni 单步等最常用命令;
  • pwndbg 命令组(右侧):context、pie、ipi、search-asm、search-pattern 等增强调试命令,详见下节;
  • pwntools Python API(中下):process()、remote()、cyclic、recvuntil()、p64/p32/p8、hexdump 等写 Exploit 脚本的高频函数;
  • 格式串漏洞速查(右下):%x、%n、%s 等说明符的读/写能力,以及常见 Shellcode 片段。

💡 阅读技巧:第一次看只关注"寄存器 + GDB/pwndbg 命令 + pwntools API"三块,其余用到再查,避免信息过载。

🐞 pwndbg 调试技巧:让 GDB 不再难用

pwndbg 是 GDB 的增强插件,能自动打印寄存器、栈、堆等上下文,是二进制漏洞利用的事实标准工具。一图流右侧列出的常用命令,新手优先掌握这几个:

命令 用途
context 显示完整上下文(寄存器、栈、代码),每次断点停下先看它
pie 查看 PIE 基地址,计算运行时地址必备
ipi / ipih 显示当前/指定地址处的指令反汇编
search-asm 按汇编指令搜索内存,找 gadget 神器
search-pattern 按字节模式搜索,定位 padding 结束位置
checksec 一键检查二进制安全属性(PIE/RELRO/Canary 等)

配合项目 README.md 中 Binary Exploitation 章节(第192行起)收录的 pwndbg、PEDA、checksec.py 等参考资料,可以构建完整的本地调试环境。

🛠️ 从调试到自动化:用 pwntools 写出你的第一个 Exploit

在 GDB/pwndbg 里验证成功后,通常用 Python + pwntools 把利用过程写成脚本(偏移计算、payload 生成、与目标交互)。写脚本时的常用套路都在一图流中:

  • cyclic(n) 生成填充串,cyclic_find() 反查偏移;
  • p64()/p32()/p8() 把地址打包成小端字节;
  • process() 本地运行、remote() 连接远程目标;
  • recvuntil() 等待目标回显再发送下一段 payload。

项目还内置了一份可复用代码清单 docs/python-snippets.md,包含文件读写、命令行参数解析(argparse)等现成片段,写 Exploit 脚本时可以直接搬。

🧭 延伸:从 Get Shell 到完整渗透流程

拿到 Shell 只是开始。awesome-pentest-cheat-sheets 的价值在于把渗透各阶段都备好了速查表,你可以无缝衔接:

awesome-pentest-cheat-sheets 渗透测试 Metasploit 后渗透框架速查作弊表

✅ 快速上手:3 步开始练习

  1. 获取项目:git clone https://gitcode.com/gh_mirrors/awe/awesome-pentest-cheat-sheets;
  2. 打开一图流:查看 docs/pentest-exploit-dev-cheatsheet.jpg,建议打印后贴在工作区;
  3. 动手实践:准备一个开启了漏洞的练习程序,checksec 看防护 → pwndbg 单步调试找偏移 → pwntools 写脚本验证,全程命令都在这张图里。

📚 项目文件资料速查

文件 说明
README.md 全量作弊表总目录,含 Binary Exploitation 章节
docs/pentest-exploit-dev-cheatsheet.jpg Exploit Development 一图流(本文主角)
docs/python-snippets.md Python 可复用代码片段
docs/nmap.md Nmap 脚本命令速查
docs/Metasploit-CheatSheet.png Metasploit 速查(图片版)
docs/sqlmap-cheatsheet-1.0-SDB.pdf SQLmap 速查(PDF)
docs/Wireshark_Display_Filters.pdf Wireshark 显示过滤器(PDF)

📌 小建议:二进制漏洞利用门槛不低,先用一图流 + pwndbg 打通"溢出 → 调试 → 脚本"的最小闭环,再回头逐板块深挖,学习曲线会平缓很多。

登录后查看全文
awesome-pentest-cheat-sheets