CTFフレームワークとエクスプロイト開発ライブラリ
PwntoolsはCTFフレームワーク兼エクスプロイト開発ライブラリです。Pythonで書かれており、迅速なプロトタイピングと開発を目的として設計され、エクスプロイト作成を可能な限りシンプルにすることを意図しています。
from pwn import *
context(arch = 'i386', os = 'linux')
r = remote('exploitme.example.com', 31337)
# EXPLOIT CODE GOES HERE
r.send(asm(shellcraft.sh()))
r.interactive()
ドキュメントはdocs.pwntools.comでご覧いただけます。
一連のチュートリアルもオンラインで公開されています。
過去のCTFチャレンジの解答例をwrite-upsリポジトリで提供していますので、始める際の参考にしてください。
Pwntoolsは64ビットのUbuntu LTSリリース(22.04および24.04)で最もサポートされています。ほとんどの機能は、任意のPosix系ディストリビューション(Debian、Arch、FreeBSD、OSXなど)で動作するはずです。
Pwntoolsはバージョン5.0.0以降、Python 3.10以上をサポートしています。古いバージョンや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を参照してください。
バグレポートに値しない質問があれば、https://discord.gg/96VA2zvjCB のDiscordサーバーに参加してください。