PWNtools
简介及安装
Pwntools是一个非常著名的CTF框架和漏洞利用开发库,旨在让使用者简单快速地编写exp脚本。它拥有本地执行、远程连接读写、shellcode生成、ROP链构建、ELF解析、符号泄露等众多功能。
基本安装命令:
sudo apt install python2.7 python-pip python-dev git libssl-dev libffi-dev build-essential
sudo pip install --upgrade pwntools
sudo apt install binutils-$ARCH-linux-gnu
上述是以python2为例子 当然pwntools新版本已经支持python3
供参考:
在Linux上安装pwntools可以通过pip命令进行安装,具体步骤如下:
- 打开终端,输入命令sudo apt-get update,更新软件源
- 安装Python pip命令,命令为sudo apt-get install python-pip
- 安装pwntools,命令为pip install pwntools
*安装完毕后可以在Python脚本中用from pwn import 来导入pwntools模块。
常用模块和函数
pwntools分为两个模块,一个是pwn,简单地使用“from pwn import*”即可将所有子模块和一些常用的系统库导入当前命名空间中,这都是相对于CTF比赛优化的;其次另一个是pwnlib,它更适合根据需要导入子模块,常用于基于Pwntools的二次开发。
下面简单介绍几个常用的子模块
-
pwnlib.adb:安卓调试桥
-
pwnlib.asm:汇编和反汇编,支持i386/i686/amd64/thumb等
-
pwnlib.dynelf:利用信息泄露远程解析函数
-
pwnlib.elf:操作ELF可执行文件和共享库
-
pwnlib.gdb:调试,于GDB配合使用
-
pwnlib.rop:ROP利用工具,包括rop、srop等
注:ROP(Return-Oriented Programming)是一种利用程序中已有的代码片段(称为gadget)来构造恶意代码的攻击技术。在ROP攻击中,攻击者通过在程序的内存中找到一系列已有的代码片段,并利用这些片段来构建一个攻击序列,从而绕过原本的安全机制并执行恶意操作。ROP攻击通常用于绕过内存随机化(ASLR)和执行权限等安全措施,对于未能正确防御的软件系统可能造成严重的安全漏洞。
- pwnlib.tubes:于sockets、processes、ssh等进行连接