PWN的题大多数是在Linux上打,先安装一个Ubuntu是成为pwn手的开始。
VMware Workstation Pro:VMware Workstation Pro官网
Ubuntu镜像网站:Ubuntu镜像网站
Ubuntu 官网:Ubuntu官网
#换源
先备份一下自带的源,以防以后再用
cp /etc/apt/sources.list /etc/apt/sources.list.bak
vim /etc/apt/sources.list
替换成(如果版本不是20.04可以去阿里、清华、中科大的官网找适合自己版本的源)
# 阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
# 清华源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# 中科大源
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
然后更新源信息
sudo apt update
sudo apt upgrade
安装软件 | 安装指令 |
---|---|
vim | $ sudo apt install vim |
git | $ sudo apt install git |
gcc | $ sudo apt install gcc |
python3-pip | $ sudo apt install python3-pip |
python-is-python3 | $ sudo apt install python-is-python3 |
gdb-multiarch | $ sudo apt-get install gdb-multiarch |
vim
vim
VIM 是 Linux 系统上一款文本编辑器,它是操作 Linux 的一款利器。
当前有很多优秀的 IDE 都支持安装 VIM 插件,原因就是使用它便捷,高效,很爽!
基础使用方法:
VIM 常用的有四个模式,:
正常模式 (Normal-mode)
–在任意模式下按键进入
–正常模式一般用于浏览文件,也包括一些复制、粘贴、删除等操作。
插入模式 (Insert-mode)
–按 i 键会进行插入模式。
命令模式 (Command-mode)
–在正常模式中,按下:(冒号)键或者/ (斜杠),会进入命令模式。
可视模式 (Visual-mode)
–在正常模式按下v, V, +v,可以进入可视模式。
检验安装成功:
Git 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理
后边要用到很多github上的东西,git是必装软件。
检验安装成功:
gcc是一款非常优秀的编译器,像vc6.0++、vs code等编译器都有内置,将源文件编译成为计算机可执行的二进制文件。
gcc常用编译命令:
NX:-z execstack / -z noexecstack (关闭 / 开启) 不让执行栈上的数据,于是JMP ESP就不能用了
Canary:-fno-stack-protector /-fstack-protector / -fstack-protector-all (关闭 / 开启 / 全开启) 栈里插入cookie信息
PIE:-no-pie / -pie (关闭 / 开启) 地址随机化,另外打开后会有get_pc_thunk
RELRO:-z norelro / -z lazy / -z now (关闭 / 部分开启 / 完全开启) 对GOT表具有写权限
pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能
由于python2不在提供维护,本文建议装python3
检验安装成功:
输入python是少输入一个3 ,还是很舒服的
检验安装成功:
先创建一个 tools的文件夹,同一工具的存放目录,方便后期安装其他工具。
$ cd ~
$ mkdir tools
git 下来 pwntools
$ cd tools
$ git clone https://github.com/Gallopsled/pwntools
$ cd pwntools
$ python setup.py install
github官方网站:https://github.com/Gallopsled/pwntools
pwntools写脚本时的基本使用方法:
remote("一个域名或者ip地址", 端口) 会连接到我们指定的地址及端口
send(payload) 发送payload
sendline(payload) 发送payload,并进行换行(末尾\n)
sendafter(some_string, payload) 接收到 some_string 后, 发送你的 payload
recvn(N) 接受 N(数字) 字符
recvline() 接收一行输出
recvlines(N) 接收 N(数字) 行输出
recvuntil(some_string) 接收到 some_string 为止
p64() p32()
p32()可以让我们转换整数到小端序格式
这里仅写入门用法,详细可以去看 看雪论坛。看雪论坛
pwngdb 可以优化gdb的使用体验,是个很不错的插件。
$ git clone https://github.com/pwndbg/pwndbg
$ cd pwndbg
$ ./setup.sh
$ sudo apt-get install python-capstone
$ git clone https://github.com/JonathanSalwan/ROPgadget.git
$ cd ROPgadget
$ sudo python setup.py install
ROPgadged: https://github.com/JonathanSalwan/ROPgadget
当有了ROP_gadget之后就会发现one_gadget也是必须的
$ sudo apt -y install ruby
$ sudo gem install one_gadget
pwntools出现错误解决方案
https://www.cnblogs.com/pcat/p/5451780.html
这篇文章适合于刚入门pwn的pwn手,这些工具是前期必须的,进阶工具会在后续的文章中介绍。