pwntool
pwntools是一个用于CTF和漏洞利用开发的Python库,它提供了许多功能,如本地执行、远程连接、shellcode生成、ROP链构建、ELF解析和符号泄露等。
Pwntools对Ubuntu12.04和14.04支持最好,但也支持Debian、Arch、FreeBSD、OSX等系统。
apt-get update
apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade pwntools
gdb
gdb(GNU调试器)是一个强大的命令行工具,用于调试C、C++和其他编程语言编写的程序。
sudo apt-get update
sudo apt-get install gdb
pwndbg
git clone https://github.com/pwndbg/pwndbg
cd pwndbg
./setup.sh
然后我们可以查看.gdbinit中的内容
cat .gdbinit
如果之前没有安装过别的插件,则只会显示有最后一行,如果安装过,则将前面的注释掉即可。插件功能都差不多,选择一个即可,倒也不必每个都装。最后选了pwndbg单纯觉得好看。
gef
2017年4月补充
gef(GDB Enhanced Features)是一个强大的GDB(GNU调试器)扩展插件,旨在简化和加速调试过程,提升开发者的工作效率。
bash -c "$(curl -fsSL https://gef.blah.cat/sh)"
如果输入gbd后没有显示def页面,请尝试以下操作
# 检查配置文件内容
cat ~/.gdbinit
- 错误格式:source "~/GdbPlugins/gef/gef.py" # 引号导致路径解析失败
- 正确格式:source ~/GdbPlugins/gef/gef.py # 无引号
echo "source ~/GdbPlugins/gef/gef.py" > ~/.gdbinit # 注意此处无内部引号
# 再次检查配置文件内容
cat ~/.gdbinit
解除GDB安全限制
# 在.gdbinit首行添加安全豁免
echo "set auto-load safe-path /" >> ~/.gdbinit
IDA Pro
交互式反汇编器专业版(Interactive Disassembler Professional),人们常称其为IDA Pro,或简称为IDA。是最棒的一个静态反编译软件,为众多0day世界的成员和ShellCode安全分析人士不可缺少的利器。IDA Pro是一款交互式的,可编程的,可扩展的,多处理器的,交叉Windows或Linux WinCE MacOS平台主机来分析程序, 被公认为最好的花钱可以买到的逆向工程利器。IDA Pro已经成为事实上的分析敌意代码的标准并让其自身迅速成为攻击研究领域的重要工具。它支持数十种CPU指令集其中包括Intel x86,x64,MIPS,PowerPC,ARM,Z80,68000,c8051等等。
cyclic
主要用于确定缓冲区溢出的偏移量,使用cyclic工具可以自动计算偏移,cyclic自带于pwntool。
checksec
Checksec 是一个漂亮的小工具,同时它也是一个 shell 脚本。Checksec 可以识别编译时构建到二进制文件中的安全属性。编译器可能会默认启用一些安全属性,你也可以提供特定的标志,来启用其他的安全属性。
sudo apt install checksec
Checksec 命令的格式是:checksec --file=,后面再跟上二进制文件的绝对路径,例如
$ checksec --file=/usr/bin/ls
ropgadgets
ROPgadgets是一个安全研究工具,用于在二进制文件中寻找可用于构建ROP(Return-Oriented Programming)链的指令片段,即gadgets。
git clone https://github.com/JonathanSalwan/ROPgadget.git
cd ROPgadget
python setup.py install
这一切,似未曾拥有