pwn的环境与配置

pwn的环境

目标: 搭建一个专业的pwn环境,熟练使用pwnner的“瑞士军刀”。

内容:

  1. Linux环境搭建与入门: 我们需要一个Linux系统。我推荐使用WSL (Windows Subsystem for Linux)或者VMware/VirtualBox安装一个Ubuntu 20.04/22.04的虚拟机。我会带你熟悉pwn中必须用到的命令行指令,比如ls, cd, cat, chmod, grep, ssh等。这是基础中的基础。
  2. 神器pwntools入门: 这是用Python编写的pwn题解题框架,能帮你快速编写漏洞利用脚本,处理远程交互、打包解包数据等,是每个pwnner的必备神器。
  3. 调试利器GDB与插件: GDB是Linux下的主要调试工具。但原生的GDB对pwn不是很友好,所以我们会给它装上强大的插件,比如pwndbgGEF。它们能让你在调试时清晰地看到栈、寄存器、反汇编代码等信息,是分析漏洞的左膀右臂。

Linux的环境

初学者一般使用VMware的话会熟练一些,VM最新版也是免费的,官网下载安装即可。我这边使用wsl安装,在vM安装虚拟机的方法这边不做介绍。

image-20250720112823770

没下wsl的可以在微软商店下载。然后通过powershell或者cmd打开windows的命令行。输入wsl看看是否可用。

wsl -l就是看你现在系统上安装的Linux都是啥,一般刚下的wsl上面什么都没有。我们可以通过这条命令

wsl -l --online来看可以下载的Linux版本。

image-20250720113111889

这边推荐安装Ubuntu的24.04或者22.04版本,这边因为我之前有了24.04所以我下载22.04版本。

image-20250720113244934

等待进度条走完,就是安装完成了,需要设置一个用户名和密码,按你的想法设置就行(最好不要使用中文),linux在输入密码的时候不显示字数是正常的,正常输入即可。

image-20250720113937174

这就是设置界面,输入名称和密码。

image-20250720114040995

这样显示,前面应该是你自己设置的用户名,就说明已经进入系统了,接下来我们安装pwn需要用到的一些东西包括pwntools这个包还有pwndbg这个gdb的扩展。首先第一步就是切换软件源。

【小知识课堂:什么是软件源?】

Linux系统安装软件,通常都是从一个官方的服务器(我们称之为“源”)下载的。默认的源服务器在国外,我们从国内访问会非常慢。所以,我们需要把它换成国内的镜像源(比如清华大学、阿里云提供的),这样下载安装软件的速度就会快如闪电。

第一步:更换为清华大学镜像源

  1. 备份默认源文件(好习惯): 在你的Ubuntu终端里,输入下面的命令并回车。它会让你输入密码,就是你之前设置的那个。输入时密码不显示是正常的。

    1
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
  2. 编辑源列表文件: 我们用一个简单的文本编辑器nano来修改它。

    1
    sudo nano /etc/apt/sources.list

    执行后,会打开一个文本编辑界面。按 Ctrl + A 然后按 K 可以全部删除里面的内容。然后,将下面的所有文本复制,在nano编辑器里点击鼠标右键粘贴进去。(注意:要完整复制,不要遗漏)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse

    deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
    # deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse

    # 预发布软件源,如有需要可自行取消注释
    # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
    # # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main res

粘贴好后,按下 Ctrl + X,它会问你是否要保存,按 Y,然后按回车确认文件名,就保存退出了。最后,执行这个命令来让系统接受新的源。

1
sudo apt update

你会看到终端里飞速滚动的都是tsinghua.edu.cn的网址,速度应该会非常快。现在我们来安装pwn所需要的一系列基础工具。

请复制下面这一整行命令,粘贴到你的终端里,然后回车执行。它会自动安装所有我们需要的宝贝。

1
sudo apt install -y build-essential gdb python3-pip python3-dev git vim curl libssl-dev
  • build-essential: 包含了gcc等C语言编译器,是我们编译程序的根本。
  • gdb: 我们之后要用的调试器 GDB (The GNU Debugger)。
  • python3-pip, python3-dev: 用于安装Python库,比如我们之后要用的pwntools
  • git, vim, curl, libssl-dev: 其他一些你会经常用到的实用工具。

安装 pwntoolspwntools 是一个功能极其强大的Python库,是pwn手写漏洞利用脚本(exploit)的标配。

在安装pwntools前我们需要修改一下pip的默认安装源,不然会很慢,这边我们依旧选择清华大学的源。

你只需要在你的终端里运行下面这行命令,就可以把pip的默认下载源设置为清华大学的镜像源。

1
sudo pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
1
sudo pip install pwntools

顺便提一下,pwntools依赖一些系统库。如果你在安装过程中,看到一些关于 gcc 或者 python-dev 的报错,那可能是缺少了必要的编译工具和开发库。

如果你用的是Ubuntu或者Debian系的Linux,可以先运行下面的命令安装好这些依赖:

1
2
sudo apt-get update
sudo apt-get install python3-dev python3-pip libffi-dev build-essential libssl-dev libcapstone-dev

然后再去执行pip install pwntools就没问题了。

安装 pwndbgpwndbg 是GDB的一个插件,它能极大地增强GDB的功能,让我们在调试时可以清晰地看到栈、寄存器、反汇编等信息,是pwn手的眼睛。在执行下面的命令前确保github可以连接,不过即使可以连接我也推荐大陆的同学使用GitHub镜像站来进行git clone这一步,可以去网上找一些现在可用的github镜像站,这边我用的是bgithub.xyz这个(2025.7.20可用),单纯的就是将第一条命令中的网址换一下。git clone https://bgithub.xyz/pwndbg/pwndbg

1
2
3
git clone https://github.com/pwndbg/pwndbg
cd pwndbg
./setup.sh

24.04可能会遇上python版本错误不知道下啥依赖的问题,可以在下面评论,我看到会解答,或者赞助找我亲自配

一切都装好后,我们来检查一下:

  1. 在终端里输入 gdb 并回车。如果你看到了彩色的界面,并且提示符变成了 pwndbg>,那么恭喜你,最帅的调试器已经就位!输入 q 然后回车可以退出GDB。
  2. 在终端里输入 python3 并回车,然后输入 from pwn import *,如果没有报错,就说明pwntools也已经准备就绪!输入 exit() 回车可以退出Python。

附录:

可能需要使用的网址和文件:

VMware官网:https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion

VMware安装包(百度网盘):

windows:https://pan.baidu.com/s/183Ox9dA7KAHSgy0ol1_psA?pwd=xbj8 提取码: xbj8

mac: https://pan.baidu.com/s/1NaLQIgsAm4U1pAIAAl762g?pwd=bp7v 提取码: bp7v

linux:https://pan.baidu.com/s/1MnGuFgQYn9HlYlyfmrIitg?pwd=yecm 提取码: yecm

google网盘:

windows:https://drive.google.com/file/d/14UkIeDUSc7HGgl-Xoi0eye1PcPzu6ZyY/view?usp=sharing

mac:https://drive.google.com/file/d/1BKFgg2ra8x-yrjJzWJeDc2LVp81mL-JG/view?usp=sharing

linux:https://drive.google.com/file/d/1BKFgg2ra8x-yrjJzWJeDc2LVp81mL-JG/view?usp=sharing

系统镜像网站:

https://next.itellyou.cn/