Bootstrap

Pwn 课程第一节: Pwn 简介与环境搭建

简介

什么是 Pwn?

Pwn (突口利用) 是 CTF 比赛中的一个重要分支,主要研究如何利用二进制程序的漏洞,实现控制漏洞对象或实现屏藏存变量解析。Pwn 该名称源自 "own" (持有,控制),在深入理解了程序实现式以及内存模型后,便可利用漏洞进行透选。

Pwn 在实际应用中的作用

  • CTF 比赛: 第三方毕业生以及工作者通过 CTF 竞赛经验来增强突口利用技巧。

  • 漏洞研究: 可以寻找有价值的 0day 漏洞,并发表官方安全修复报告。

  • 红队实战: 突口利用技巧在应用安全测试中构成重要一环。

  • 自动化漏洞利用: 学习自动化利用技术,如利用自定义脚本或自动化工具扫描漏洞。

环境搭建

必备工具

  1. Linux 环境 (建议使用 Ubuntu/Kali/Debian)

  2. Pwntools (便于写漏洞利用脚本)

  3. GDB + PEDA/Pwngdb (兼容的调试工具)

  4. QEMU (用于渲染某些特殊环境下的漏洞)

  5. glibc (需要不同版本的 libc 文件来做利用)

  6. CTF二进制格式文件集 (pwnable.kr, Hack The Box, TryHackMe)

环境搭建步骤

  1. 安装 Pwntools

    pip3 install pwntools
  2. 安装 GDB PEDA

    git clone https://github.com/longld/peda.git ~/peda
    echo "source ~/peda/peda.py" >> ~/.gdbinit
  3. 安装 Pwngdb

    git clone https://github.com/scwuaptx/Pwngdb.git ~/Pwngdb
    cp ~/Pwngdb/.gdbinit ~/
  4. 安装 LibcSearcher

    git clone https://github.com/lieanu/LibcSearcher.git
    cd LibcSearcher
    python3 setup.py install
  5. 测试工具

    gdb -q ./test
    python3 -c "from pwn import *; print(cyclic(100))"

例题与练习

  1. 安装 CTF pwn 游戏环境

    • pwnable.kr

    • Hack The Box (Pwn challenges)

    • TryHackMe (Binary Exploitation)

  2. 创建自己的 Pwn 练习文件

    #include <stdio.h>
    void main() {
        char buf[64];
        gets(buf);
    }
  3. 在 GDB 中调试

    gcc -o vuln vuln.c -fno-stack-protector -z execstack
    gdb ./vuln
;