pwn学习笔记(0)-事后补充
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 | git clone https://github.com/pwndbg/pwndbg.git |
我在这里成功猜了个坑,不知道为啥,现在想要安装 pwndbg 的时候出现了一个很恶心的问题,就是要安装一个 Poetry 的东西,这个很恶心人,遇到了个换源才能解决的问题,没错,我魔法上网都没用的恶心人的问题。依次执行如下命令:
1 | pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple |
安装的速度很慢,需要耐心等待。如果只安装一个 pwndbg 的话,那么在执行完 ./setup.sh 之后就可以不用进行后续操作了。
之后安装插件:
1 | sudo pip install keystone-engine ropper keystone-engine |
在修改下面的文件:
1 | sudo vim ~/.gdbinit |
把下面的内容粘贴进去:
1 | ## vim后在文件内输入下方横线中内容,选择三个插件其中一个,另外两个注释掉,保存退出 |
<3>one_gadget:
在ctf-pwn中大部分情况需要获得远程shell,one_gadget会自动查找ELF文件中的execve(‘/bin/sh’, NULL, NULL),通过exploit实现RCE(远程代码执行)
1 | sudo apt install -y ruby ruby-dev |
<4>seccomp-tools:
分析沙盒的工具:
1 | sudo gem install seccomp-tools |
<5>LibcSearcher:
1 | git clone https://github.com.cnpmjs.org/lieanu/LibcSearcher.git |
<6>patchelf
PatchELF是一个用于修改现有ELF可执行文件和库的简单实用程序
1 | sudo apt install patchelf |
4、VSCode与WSL
首先,需要下载一个 VSCode,然后下载WSL插件,之后,在左下角新建连接的时候,在上方中间选择用发行版连接WSL,之后在左边资源管理器选择文件夹,选择我们的home文件夹下的用户文件夹即可。之后就可以在里面编辑文件以及可以打开新的终端,我们就可以结合Windows的方便性和Linux的环境进行做题了。
遇到权限问题,直接采用赋予权限的方式解决,无法解决那就换文件。