PWN的题大多数是在Linux上打,先安装一个Ubuntu是成为pwn手的开始。
VMware Workstation Pro:VMware Workstation Pro官网
Ubuntu镜像网站:Ubuntu镜像网站
Ubuntu 官网:Ubuntu官网
| 安装软件 | 安装指令 |
|---|---|
| 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 ,还是很舒服的
检验安装成功:
gdb嘛,几乎完美的动调工具
检验安装成功:
先创建一个 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()可以让我们转换整数到小端序格式
这里仅写入门用法,详细可以去看 看雪论坛。看雪论坛
pwngdbpwngdb 可以优化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
one_gadget当有了ROP_gadget之后就会发现one_gadget也是必须的
$ sudo apt -y install ruby $ sudo gem install one_gadget
检验安装成功:
这篇文章适合于刚入门pwn的pwn手,这些工具是前期必须的,进阶工具会在后续的文章中介绍。



