Ubuntu_Server搭建pwn环境.md

本文最后更新于:2025年12月22日 下午

整点烂活()

0.整了什么活

起因是因为在软件安全原理课上小组讨论的时候小组里大佬说了一个Server作为pwn环境的思路,于是决定也搭建一个。

这篇博客安装的是Ubuntu Server,没有图形界面,所以不建议新手安装,更适合那些老pwn手参考。如果是刚接触pwn的大一萌新那还是算了吧()。对于高年级本科生或者是研究生想接触pwn的可以尝试我的方法,但是也建议和其他环境搭建博客一同配合食用。

我还在一点点的安装这些软件,目前文章还没有更新完。

1.Server安装

下载Ubuntu Server 24.04镜像。正常在VMware里安装即可

注意我在下面几个选项的选择:

  1. SSH那里一定要安装
  2. 网络配置那里选择默认的DHCP即可
  3. 安装的时候可以选择最小化安装,但是我还是选择标准模式

基本就这些。之后会提醒你重启,重启后你会发现ubuntu server是自带tmux的,非常香。

之后可以用apt安装一个net-tools,名字我也记不清了,主要是用一下ifconfig,没安装的话执行一下ifconfig就有提示了。抄一下ip然后去mobaXterm远程链接上。这样可以解决文件传输的问题。

mobaXterm 可以再安装,这里不再赘述。注意MobaXterm的ctrl+c不是复制,选中就是复制了。粘贴可以去setting-Keyboard shortcuts里修改为ctrl+v。也可以右键粘贴。

2.终端与vscode配置

tmux 安装

因为以后都是通过终端和linux打交道了所以一定要把终端做的漂漂亮亮的()

参考了博客:Linux 终端美化

tmux 鼠标支持

tmux需要分屏,如果没有鼠标会很麻烦。

1
sudo apt-get install gpm

安装之后就有鼠标支持了。

zsh 安装

zsh与oh-my-zsh的安装

zsh 安装与配置,使用 oh-my-zsh 美化终端

改完之后记得在tmux配置文件里修改默认终端

1
set-option -g default-shell /bin/zsh

终端启动选项

可以在/home/$user下($user是你的用户名)的.bashrc文件(如果你装了zsh则是.zshrc)尾处追加命令,让你的终端启动的时候默认执行一些命令(如默认启动后面的pwn虚拟环境,开启tmux)

VScode ssh链接

这里要安装一个ssh扩展,很简单,去ifconfig看一下虚拟机ip就行了。

VScode链接服务器一直卡在下载vscode服务器/scp上传服务器,无法连接成功

这个可以解决vscode无法连接上远程服务器的问题。

3.虚拟环境

1
python3 -m venv pwnenv

提示说需要apt安装 python3.12-venv ,安装就行了。

1
source ./pwnenv/bin/activate

执行该命令即可进入虚拟环境,想退出时执行deactivate就行了。

4.pwn全家桶

pwntools

1
pip install pwntools

注意先给pip换源(我换的清华源),apt也换一下记得。

gdb/pwndbg

ubuntu server居然没有gdb,需要自己apt装一个。

1
sudo apt install gdb

ROPgadget

1
python3 -m pip install ROPgadget

one_gadget

1
2
sudo apt -y install ruby
sudo gem install one_gadget

seccomp-tools

需要安装给ruby-dev依赖
这里顺便给gem换了一下清华源

1
2
3
4
5
6
gem sources --add https://mirrors.tuna.tsinghua.edu.cn/rubygems/ --remove https://rubygems.org/
gem sources -l
gem sources -u

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

patchelf

1
sudo apt-get install patchelf

glibc-all-in-one

1
git clone https://github.com/matrix1001/glibc-all-in-one.git

QEMU

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

ARM交叉编译工具链

arm-linux-gnueabihf-gcc

1
2
sudo apt-get install gcc-arm-linux-gnueabihf
sudo apt-get install g++-arm-linux-gnueabihf

执行命令:arm-linux-gnueabihf-xxx,如arm-linux-gnueabihf-gcc

还有aarch64的工具

1
sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu

执行命令同上aarch64-linux-gnu-xxx

gdb-multiarch

1
sudo apt-get install gdb-multiarch

ARM架构使用ROPgadget

高版本的capstone更改了一些全局变亮,出现了一些报错:

1
NameError: name 'CS_ARCH_ARM64' is not defined. Did you mean: 'CS_ARCH_ARM'?

对策是回退capstone版本,我回退到了5.0.1,即ROPgadget支持的最低版本。

docker

1


Ubuntu_Server搭建pwn环境.md
http://example.com/2025/11/15/Blog/Pwn/pwn note/环境搭建/Ubuntu_Server搭建pwn环境/Ubuntu_Server搭建pwn环境/
作者
Jmp.Cliff
发布于
2025年11月15日
许可协议