快速在24.04Ubuntu搭建pwn环境

collectcrop Lv3

快速在24.04Ubuntu搭建pwn环境

打了重庆市赛时,3个pwn题有2个给了2.39glibc,据有些大师傅们说,2.39的glibc只能在24.04的Ubuntu上兼容,我也试了试用glibc-all-in-one,下2.39的glibc,但是下下来是空的。这说明原先22.04Ubuntu的环境已经不够用了,需要新建一个24.04版本的Ubuntu虚拟机来应对各种可能的做题环境。这里顺便记录下快速起pwn环境的步骤。

安装清单

1
2
3
4
5
6
7
pwntools
ROPgadget
seccomp-tools
glibc-all-in-one
patchelf
pwndbg
one_gadget

0.安装24.04Ubuntu

这里我选择wsl的安装,直接安装完成后,打开会自动进行进一步的安装以及初始化。

1. 更新系统

首先,确保你的系统是最新的:

1
sudo apt update && sudo apt upgrade -y

2. 安装基本工具

安装一些常用的开发工具和库:

1
sudo apt install -y build-essential gdb python3 python3-pip git

3. 安装 pwntools

pwntools 是 PWN 环境中常用的 Python 库,用于编写漏洞利用脚本:

1
pip3 install pwntools

可能会有报错如下:

由于 Ubuntu 24.04 使用了externally-managed-environment模式,这种模式下系统不允许直接用 pip 安装全局包。为了避免对系统 Python 环境造成破坏,所以要创建一个虚拟环境来安装 Python 包。

解决方法:使用虚拟环境

  1. 安装 python3-venvpython3-pip: 首先,确保你已经安装了 python3-venvpython3-pip,这些工具允许你创建虚拟环境并安装 pip 包。

    1
    sudo apt install python3-venv python3-pip
  2. 创建虚拟环境: 创建一个新的虚拟环境,用来安装和管理 pwntools

    1
    python3 -m venv pwnenv
  3. 激活虚拟环境: 激活虚拟环境,这样你就可以在隔离的环境中安装 Python 包了。

    1
    source pwnenv/bin/activate

    激活后,你会看到命令提示符前面会加上 (pwnenv),表示你已经进入虚拟环境。

  4. 安装 pwntools: 在虚拟环境中,你可以使用 pip 安装 pwntools 和其他需要的 Python 包。

    1
    pip install pwntools
  5. 退出虚拟环境: 使用完虚拟环境后,可以通过以下命令退出:

    1
    deactivate

使用 pipx(可选)

如果不想每次都手动激活虚拟环境,可以考虑使用 pipx 来管理独立的 Python 应用程序。pipx 会自动为我们创建虚拟环境并管理依赖。

  1. 安装 pipx

    1
    sudo apt install pipx
  2. 使用 pipx 安装 pwntools

    1
    pipx install pwntools

pipx 会自动为你创建一个虚拟环境,并在其中安装 pwntools,你可以直接运行它,而无需手动管理虚拟环境。

但这个pipx亲测太慢了!!!不推荐。

4. 安装 ROPgadget

ROPgadget 是一个用于查找 ROP 链 gadget 的工具:

1
pip3 install ropgadget

5. 安装 seccomp-tools

seccomp-tools 用于分析和利用 seccomp 过滤器:

安装 Ruby 和 RubyGems

1
sudo apt install -y ruby-full

使用 RubyGems 安装 seccomp-tools

1
sudo gem install seccomp-tools

安装完成后,可以通过以下命令验证安装是否成功:

1
seccomp-tools --version

6. 安装 glibc-all-in-one

glibc-all-in-one 包含了不同版本的 glibc,方便进行漏洞测试:

1
2
3
sudo git clone https://github.com/matrix1001/glibc-all-in-one.git
cd glibc-all-in-one/
sudo python3 update_list

7. 安装patchelf

1
2
3
git clone https://github.com/NixOS/patchelf.git
cd patchelf
./bootstrap.sh

若显示报错

1
2
3
4
5
6
sudo apt-get install autoconf automake libtool
./bootstrap.sh
./configure
make
make check
sudo make install

8. 安装 pwndbg

pwndbg 是一个为 GDB 提供增强功能的插件,它对调试 PWN 题目非常有用:

装的时候记得先切到之前建立的虚拟环境。

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

若产生如下错误,则有可能是网络连接的问题(具体的可以看日志文件)。

可以配置镜像源加速

1
2
3
mkdir -p ~/.pip
echo "[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple" > ~/.pip/pip.conf

8. 安装 one_gadget

one_gadget 是一个用来快速查找 libc 中单次调用的 RCE gadget 的工具:

1
gem install one_gadget
  • 标题: 快速在24.04Ubuntu搭建pwn环境
  • 作者: collectcrop
  • 创建于 : 2025-01-24 21:47:01
  • 更新于 : 2025-01-25 00:39:50
  • 链接: https://collectcrop.github.io/2025/01/24/快速在24-04Ubuntu搭建pwn环境/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。