CTF-фреймворк и библиотека для эксплуатации на Python. Упрощает взаимодействие с процессами и сокетами, ROP-цепочки, работу с ELF/shellcode, форматные строки и heap-эксплуатацию. Де-факто стандарт в CTF pwn-категориях и бинарной эксплуатации.
pip install pwntools # или: pipx install pwntools

Pwntools — это фреймворк для CTF и библиотека для разработки эксплойтов. Написанный на Python, он предназначен для быстрого прототипирования и разработки и призван сделать написание эксплойтов максимально простым.
from pwn import *
context(arch = 'i386', os = 'linux')
r = remote('exploitme.example.com', 31337)
# СЮДА ПИШЕТСЯ КОД ЭКСПЛОЙТА
r.send(asm(shellcraft.sh()))
r.interactive()
Наша документация доступна по адресу docs.pwntools.com
Серия учебных материалов также доступна онлайн
Для начала работы мы предоставили некоторые примеры решений прошлых задач CTF в нашем репозитории с описаниями решений.
Pwntools лучше всего поддерживается на 64-битных релизах Ubuntu LTS (22.04 и 24.04). Большинство функций должны работать в любой Posix-подобной дистрибуции (Debian, Arch, FreeBSD, OSX и т.д.).
Pwntools поддерживает Python 3.10+ начиная с версии 5.0.0. Для более старых версий, а также для Python 2.7 используйте Pwntools 4.x. Большинство функциональных возможностей pwntools являются автономными и написаны только на Python. Вы сможете быстро начать работу с помощью:
sudo apt-get update
sudo 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
Однако некоторые функции (сборка/разборка кода для других архитектур) требуют зависимостей, отличных от Python. Для получения дополнительной информации ознакомьтесь с полными инструкциями по установке здесь.
Смотрите CONTRIBUTING.md)
Если у вас есть вопросы, не требующие создания отчета об ошибке, присоединяйтесь к серверу Discord по адресу https://discord.gg/96VA2zvjCB