
Автоматизированный инструмент эксплойта ret2win для CTF-задач. Находит смещение стека, генерирует полезные нагрузки, поддерживает удаленную эксплуатацию и подключает GDB для отладки x86-двоичных файлов.
____ ________ __________ __
/ __ \_ ______ / ____/ /_/ __/_ __/___ ____ / /
/ /_/ / | /| / / __ \/ / / __/ /_ / / / __ \/ __ \/ /
/ ____/| |/ |/ / / / / /___/ /_/ __/ / / / /_/ / /_/ / /
/_/ |__/|__/_/ /_/\____/\__/_/ /_/ \____/\____/_/
Авторы: DiegoAltF4 и Dbd4
Может использоваться как локально, так и удалённо (с указанием IP и порта). Автоматически находит смещение до указателя инструкции, сохранённого в стеке.
Кроме того, может быть настроен на возврат шелла. По умолчанию выводит данные, полученные через соединение (возможный флаг).
Также позволяет отображать смещение до указателя инструкции в стеке и поддерживает архитектуру x86 как в 32-битном, так и в 64-битном режимах; может использоваться для отладки эксплойта с помощью GDB.
| Параметр | Описание |
|---|
| -f | указывает бинарный файл, который нужно эксплуатировать (обязательный параметр). |
| -t | указывает целевую функцию, на которую нужно перейти (обязательный параметр). |
| -v | включает режим подробного вывода. |
| -vv | указывает максимальный уровень детализации, режим отладки. |
| -g | позволяет подключить GDB для отладки. |
| --offset | выводит смещение до указателя инструкции. |
| --shell | позволяет поддерживать интерактивную сессию после эксплуатации. |
| --remote | позволяет эксплуатировать на удалённом сервере. |
| --before | позволяет добавить содержимое из файла перед полезной нагрузкой. |
| --after | позволяет добавить содержимое из файла после полезной нагрузки. |
./PwnCtfTool.py -f vuln.bin -t flag_func
В этом разделе мы объясним различные варианты использования инструмента на примерах. Мы загрузили список уязвимых бинарников и будем обновлять его по мере добавления новых опций в инструмент. Чтобы упростить поиск информации, мы укажем параметры, использованные в финальной команде, которая позволяет эксплуатировать бинарник. Кроме того, мы будем классифицировать сложность задач с помощью эмодзи 💣. Одна бомба означает, что задача очень простая, пять бомб — очень высокая сложность. Для каждой задачи мы включили небольшое описание решения (writeup), которое подробно объясняет, как прийти к решению.
Использование параметров
-f,-t,--shell,--offset
Подробное объяснение можно прочитать в описании решения:
Финальная команда:
python3 ../../PwnCtfTool.py -f ./vuln1 -t win --shell --offset
Использование параметров
-f,-t,--before,--shell
Подробное объяснение можно прочитать в описании решения:
Финальная команда:
python3 ../../PwnCtfTool.py --before before2.txt -f vuln2 -t rce --shell
git clone https://github.com/Diego-AltF4/PwnCtfTool.git
cd ./PwnCtfTool
pip3 install -r requirements.txt
chmod +x PwnCtfTool.py
./PwnCtfTool.py
Создано DiegoAltF4 и Dbd4