从零开始的CTF Pwn环境搭建
做一个合格的Pwn手需要一套标准的作业环境,就目前所接触到的环境和题目,将Pwner所需环境进行总结汇总,记录成册以备后用。
自用Ubuntu16.04进行搭建、总结,使用Ubuntu19.04进行测试、截图。持续更新。
Pwn环境搭建清单
1.更换Ubuntu镜像下载源
2.pip
3.vim
4.32位依赖库
5.zsh/oh-my-zsh
6.gdb peda/gef/pwndbg
7.ROPgadget
8.Onegadget
9.LibcSearcher
10.Sublime Text
11.Pwntools
12.qemu
13.gdb-multiarch
1.更换Ubuntu系统下载镜像源
Ubuntu默认下载源在美国,相对速度较慢,可将其下载镜像源更换为国内镜像。
如清华大学开源软件镜像站Ubuntu镜像:mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
阿里巴巴开源镜像站:opsx.alibaba.com/mirror
我使用清华大学开源软件镜像站Ubuntu镜像,具体更换操作:
(1)备份源文件
cd /etc/apt
sudo cp sources.list sources.list.bak
(2)替换源文件:
sudo gedit sources.list
将源文件内容删除,按照自己操作系统版本更换成下列内容。效果如图:
16.04LTS
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/xenial main restricted universe multiverse
# deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/xenial main restricted universe multiverse
debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/xenial-updates main restricted universe multiverse
# deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/xenial-updates main restricted universe multiverse
debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/xenial-backports main restricted universe multiverse
# deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/xenial-backports main restricted universe multiverse
debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/xenial-security main restricted universe multiverse
# deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/xenial-security main restricted universe multiverse
# 预发布软件源,不建议启用
# debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/xenial-proposed main restricted universe multiverse
# deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/xenial-proposed main restricted universe multiverse
18.04LTS
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/bionic main restricted universe multiverse
# deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/bionic main restricted universe multiverse
debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/bionic-updates main restricted universe multiverse
# deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/bionic-updates main restricted universe multiverse
debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/bionic-backports main restricted universe multiverse
# deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/bionic-backports main restricted universe multiverse
debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/bionic-security main restricted universe multiverse
# deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/bionic-security main restricted universe multiverse
# 预发布软件源,不建议启用
# debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/bionic-proposed main restricted universe multiverse
# deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/bionic-proposed main restricted universe multiverse
2.必备软件环境安装
安装git
sudo apt-get install git
安装VIM
sudo apt-get install vim
安装完Git之后一般情况情况下,因为特定原因导致,DNS解析出现问题从而使得Git Clone 速度巨慢。解决办法:
登录网页www.ipaddress.com查找github.global.ssl.fastly.net和github.com域名对应地址:
更改DNS解析地址
sudo gedit /etc/hosts
在其最后加上所查地址:
151.101.185.194 github.global.ssl.fastly.net
192.30.253.112 github.com
保存退出,重启网卡
sudo /etc/init.d/networking restart
3.Zsh 与 Oh-My-Zsh 安装与插件安装
Ubuntu19.04自带Bash截图,相比于前几版本已经好看许多。但是还是不如Oh-my-zsh。
安装Oh-my-zsh后shell:
打印目前已有shell
cat /etc/shell
安装Zsh
sudo apt-get install zsh
切换默认shell
chsh -s /bin/zsh
打印当前默认shell
echo $SHALL
安装oh-my-zsh
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
sudo gedit ~/.zshrc
将配置文件中的主体一栏改为ZSH_THEME="ys",也可以改为自己喜欢的主题。
高亮效果
当命令不对时会显示红色,命令正确时显示绿色。
cd ~
git clone git://github.com/zsh-users/zsh-syntax-highlighting.git
打开.zshrc文件,
source ~/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
sudo gedit ~/.zshrc
在最后添加下面内容:
plugins=(zsh-syntax-highlighting)
安装自动补全插件
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
编辑.zshrc文件
找到plugins=(git)这一行,如果没有添加。更改为如下
sudo gedit ~/.zshrc
plugins=(git zsh-autosuggestions)
4.安装Pwntools
sudo apt-get update
sudo apt-get install python2.7 python-pip python-dev git libssl-dev libffi-dev build-essential
sudo pip install --upgrade pip
sudo pip install --upgrade pwntools
32位依赖库
apt-get install lib32ncurses5
apt-get install lib32z1
4.Peda Gef Pwndbg
安装pwndbg:
git clonehttps://github.com/pwndbg/pwndbg
cd pwndbg
./setup.sh
安装peda:
git clonehttps://github.com/longld/peda.git~/peda
echo "source ~/peda/peda.py" >> ~/.gdbinit
安装gef:
wget -q -O-https://github.com/hugsy/gef/raw/master/scripts/gef.sh| sh
安装peda-heap
git clone git://github.com/Mipu94/peda-heap.git ~/peda-heap
echo "source ~/peda-heap/peda.py" >> ~/.gdbinit
使用哪一个就注释掉其他几个
#source /home/white/.gdbinit-gef.py
#source ~/pwndbg/gdbinit.py
#source ~/peda/peda.py
#source ~/peda/peda-heap/peda.py
5. 安装实用插件
LibcSearcher用来泄露libc库中函数的偏移的库,
one_gadget用来寻找libc库中的execve('/bin/sh', NULL, NULL)可以一个gadget就可以getshell
ROPgadget 做题的工具,用来找gadget的
ROPgadget
sudo pip install capstonesudo
git clone https://github.com/lieanu/libc.git ~/LibcSearchercd libc
cd ~/LibcSearcher
git submodule update --init --recursive
sudo python setup.py develop
one_gadget安装:
sudo apt install ruby
sudo gem install one_gadget
6.Arm Pwn环境
安装qemu:
sudo apt-get install qemu
sudo apt-get install qemu-system qemu-user-static binfmt-support
依赖库安装
sudo apt-get install -y gcc-arm-linux-gnueabi
sudo apt-get install qemu libncurses5-dev gcc-arm-linux-gnueabi build-essential gdb-arm-none-eabi synaptic gcc-aarch64-linux-gnu eclipse-cdt git
arm程序执行样例:
qemu-arm -L /usr/arm-linux-gnueabi ./1
qemu-arm -g 1234 -L /usr/arm-linux-gnueabi ./1、
安装gdb-multiarch
sudo apt-get install gdb-multiarch
qemu启动程序,下载GDB-multiarch 然后使用插件pwndbg
设置目标架构:set architecture arm
然后target就好了