??Pwntools 是一个 CTF 框架和漏洞利用开发库。它用 Python 编写,专为快速原型设计和开发而设计,旨在使漏洞利用编写尽可能简单。 ??Pwntools 分为两个模块,一个是 pwn,简单地使用 from pwn import * 即可将所有子模块和一些常用的系统库导入到当前命名空间中,是专门针对 CTF 比赛的;而另一个模块是 pwnlib,它更推荐你仅仅导入需要的子模块,常用于基于 pwntools 的开发。 pwn 下面是 pwn 的一些常用命令行工具:
pwn asm 和 disasm:将汇编代码转换成字节码
pwn checksec:检查二进制安全设置选项
pwn constgrep:从头文件中查找常量
pwn cyclic:循环模式创建器/查找器
pwn debug:在 GDB 中调试二进制文件
pwn disablenx:为 ELF 二进制文件禁用 NX
pwn disasm:将字节反汇编为文本格式
pwn elfdiff:比较两个 ELF 文件
pwn elfpatch:修补 ELF 文件
pwn errno:打印错误信息
pwn hex:对命令行或标准输入中提供的数据进行十六进制编码
pwn phd:文件到十六进制转储
pwn pwnstrip:剥离二进制文件以供 CTF 使用
pwn scramble:Shellcode编码器
pwn shellcraft:生成各种你想要的Shellcode
pwn template:生成漏洞利用模板
pwn unhex:解码在命令行上或通过标准输入提供的十六进制编码数据
pwn update:检查 pwntools 更新
pwn version:pwntools 版本
pwnlib 下面是 pwnlib 的一些子模块:
Pwnlib.adb:安卓调试桥
Pwnlib.args:命令行魔法参数
Pwnlib.asm:汇编和反汇编,支持 i386/i686/amd64/thumb 等,用于组装和反汇编代码的实用程序。Asm模块主要通过capstone进行汇编的编译和反编译。通常用来编译各种平台构架的shellcode。
Pwnlib.constants:对不同架构和操作系统的常量的快速访问。头文件宏定义的封装,通过此模块,可以直接获取一下系统宏定义对应的整数数据。
Pwnlib.config:配置文件
Pwnlib.context:设置运行时变量。上下文管理器,通过他来控制一些全局的信息。比如目标计算机体系结构,log等级等。控制生成shellcode,log时候的默认行为。
Pwnlib.dynelf:用于远程函数泄露。通过内存leak数据来自动化定位程序中函数位置。及其实用。
Pwnlib.encoders:对 shellcode 进行编码。Shellcode编码工具,通过编码排除shellcode中的特殊字符,防止无法转化。
Pwnlib.elf:用于操作 ELF 可执行文件和库。读写elf文件结构中的各种信息。
Pwnlib.flag:提交 flag 到服务器
Pwnlib.fmtstr:格式化字符串利用工具。格式化字符串自动化利用工具。有缺陷,只能使用少数情况。
Pwnlib.gdb:与 gdb 配合使用。可以在脚本中直接使用此模块attach进程或者启动gdb。
Pwnlib.libcdb:libc 数据库。Libc的database,可以通过一些信息查找对应libc。
Pwnlib.log:日志记录。通常是pwntools内部代码使用。
Pwnlib.memleak:用于内存泄露。内存泄漏管理工具,方便拼接多次泄露出来的内存。
Pwnlib.rop:ROP 利用模块,包括 rop 和 srop。rop生成工具,可以直接生成32位rop
Pwnlib.runner:运行 shellcode
shellcraft:shellcode 生成工具
Pwnlib.term:终端处理
Pwnlib.timeout:超时处理
Pwnlib.tubes:能与 sockets, processes, ssh 等进行连接,主要的io工具
Pwnlib.ui:与用户交互
Pwnlib.useragents:useragent 字符串数据库
Pwnlib.util:一些实用小工具
|