Установка
Modern Binary Exploitation (MBE) — бесплатный курс, разработанный и используемый RPISEC для преподавания современной бинарной эксплуатации в Rensselaer Polytechnic Institute. Он охватывает базовый реверс-инжиниринг x86, анализ уязвимостей и классические формы эксплуатации пользовательских Linux-бинарей. Также курс разбирает защиты современных систем и техники их обхода. В нем много лабораторных работ, которые я объясняю и решаю в этом разделе.
Эта процедура установки основана на официальной документации репозитория MBE. Если нужны дополнительные детали по настройке лаборатории, лучше прочитать ее полностью.
Можно скачать слайды или клонировать репозиторий следующей командой:
git clone https://github.com/RPISEC/MBE
Разбор лабораторий
Задания основаны на лекциях из GitHub-репозитория. Если для решения лабораторных не хватает знаний, лучше прочитать материалы перед стартом.
| Разбор | Тема | Соответствующие лекции | Доступно |
|---|---|---|---|
| 01 | реверс-инжиниринг | 01-03 | Да |
| 02 | повреждение памяти | 04 | Да |
| 03 | shellcoding | 05 | Да |
| 04 | форматные строки | 06 | Да |
| 05 | DEP и ROP | 07 | Да |
| 06 | ASLR | 09 | Да |
| 07 | Heap | 10 | Нет |
| 08 | Misc и Stack Cookies | 11 | Нет |
| 09 | C++ | 12 | Нет |
| 10 | Linux Kernel | 13 | Нет |
| P1 | Project 1 | 01-06 | Нет |
| P2 | Project 2 | 01-12 | Нет |
Заметка: лаборатории Linux Kernel не реализованы в предоставленной виртуальной машине. Мне еще нужно найти способ добавить их, чтобы подготовить разборы.
Настройка виртуальной машины
Warzone — кастомный варгейм, созданный с нуля для этого курса. Он дает целостную и последовательную учебную платформу для лабораторных и проектов. Варгейм построен на базе чистой 32-битной серверной установки Ubuntu 14.04 и вдохновлен существующими локальными варгеймами по повышению привилегий.
Готовый VMDK-образ диска Warzone можно скачать здесь. Чтобы установить VM, распакуй VMDK и создай новую кастомную виртуальную машину в VMWare.

Затем выбери Ubuntu как операционную систему.

В конце выбери распакованный VMDK как образ диска.

Для ресурсов можно оставить такие параметры:
- 1 CPU/Core
- 512MB RAM
- NAT Networking
Как использовать Warzone
После создания виртуальной машины можно получить IP-адрес, войдя как gameadmin (gameadmin:gameadmin) и выполнив команду ip addr.

Затем можно подключиться по SSH к первому заданию с учетными данными lab1C:lab01start. Этот шаблон сохраняется и для следующих заданий, например lab2C:lab02start.
Warzone устроен как типичный локальный варгейм по повышению привилегий. Нужно эксплуатировать задание, повысить привилегии и получить доступ к другому пользователю (уровню). После успешной эксплуатации уровня и перехода к следующему пользователю (проверь через whoami) можно прочитать пароль пользователя в домашней директории /home/$USER/.pass.
Заметка: самый простой уровень — labXC, затем labXB и, наконец, labXA.
Уровни (задания) находятся в /levels. Если нужно писать скрипты или эксплойты, /tmp доступен для записи и выполнения.
Лицензирование
Этот курс явно создан только для академического и образовательного использования. Учитывай это при распространении материалов курса. Конкретные лицензии указаны ниже.
Лекции распространяются по лицензии Creative Commons Attribution-NonCommercial 4.0 International CC BY-NC 4.0.
The code in is covered by the BSD 2-Clause license. You can view this license in LICENSE.