pwn环境搭建

一直用的学姐给的pwn虚拟机,插件修修补补总是出点小问题,干脆之间从零开始配一台虚拟机吧,这篇文章用来记录一下配置的过程

版本:Ubuntu 24.04

前置条件

请确保安装好VMware(网上有很多教程,这里就不做演示了)注意最好一次性装好,不然就会出现很多奇奇怪怪的bug

下载Ubuntu 22.04的镜像文件:https://ubuntu.com/download/desktop官网下载即可

前期配置过程可以参考这篇文章[★pwn 22.04环境搭建保姆级教程★_pwn环境搭建-CSDN博客](https://blog.csdn.net/j284886202/article/details/134931709#:~:text=本文从零开始演示了Ubuntu 22.04虚拟机的搭建过程,包括VM和镜像的下载安装,还介绍了可能出现的git clone和pip错误的解决办法,以及工具的安装。 此外,详细说明了vim、窗口、壁纸和终端的美化方法,最后提醒勤用快照,未来会更新到Ubuntu 24.04。 摘要生成于,C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 > 搭建好后的完整环境百度网盘(提取码yxxx))

vmtool

在完成上述操作之后,我们应该已经获得一台Ubuntu虚拟机了但是还缺少方便的与主机交互的功能,我们需要安装一个vmtool使得虚拟机和主机能够共享剪切板,可复制粘贴文字或单个文件

可以选择解压软盘中的vmtool也可以选择安装 open-vm-tools,只需要命令行操作即可,我选择的是安装 open-vm-tools

终端执行下方指令

1
2
3
4
sudo apt update
sudo apt install open-vm-tools open-vm-tools-desktop
sudo systemctl daemon-reload
sudo systemctl restart open-vm-tools

遇到[Y/N]输Y回车即可

下载完之后关闭虚拟机,打开编辑虚拟机设置,打开选项,开启共享文件夹,客户机隔离中启用拖放和启用复制粘贴都勾上。

1

再启动虚拟机即可让主机与虚拟机共享剪切版,复制粘贴文件和文字,有时候拖拽还是会有点小问题建议复制粘贴。

在装好vmtool后发现不能将一整个文件夹复制到虚拟机中,很不方便,但是在我的xubuntu上就可以,所以想到了用共享文件夹来解决

共享文件夹

首先在windows主机寻找一个合适的位置创建文件夹,打开属性,点击共享,高级共享,权限,将三个选项全部勾选,然后确定

1

确定后关闭虚拟机,打开编辑虚拟机设置,选项,共享文件夹,打开总是启用,点击添加,选择我们刚刚创建的文件夹,接着点击下一步、完成即可

添加成功后如下图,会显示我们主机上文件夹的路径

1

然后点击确定,开启虚拟机,接下来要挂载文件夹

在 Linux 系统中,挂载点需要是一个已存在的目录,可以通过以下命令创建 /mnt/hgfs 目录并挂载共享文件夹:

1
2
sudo mkdir -p /mnt/hgfs
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other

执行完后我们直接搜索该路径就可以看到我们的共享文件夹了

1

之后想要将文件夹传入虚拟机,直接在主机里粘贴到该文件夹即可

汉化

一开始好像没有中文语言包,也有可能是我没注意找

1
2
sudo apt update
sudo apt install language-pack-zh-hans language-pack-zh-hans-base

可以执行命令安装一下

然后打开设置找到区域与语言(一开始应该是英文的)

1

1

地区格式这里选择汉语然后应用到整个系统

1

语言这里要把汉语拖到第一个然后应用到整个系统

1

然后重启就汉化成功了

当然也可以直接在终端操作,但是我还是喜欢图形化(菜菜)

工具安装

vim

1
sudo apt install vim

gcc

1
sudo apt install gcc

python3-pip

1
sudo apt install python3-pip

pipx

1
2
sudo apt install pipx
pipx ensurepath

建议在装工具前建一个pwn文件夹专门来放pwn相关工具,这样会好看一点。

pwntools

1
pipx install pwntools

checksec

1
sudo apt install checksec

这个checksec是横向显示的我有点用不习惯,就用了之前找的一个版本的checksec,但是找不到网址了只有本地有。

本地的checksec是checksec.sh先给文件添加可执行权限,再创建软链接

1
2
3
4
5
# 1. 给脚本添加可执行权限(假设脚本位于当前目录)
chmod +x checksec.sh

# 2. 创建软链接到 /usr/local/bin/ 目录(需要管理员权限)
sudo ln -s "$(realpath checksec.sh)" /usr/local/bin/checksec

要在checksec.sh存放的目录下运行

1

随便拿一个测试一下,这个主要是竖着排列的看着舒服一点,有需要的师傅可以联系我。

git

1
sudo apt install git

pwndbg

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

在安装时发现pt依赖没装上于是直接用git单独把该依赖克隆到pwndbg的文件夹,之后再运行一次setup.sh就成功安装pwndbg了

ipython

1
pipx install ipython

LibcSearcher

1
2
3
4
5
cd ~/
git clone https://github.com/lieanu/LibcSearcher.git
cd LibcSearcher
sudo python3 setup.py develop
cd ..

qemu

1
sudo apt-get install qemu-user qemu-system 

gdb-multiarch

1
sudo apt-get install gdb-multiarch

ROPgadget

1
2
3
4
5
6
sudo apt update
sudo apt install python3-capstone
cd tools
git clone https://github.com/JonathanSalwan/ROPgadget.git
cd ROPgadget
sudo python3 setup.py install

seccomp-tools

1
2
sudo apt install gcc ruby-dev
sudo gem install seccomp-tools

patchelf

1
sudo apt install patchelf

one_gadget

1
2
3
sudo apt install ruby
sudo apt install ruby-dev
sudo gem install one_gadget

tqdm

1
sudo apt install python3-tqdm

cpwn

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

目前好像因为pip的原因没装上

ARM软件包

具备ARM交叉编译gcc与ARM程序动态链接库

1
2
sudo apt-get install gcc-arm-linux-gnueabi
sudo apt-get install gcc-aarch64-linux-gnu

MIPS软件包

1
2
3
4
sudo apt-get install gcc-mips-linux-gnu
sudo apt-get install gcc-mipsel-linux-gnu
sudo apt-get install gcc-mips64-linux-gnuabi64
sudo apt-get install gcc-mips64el-linux-gnuabi64