我用的环境是纯净的wsl的kali-linux子系统,什么也没有,接下来我们开始一步步搭建pwn环境,默认带的Python是3.12.7,建议读者也下载和我一样的python版本,避免后续环境由于版本不同出现问题
换源
终端输入
sudo vim /etc/apt/sources.list
输入”i”,出现INSERT字样,此时可以插入
将下面内容任选其一复制进去,并将原本内容注释掉
中科大Kali镜像源
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free non-free-firmware contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free non-free-firmware contrib
阿里云Kali镜像源
deb http://mirrors.aliyun.com/kali kali-rolling main non-free non-free-firmware contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free non-free-firmware contrib
清华大学Kali镜像源
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free non-free-firmware
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free non-free-firmware
最后摁esc、冒号、wq退出
最后sudo apt update,sudo apt upgrade更新一下
修改python软连接(可选)
由于我个人习惯直接python而不是python3,所以我选择修改一下python的默认软连接
先查看一下,可以看到我压根就没有python2,只有一个python3
这个时候输入
sudo ln -s /usr/bin/python3 /usr/bin/python
再次查看已经有了
pip换源
切换根用户,进入根目录,查看一下隐藏文件,发现没有.pip文件夹
手动建一个,输入
mkdir /.pip #这个是在 / 目录下创建而不是 ~ 目录
cd / #进入 / 目录
la
vim pip.conf #创建配置文件
配置文件的内容如下
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
[install]
trusted-host=https://pypi.tuna.tsinghua.edu.cn
和上面一样的方式保存退出,查看一下,确保写进去了
安装gdb
cd+空格回到~目录
直接输入
sudo apt install gdb
等待安装完毕即可
安装pwntools
首先创建一个tools文件夹,之后的工具我们都放到这里面
mkdir tools
cd tools
pip install pwntools -i https://pypi.tuna.tsinghua.edu.cn/simple/ # -i 指定源
提示我没有pip,按照提示安装一下即可
安装完后遇到报错
找到解决方案https://blog.csdn.net/qq_25439417/article/details/139485697,我用了文章里的方案一,直接暴力删掉,再次执行就好啦
下载完毕,最后验证一下
没有报错就是安装成功了
安装pwncli
cd ~/tools
git clone https://github.com/RoderickChan/pwncli.git
cd ./pwncli
sudo pip3 install --editable .
有个警告,问一下AI,根据AI说的去改一下就没有了
安装pwndbg
这里就涉及到用梯子了,自行研究,没有梯子很难装好的
进入tools目录下,终端输入
cd ~/tools
git clone https://github.com/pwndbg/pwndbg.git
cd pwndbg
sudo ./setup.sh
这里停留的时间比较长
执行失败了的话就多执行几次
连接错误,再重跑一次就行了
我一共是跑了三遍,最终成功后长这样
最后验证一下,没有问题,如果有问题的话就vim ~/.gdbinit,看一下里面的东西,没有东西就把
source ~/tools/pwndbg/gdbinit.py #你的路径
加进去,再次看一下gdb,应该就没问题了
安装pwngdb(和上面是两个东西哦)
cd ~/tools
git clone https://github.com/scwuaptx/Pwngdb.git
vim ~/.gdbinit
然后再gdbinit里面输入
source ~/tools/Pwngdb/pwngdb.py
source ~/tools/Pwngdb/angelheap/gdbinit.py
保存退出,再次运行gdb,在里面输入heapinfo,出现如下界面则证明安装成功
安装peda
cd ~/tools
git clone https://github.com/longld/peda.git
这里由于网络问题一直克隆不下来,所以直接到github上把压缩包下下来拖到wsl里面解压即可
这块后面也没怎么配好,但是也没啥用了,有gdb和dbg就够用
安装LibcSearcher
这个工具我本身不是很喜欢,因为每次跑脚本他都要联网搜索,有的时候还搜不到,所以我基本不用他了,有这时间还不如联网找一下libc-database
对这个工具感兴趣的自行搜索一下吧
安装ROPgadget
cd ~/tools
git clone https://github.com/JonathanSalwan/ROPgadget.git
cd ROPgadget/
sudo python setup.py install #我这里改过软连接所以用python跑,你没改过的话就用python3跑
等待一段时间后安装成功
安装seccomp-tools
cd ~
sudo apt install gcc ruby-dev
sudo gem install seccomp-tools
安装onegadget
sudo apt -y install ruby
sudo gem install one_gadget
安装glibc-all-in-one
这个我们装在主目录下,方便后续使用
cd ~
sudo git clone https://github.com/matrix1001/glibc-all-in-one.git
cd glibc-all-in-one/
sudo python update_list
发生报错
把request库装一下即可
sudo pip install requests
再次重新执行
执行成功后应该是这样的
安装patchelf
cd ~/tools
sudo apt install patchelf
patchelf -h #检查一下
至此,pwn环境全部搭建完毕
安装FirmAE
cd ~/tools
git clone --recursive https://github.com/pr0v3rbs/FirmAE
cd FirmAE
./download.sh
./install.sh
这个download执行的相当慢,等吧~(等了一晚上都没下完)
这条命令不要轻易ctrl+c取消掉,如果取消了需要手动吧download.sh里面的相关项给注释掉
从gdb那里开始实在是下不下来了,cat ./download.sh
摁住ctrl,点击相关网址,即可手动下载
把下载完的东西手动拖入~/tools/FirmAE/binaries
即可完成下载,其他下不下来的也可以按照同样方式操作
最后执行./install.sh即可,多跑几遍
一共有这么几个报错,我们从下到上依次解决
Error: Package ‘python’ has no installation candidate
解决方案:
sudo apt install python2
Error: Package ‘uml-utilities’ has no installation candidate
这个比较麻烦,不知道为什么kali就是找不到这个包,但这个很重要,必须要有
到阿里云镜像站下载安装包https://mirrors.aliyun.com/debian/pool/main/u/uml-utilities/
下载完之后拖到tools地下
终端进入tools文件夹下,输入
sudo dpkg -i uml-utilities_20070815.2-1_amd64.deb
发生报错,缺少依赖,那就缺啥补啥
sudo apt-get update
sudo apt-get install libfuse2
libreadline7在https://packages.debian.org/zh-cn/buster/amd64/libreadline7/download
最后再次执行sudo dpkg -i uml-utilities_20070815.2-1_amd64.deb
成功安装,有个警告不用管它
Error: Unable to locate package qt5base-dev
sudo apt update
sudo apt install qtbase5-dev
Error: Unable to locate package fusecram
这个也很麻烦,同样采用deb安装http://launchpadlibrarian.net/363148179/fusecram_20051104-0ubuntu4_amd64.deb
安装fuse-module
sudo apt-get update
sudo apt-get -y install fuse
到这卡死了,可能是因为安装的是Ubuntu的deb导致不兼容问题,我也没办法了,因为网上找不到kali的包
Building wheel for python-lzo (pyproject.toml) did not run successfully.
sudo apt install liblzo2-dev
pip install python-lzo
ERROR: pip’s dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
selenium 4.27.1 requires urllib3[socks]<3,>=1.26, but you have urllib3 1.24.3 which is incompatible.
AI查了一下说要升级
pip install --upgrade urllib3
升级完又报错,发现是request版本低了
再把requests升级一下
pip install --upgrade requests
搞定
最后执行
python3 -m pip install selenium
重新装一下
至此所有bug解决完毕
安装binwalk
sudo apt install binwalk
出现报错,于是我执行sudo pip uninstall capstone,他就莫名其妙的好了,我也不知道为啥,反正能用就行。。。
安装qemu
sudo apt-get install qemu-user-static
sudo apt-get install qemu-system
安装firmwalker
cd ~/tools
git clone https://github.com/craigz28/firmwalker
安装upx
sudo apt-get install upx
目前我能想到的东西就这么写,后面会不断更新的