WSL安装pwn环境
安装WSL
步骤
首先,摁下win在搜索栏中搜索 功能,在弹出的窗口下滑找到适用于Linux的Windows子系统和虚拟机平台这两项,并且勾选,随后重启电脑。
随后,打开windows自带的Microsoft store里,搜索想要的linux发行版本,这里我下载的是ubunutu 20.04版本,点击下载,下载后打开,输入你的名称和密码。
或者直接用 PowerShell(ctrl+shift+enter进入管理者模式) 命令安装:
wsl --install -d Ubuntu-20.04 |
安装完成后,ubuntu 并进行初始化。
可能遇到的问题
在安装完后,打开wsl,可能出现
Installing,this may take a few minutes.. |
这个原因是内核没有更新,只需要用 PowerShell(ctrl+shift+enter进入管理者模式)输入
wsl --update |
更新后再打开即可。
这部分可以看Windows11安装WSL2_哔哩哔哩_bilibili这位师傅的教程
兼容32位
wsl默认是 64 位环境,并且不兼容 32 位,所以要先配置 32 位环境.
依次输入
sudo dpkg --add-architecture i386 |
基本工具
windows terminal
直接去Microsoft Store搜索
https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701
gdb
sudo apt install gdb |
vim
sudo apy install vim |
pip
sudo apt install python3 python3-pip python3-dev |
其他配置
这里我用的是一步一步配置wsl2 for pwn - Ltfall’s Code这位师傅脚本
这位师傅使用的是roderick
师傅的脚本,并进行了一些自定义配置。将其命名为install.sh
,使用普通用户权限安装而不是root
用户,不要加sudo
!
#!/bin/bash |
seccomp-tools
紧接着上一脚本,就已经装好了seccomp-tools,但我在这里还是贴一下一般的安装方法
sudo apt install gcc ruby-dev |
one_gadget
类似于seccomp-tools,one_gadget也是ruby里下载的,但是这里的版本过高,所以我下载的是旧版本的one_gadget,过程如下
sudo gem install one_gadget |
报错:
ERROR: Error installing one_gadget: |
根据报错,输入
sudo gem install elftools -v 1.2.0 |
再次下载one_gadget,还是报错但是原因不同
sudo gem install one_gadget |
修改下载命令
sudo gem install one_gadget -v 1.9.0 |
Fetching elftools-1.1.3.gem |
成功
ropper
得益于上述脚本的帮助,这里我们直接使用pip来下载ropper
pip3 install ropper |
接下来的准备
接下来的工具基本上都要用git克隆github上的项目,所以我们输入
sudo -i |
进入root模式,再输入vim /etc/hosts
,
添加上
140.82.114.3 github.com |
ROPgadget
git clone https://github.com/JonathanSalwan/ROPgadget.git |
这里可能会出现如下报错
~$ ROPgadget |
这里我们需要在ROPgadget的文件夹内输入
sudo cp -r scripts /usr/local/lib/python3.8/dist-packages/ROPGadget-7.6.dist-info |
注意点是:这里的/usr/local/lib/python3.8/dist-packages/ROPGadget-7.6.dist-info
是不一样的,要修改成你报错里面的地址。
ROPgadget安装及报错解决 - dotExp - 博客园我看的是这位师傅的教程
pwntools
sudo apt-get update |
没什么问题
libcsearcher
git clone https://github.com/lieanu/LibcSearcher.git |
没什么问题
glibc-all-in-one
git clone https://github.com/matrix1001/glibc-all-in-one.git |
执行完sudo python3 update_list
后,查看list就可以知道是否下载成功了
patchelf
git clone https://github.com/NixOS/patchelf.git |
如果./bootstrap.sh
报错,可以加上chmod 777 bootstrap.sh
后再试一次,或者输入sudo apt-get install autoconf automake libtool
pwndbg
最重量级的一个,其他的报错加起来没这个多
git clone https://github.com/pwndbg/pwndbg |
先执行这三部,再输入vim ~/.gdbinit
,再gdbinit里输入source /home/用户名/pwndbg/gdbinit.py
,
进行测试,输入gdb
,发现
报错提示我们 Cannot find Pwndbg virtualenv directory: /home/pwn/pwndbg/.venv. Please re-run setup.sh
这里我看了这位师傅kali-pwndbg遇到的问题(已解决,亲测有效)_kali安装pwndbg-CSDN博客和ai的处理解决了,
上述博客的师傅指出:
这很有可能是因为安装pwndbg时出现了Creating virtualenv in path: ./.venv ./setup.sh: 行 211: /usr/bin/python3.12: 没有那个文件或目录这句话。
说明你的python3版本不是3.12版本,需要安装python3.12版本。
我们再查看输入./setup.sh的提示
$ ./setup.sh |
看到最后两句,所以我们的解决办法是:
切换到支持Python 3.8的pwndbg分支:
git checkout 2024.08.29
清理之前的安装环境(避免旧文件干扰):
rm -rf venv
执行
./setup.sh
但是这个时候仍旧是不行的,显示如下报错
Installing Poetry (2.1.1): An error occurred. Removing partial environment. |
查看具体日志文件 /home/cst/pwndbg/poetry-installer-error-lf5oq39m.log
发现:
ERROR: Could not find a version that satisfies the requirement poetry==2.1.1 (from versions: 0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.4.0.post1, 0.4.1, 0.4.2, 0.5.0b1, 0.5.0b2, 0.5.0, 0.6.0, 0.6.1, 0.6.2, 0.6.3b1, 0.6.3b2, 0.6.3b3, 0.6.3b4, 0.6.3b5, 0.6.3b6, 0.6.3b7, 0.6.3, 0.6.4b1, 0.6.4, 0.6.5, 0.7.0b1, 0.7.0b2, 0.7.0b3, 0.7.0b4, 0.7.0, 0.7.1, 0.8.0a0, 0.8.0a1, 0.8.0a2, 0.8.0a3, 0.8.0a4, 0.8.0, 0.8.1a0, 0.8.1, 0.8.2, 0.8.3, 0.8.4, 0.8.5a0, 0.8.5, 0.8.6, 0.9.0a0, 0.9.0a1, 0.9.0a2, 0.9.0a3, 0.9.0, 0.9.1, 0.10.0a0, 0.10.0a1, 0.10.0a2, 0.10.0a3, 0.10.0, 0.10.1, 0.10.2, 0.10.3, 0.11.0a0, 0.11.0a1, 0.11.0a2, 0.11.0a3, 0.11.0a4, 0.11.0, 0.11.1, 0.11.2, 0.11.3, 0.11.4, 0.11.5, 0.12.0a0, 0.12.0a1, 0.12.0a2, 0.12.0a3, 0.12.0a4, 0.12.0a5, 0.12.0, 0.12.1, 0.12.2, 0.12.3, 0.12.4, 0.12.5, 0.12.6, 0.12.7, 0.12.8, 0.12.9, 0.12.10, 0.12.11, 0.12.12, 0.12.13, 0.12.14, 0.12.15, 0.12.16, 0.12.17, 1.0.0a0, 1.0.0a1, 1.0.0a2, 1.0.0a3, 1.0.0a4, 1.0.0a5, 1.0.0b1, 1.0.0b2, 1.0.0b3, 1.0.0b4, 1.0.0b5, 1.0.0b6, 1.0.0b7, 1.0.0b8, 1.0.0b9, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.0.6, 1.0.7, 1.0.8, 1.0.9, 1.0.10, 1.1.0a1, 1.1.0a2, 1.1.0a3, 1.1.0b1, 1.1.0b2, 1.1.0b3, 1.1.0b4, 1.1.0rc1, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 1.1.6, 1.1.7, 1.1.8, 1.1.9, 1.1.10, 1.1.11, 1.1.12, 1.1.13, 1.1.14, 1.1.15, 1.2.0a1, 1.2.0a2, 1.2.0b1, 1.2.0b2, 1.2.0b3, 1.2.0rc1, 1.2.0rc2, 1.2.0, 1.2.1, 1.2.2, 1.3.0, 1.3.1, 1.3.2, 1.4.0, 1.4.1, 1.4.2, 1.5.0, 1.5.1, 1.6.0, 1.6.1, 1.7.0, 1.7.1, 1.8.0, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5) |
ubuntu20.04没有2.1.1这个版本,这里再看这位师傅的视频
时间是2024年112月poetry的版本是1.8.5,所以我们手动安装1.8.5版本的poetry
# 进入 pwndbg 目录 |
下载完后,输入deactivate
退出venv模式,再次输入gdb,即可。
后记:牢死我了,这辈子不想再配环境了。