Pwn环境部署:

1、背景:

​ 首先是在最开始的时候装环境此次碰壁,搞得没心思写这篇博客,其次,又因为虚拟机本身的问题,导致我对虚拟机有很强的不满,所以我最开始没有写这篇博客,但是,转念一想,为什么我必须得执着于 虚拟机呢?不是同样都是Linux吗,为啥我不直接采用 WSL 来部署 Pwn 环境呢?所以,这里我选择了重装了下 Pwn 环境,不过,因为我装好很大一部分之后才想起来记录博客,所以我只会把前面的内容简单记录一下,不进行二次实操了。

​ WSL的安装我就不详细进行说明了,这个挺无脑的。

2、基础工具:

<1>Vim:

​ 我想,大部分的 Ubuntu 似乎都已经装好了,不过似乎听说有的没有,不过贴一个源码过来:

1
sudo apt install vim

<2>git:

​ 老样子,一把梭

1
sudo apt install git

<3>GCC:

1
sudo apt install gcc

<4>python3-pip:

1
sudo apt install python3-pip

<5>qemu:

​ QEMU是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以GPL许可证分发源码的模拟处理器,在GNU/Linux平台上使用广泛,个人感觉还可以但是依旧没有卵用,照样用命令一把梭哈

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

<6>gdb-multiarch:

​ 用作gdb客户端进行调试,是任何架构的通用客户端

1
sudo apt-get install gdb-multiarch

3、Pwn工具:

<1>pwntools、checksec、ROP_gadget:

​ 我采用的是python3,所以使用,这三个工具似乎直接就通过这个命令一起安装了:

1
pip3 install pwntools -i https://pypi.tuna.tsinghua.edu.cn/simple

<2>Pwndbg,peda,gef:

1
2
3
4
git clone https://github.com/pwndbg/pwndbg.git
//下面两个是可选的
#git clone https://github.com/longld/peda.git
#git clone https://github.com/hugsy/gef.git

​ 我在这里成功猜了个坑,不知道为啥,现在想要安装 pwndbg 的时候出现了一个很恶心的问题,就是要安装一个 Poetry 的东西,这个很恶心人,遇到了个换源才能解决的问题,没错,我魔法上网都没用的恶心人的问题。依次执行如下命令:

1
2
3
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
cd pwndbg
./setup.sh

​ 安装的速度很慢,需要耐心等待。如果只安装一个 pwndbg 的话,那么在执行完 ./setup.sh 之后就可以不用进行后续操作了。

​ 之后安装插件:

1
sudo pip install keystone-engine ropper keystone-engine

​ 在修改下面的文件:

1
sudo vim ~/.gdbinit

​ 把下面的内容粘贴进去:

1
2
3
4
5
6
## vim后在文件内输入下方横线中内容,选择三个插件其中一个,另外两个注释掉,保存退出
-------------------------------------------------------------------------
source /home/hollk/tools/pwndbg/gdbinit.py
#source /home/hollk/tools/peda/peda.py
#source /home/hollk/tools/gef-dev/gef.py
-------------------------------------------------------------------------

<3>one_gadget:

​ 在ctf-pwn中大部分情况需要获得远程shell,one_gadget会自动查找ELF文件中的execve(‘/bin/sh’, NULL, NULL),通过exploit实现RCE(远程代码执行)

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

<4>seccomp-tools:

​ 分析沙盒的工具:

1
sudo gem install seccomp-tools

<5>LibcSearcher:

1
2
3
git clone https://github.com.cnpmjs.org/lieanu/LibcSearcher.git
cd LibcSearcher
sudo python3 setup.py install

<6>patchelf

​ PatchELF是一个用于修改现有ELF可执行文件和库的简单实用程序

1
sudo apt install patchelf

4、VSCode与WSL

​ 首先,需要下载一个 VSCode,然后下载WSL插件,之后,在左下角新建连接的时候,在上方中间选择用发行版连接WSL,之后在左边资源管理器选择文件夹,选择我们的home文件夹下的用户文件夹即可。之后就可以在里面编辑文件以及可以打开新的终端,我们就可以结合Windows的方便性和Linux的环境进行做题了。

​ 遇到权限问题,直接采用赋予权限的方式解决,无法解决那就换文件。

参考文章:

★pwn 22.04环境搭建保姆级教程★