Pwn虚拟环境搭建

1. ubuntu虚拟机创建(网上安装很多)

image-20241109113610155image-20241109113726312

image-20241109113742254image-20241109113800020

image-20241109113916784image-20241109113934706

image-20241109114010825image-20241109114028416

image-20241109114046270image-20241109114115635

image-20241109114203103 image-20241109114233201

image-20241109114247060 image-20241109114300256

image-20241109114655972 image-20241109114743408

image-20241109114849627 image-20241109181557789

image-20241109181635568 image-20241109181841406

image-20241109181901476 image-20241109181951234 image-20241109182010840 image-20241109182059270 image-20241109182115024 image-20241109182139318 image-20241109182936288 image-20241109183046554

2.安装各种工具

image-20241109184224227

1. 设置root账户

sudo 命令执行 passwd 命令:

1
sudo passwd root

随后输入你希望设置的 root 密码,即可完成设置。

image-20241109184326984

2. git安装

sudo apt install git

image-20241109192642764

3. curl安装

sudo snap install curl

4. vim安装

sudo apt install vim

5.gcc安装

sudo apt install gcc

image-20241109185157492

6. python3-pip安装

sudo apt install python3-pip

image-20241109185343365

7. qume安装

sudo apt-get install qemu-user qemu-system

image-20241109191413913

8. gdb-multiarch安装

sudo apt-get install gdb-multiarch

image-20241109191749955

9. pwn工具安装

先给pwn创建一个文件夹。然后再创建一个tools文件夹

1
2
3
4
5
cd ~
mkdir PWN
cd PWN
mkdir tools
cd tools

image-20241109192212855

1. pwntools安装
1
2
git config --global --unset http.proxy
git config --global --unset https.proxy

image-20241109192739030

下面第三行指令,pip安装会有环境依赖相关的警告。这里把警告给删了:

1
sudo mv /usr/lib/python3.x/EXTERNALLY-MANAGED /usr/lib/python3.x/EXTERNALLY-MANAGED.bk

这里的x我们换成12,需要和本机python环境匹配

image-20241109193340960image-20241109193626875

1
2
3
git clone https://github.com/Gallopsled/pwntools.git
sudo apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential
python3 -m pip install --upgrade pwntools

image-20241109194108499

image-20241109194151137

image-20241109194316372

image-20241109201820328

2. pwndbg安装
1
2
3
git clone https://github.com/pwndbg/pwndbg.git
cd ~/PWN/tools/pwndbg
./setup.sh

image-20241109202348333

image-20241109202548593

插件依赖安装

1
sudo pip install keystone-engine ropper keystone-engine
image-20241110102859718

gdb挂在插件:

1
sudo vim ~/.gdbinit

gdbinit内容:

image-20241110103531427

执行gdb查看挂载是否成功:

image-20241110112222164

3.ROPgadget安装
1
2
3
4
5
cd PWN/tools
sudo pip3 install capstone
git clone https://github.com/JonathanSalwan/ROPgadget.git
cd ROPgadget
sudo python3 setup.py install

image-20241110113022648

image-20241110113204264

4. seccomp-tools安装
1
2
sudo apt install gcc ruby-dev
sudo gem install seccomp-tools

image-20241110113454289

5. patchelf 安装
1
sudo apt install patchelf

image-20241110113722981

6. ARM软件包

具备ARM交叉编译gcc与ARM程序动态链接库

1
2
sudo apt-get install gcc-arm-linux-gnueabi
sudo apt-get install gcc-aarch64-linux-gnu

image-20241110113920672

7. MIPS软件包
1
2
3
4
sudo apt-get install gcc-mips-linux-gnu
sudo apt-get install gcc-mipsel-linux-gnu
sudo apt-get install gcc-mips64-linux-gnuabi64
sudo apt-get install gcc-mips64el-linux-gnuabi64

image-20241110114405319

3. 美化

1. 安装 zsh
1
sudo apt-get install zsh

image-20241110114919709

检查shell配置:

1
cat /etc/shells

image-20241110115135743

zsh设置为系统默认 shell

1
chsh -s /bin/zsh

image-20241110115324580

执行完之后重启ubuntu

image-20241110115421167

重启后新开一个 Shell Session,输入0

image-20241110115848752

2. 安装 oh-my-zsh

使用 oh-my-zsh 来修改 zsh 的主题和安装常用的插件

使用 curl 下载脚本并安装:

1
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

如果安装报错。“Error: git clone of oh-my-zsh repo failed”。

image-20241110121607539

则根据下面的内容修改:

先下载云安装包:

1
wget https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh

image-20241110121631849

编辑install.sh

1
vim install.sh

image-20241110122048271

找到以下部分:

1
2
3
4
5
# Default settings
ZSH=${ZSH:-~/.oh-my-zsh}
REPO=${REPO:-ohmyzsh/ohmyzsh}
REMOTE=${REMOTE:-https://github.com/${REPO}.git}
BRANCH=${BRANCH:-master}

1
2
REPO=${REPO:-ohmyzsh/ohmyzsh}
REMOTE=${REMOTE:-https://github.com/${REPO}.git}

替换为:

1
2
REPO=${REPO:-mirrors/oh-my-zsh}
REMOTE=${REMOTE:-https://gitee.com/${REPO}.git}

image-20241110122019533

编辑后保存

运行前先给install.sh权限

1
chmod 777 install.sh

image-20241110122621749

执行完运行安装即可

image-20241110122740806

3. 修改主题

我使用powerlevel10k 主题

oh-my-zsh 安装这个款主题的方法:

使用 git 将文件 clone 只指定文件夹 ~/.oh-my-zsh/custom/themes/powerlevel10k ,命令如下:

1
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

使用 vim 编辑 .zshrc,键入以下内容并保存:

1
ZSH_THEME="powerlevel10k/powerlevel10k"

image-20241110123807311

image-20241110123618298

执行 source ~/.zshrc 配置生效,这时会提示对主题进行配置,按照提示进行即可。

4. 插件
1
2
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

zsh-autosuggestions是一个命令提示插件,,当你输入命令时,会自动推测你可能需要输入的命令,按下右键可以快速采用建议。

zsh-syntax-highlighting 是一个命令语法校验插件,在输入命令的过程中,若指令不合法,则指令显示为红色,若指令合法就会显示为绿色

z 是一个文件夹快捷跳转插件,对于曾经跳转过的目录,只需要输入最终目标文件夹名称,就可以快速跳转,避免再输入长串路径,提高切换文件夹的效率。

修改配置文件vim .zshrc

1
2
3
4
5
6
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
z
)

执行 source ~/.zshrc

4. 创建共享文件夹

1. 虚拟机设置

在关机模式中操作

image-20241112143153329 image-20241112143302987 image-20241112143439318
2. 创建 hgfs 目录:
1
sudo mkdir /mnt/hgfs
3. 挂载共享目录
1
sudo /usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=1000 -o gid=1000 -o umask=022
3. 设置开机自动挂载
1
sudo vim /etc/fstab

文件最后面插入

1
.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,uid=1000,gid=1000,umask=022 0 0
4. 创建桌面快捷方式
1
2
3
命令:ln -s [绝对路径] ~/桌面/Name
sudo ln -s /mnt/hgfs/DataShare4Linux/ ~/Desktop/DataShare
(DataShare4Linux换成自己文件夹的名字)

5. 遇到的问题

1. 重启后卡住

ctrl + alt呼出鼠标关闭VM软件(不要在任务管理器中结束任务)

image-20241109184047099
2. 换源

!!!在安装pwngdb时执行到./setuo.sh卡住,大概率是由于网络的问题,所以建议进入系统后优先进行换源。

打开「软件和更新」,切换到「Ubuntu 软件」选项卡。

在「下载自」下拉列表中,选择「其他」。

点击「选择最佳服务器」自动测试并替换最优软件源。

或者在「中国」列表中手动指定软件源,推荐选择:

阿里云 mirrors.aliyun.com
腾讯云 mirrors.cloud.tencent.com
华为云 mirrors.huaweicloud.com

image-20241110104753479

执行sudo apt-get update && sudo apt-get upgrade更新软件包

3. zsh: command not found

执行

1
vim ~/.zshrc

找到 “# User configuration”

在其下面添加下面内容

1
source ~/.profile

如果没有’# User configuration’,就直接把上面内容添加到 ~/.zshrc 里面

在终端里执行

1
source ~/.zshrc
4. ROPgadget安装报错

运行GOPgadget报错#
运行之后可能会发现报错

1
2
3
4
5
6
7
8
Traceback (most recent call last):
File "/usr/local/bin/ROPgadget", line 4, in <module>
__import__('pkg_resources').run_script('ROPGadget==6.6', 'ROPgadget')
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 658, in run_script
self.require(requires)[0].run_script(script_name, ns)
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 1429, in run_script
.format(**locals()),
pkg_resources.ResolutionError: Script 'scripts/ROPgadget' not found in metadata at '/usr/local/lib/python3.6/dist-packages/ROPGadget-6.6.dist-info'

解决

1
sudo cp -r scripts /usr/local/lib/python3.6/dist-packages/ROPGadget-6.6.dist-info

scripts后面复制之前报错中最后显示的路径复制到上面的路径中

5. ubuntu24进入后黑屏卡住

先关闭3D图形加速功能,重启进入Ubuntu桌面,调出终端,执行更新命令

1
2
3
sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo apt update
sudo apt upgrade

更新完成后,打开3D图形加速功能,重启Ubuntu。

6. 解决vmware虚拟机启动失败:指定的磁盘需要修复,打不开磁盘:“”或它所依赖的某个快照磁盘
  1. 删除以 .lck 结尾的文件。

  2. 在虚拟机目录为之内找到以下几个文件,.vmdk文件是需要修复的文件

    image-20241111222755697

在上述文件目录中输入cmd,在弹出的终端内输入 vmware-vdiskmanager -R "待修复.vmdk文件名"

7. 安装完pwntools后命令行checksec无法调用

添加环境变量 ~/.local/bin.bashrc

1
2
vim .zshrc
export PATH=$PATH:~/.local/bin

整体配置参考:2024最新pwn环境配置

参考视频:2024最新pwn环境配置与基础讲解

美化参考:利用zsh+oh-my-zsh+powerlevel10k为Linux终端配置一个漂亮的shell