Установка


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.

image-center

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

image-center

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

image-center

Для ресурсов можно оставить такие параметры:

  • 1 CPU/Core
  • 512MB RAM
  • NAT Networking

Как использовать Warzone

После создания виртуальной машины можно получить IP-адрес, войдя как gameadmin (gameadmin:gameadmin) и выполнив команду ip addr.

image-center

Затем можно подключиться по 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.

Дата изменения: