Локальная CTF-площадка: базовая инструкция для школы
Эта страница описывает практический порядок запуска локальной CTF-площадки в школе: загрузка файлов, подготовка VirtualBox, настройка Wi-Fi-сети, запуск серверной виртуальной машины, подключение участников и сохранение результатов.
Это открытая базовая памятка для организатора. Она не заменяет официальные требования и инструкции конкретной олимпиады или соревнования. Перед проведением обязательно сверяйтесь с актуальными документами первоисточника.
Первоисточник
Официальная страница для региональных организаторов практического тура ВСОШ по информатике, профиль «Информационная безопасность»:
https://vsosh.miem.hse.ru/organizers
На этой странице размещаются виртуальные машины участника, виртуальные машины организатора для 9, 10 и 11 классов, инструкции участника и инструкции организатора.
Не публикуйте на открытом сайте пароли администратора, закрытые архивы, внутренние документы площадки и персональные данные участников. На публичной странице достаточно дать ссылку на официальный раздел и описать общий порядок действий.
Кому подойдёт эта схема
Схема подходит для школьного практического тура, тренировочного CTF, занятия по информационной безопасности или пробного запуска платформы в локальной сети.
В этом варианте участники не работают в обычной операционной системе напрямую. Они запускают виртуальную машину участника, открывают внутри неё браузер и заходят на локальную платформу CTFd.
Исходные условия примера
Организатор
Ноутбук с 16 ГБ оперативной памяти. На нём запускается серверная виртуальная машина нужного класса.
Участники
5 компьютеров на МОС 12. На каждом компьютере запускается VirtualBox и виртуальная машина участника.
Сеть
Отдельный Wi-Fi-роутер. Интернет не обязателен. Главное — чтобы участники видели серверную виртуальную машину.
Запуск классов
9, 10 и 11 классы запускаются по очереди. Одновременно держать три серверные виртуальные машины не требуется.
Общая схема работы
В официальной логике практического тура используется CTFd: серверная виртуальная машина содержит платформу и задания, а виртуальная машина участника содержит инструменты, README и справочные материалы.
1. Скачать необходимые файлы
С официальной страницы организаторов нужно скачать:
- виртуальную машину участника;
- виртуальную машину администратора для 9 класса;
- виртуальную машину администратора для 10 класса;
- виртуальную машину администратора для 11 класса;
- инструкцию участника;
- инструкцию организатора.
Если проводится только один класс, скачивается ВМ участника и ВМ администратора соответствующего класса. Если планируется запуск 9, 10 и 11 классов по очереди, удобнее заранее скачать все три серверные ВМ.
2. Подготовить папки
На ноутбуке организатора удобно сразу создать отдельную папку:
На ПК участника под отдельным пользователем можно создать:
Лучше избегать длинных путей, случайных папок на рабочем столе и названий вроде «новая папка финал 2». С виртуальными машинами проще работать из понятной структуры.
3. Настроить Wi-Fi-роутер
Роутер лучше использовать как отдельную локальную сеть для мероприятия. Интернет для такого запуска не обязателен.
В настройках роутера обязательно отключите всё, что похоже на изоляцию клиентов:
- AP Isolation;
- Client Isolation;
- Guest Network Isolation;
- «Изоляция клиентов»;
- «Гостевая сеть» для участников.
Если изоляция клиентов включена, участники смогут подключиться к Wi-Fi, но не смогут открыть платформу на сервере.
4. Подготовить ноутбук организатора
На ноутбук организатора нужно установить:
- VirtualBox;
- архиватор для распаковки файлов;
- браузер;
- PDF-ридер для инструкций.
Затем нужно распаковать серверные виртуальные машины:
В VirtualBox серверную ВМ можно добавить через «Машина → Добавить», если есть файл .vbox, или через «Файл → Импорт конфигураций», если используется .ova или .ovf.
5. Настроить сеть серверной ВМ
Для серверной виртуальной машины администратора нужен доступ из локальной сети. Поэтому в VirtualBox для ВМ администратора обычно выбирают сетевой мост.
Важное уточнение: адрес платформы для участников лучше брать у самой серверной виртуальной машины, а не у пользователя на МОС 12 и не у компьютеров участников. После запуска серверной ВМ нужно узнать её IP в локальной сети.
6. Запустить платформу для нужного класса
Пример для 9 класса:
После запуска платформы внутри серверной ВМ нужно открыть:
Если CTFd открылся внутри серверной ВМ, значит платформа поднялась локально.
7. Узнать IP серверной ВМ
Внутри серверной ВМ в терминале выполните:
Нужно найти адрес в сети роутера, например:
Тогда адрес платформы для участников будет:
Если после перезапуска IP изменился, нужно снова проверить адрес командой ip a и дать участникам новый адрес. Если роутер позволяет, лучше закрепить IP для серверной ВМ по MAC-адресу.
8. Настроить CTF Owl / FRP Settings
В CTFd нужно войти как администратор и открыть:
В настройках нужно заменить:
на IP серверной ВМ, который видят участники:
Затем сохранить настройки.
Если этот шаг пропустить, сама платформа может открываться, но задания с кнопкой Launch могут выдавать участникам неправильный адрес.
9. Подготовить ПК участника на МОС 12
На каждом ПК участника удобно создать отдельного пользователя:
Этот пользователь нужен не для отдельной сетевой настройки, а для чистой рабочей среды: без доступа к лишним файлам и без административных прав.
- создать пользователя vsosh;
- не давать ему права администратора;
- установить VirtualBox из-под администратора системы;
- проверить, что пользователь vsosh может запустить VirtualBox;
- скопировать ВМ участника в папку пользователя;
- добавить или импортировать ВМ участника в VirtualBox.
Если VirtualBox под пользователем vsosh не запускается, нужно проверить права пользователя, установку VirtualBox и поддержку виртуализации на компьютере.
10. Настройки ВМ участника
ВМ участника обычно лучше оставить с сетевым режимом NAT.
Не стоит переводить все ВМ участников в сетевой мост без необходимости. При сетевом мосте могут появиться конфликты MAC-адресов, если виртуальные машины были скопированы.
11. Запустить ВМ участника
Под пользователем vsosh запустите VirtualBox и откройте ВМ участника.
Внутри ВМ участника используется логин и пароль:
После входа в Kali откройте браузер внутри виртуальной машины и перейдите по адресу платформы:
Пример:
12. Проверить доступ перед стартом
До начала тура нужно проверить не просто запуск ВМ, а полный путь участника:
13. Подготовить логины и пароли участников
Логины и пароли для CTFd лучше подготовить заранее.
Возможные форматы логинов:
Соответствие ФИО участника и его учётной записи нужно сохранить отдельно, чтобы после тура корректно перенести результаты.
14. Что сказать участникам перед началом
Внутри ВМ участника уже есть справочные материалы и инструменты. В инструкции участника перечислены каталоги с документацией, Obsidian, Ghidra, IDA Freeware, gdb, dirsearch, curl, LibreOffice, binwalk, pwntools, Volatility и другие утилиты.
15. Проведение одного класса
Пример порядка для 9 класса:
Для 10 и 11 класса порядок такой же, только запускается соответствующая серверная ВМ.
16. После завершения тура
После тура нужно сохранить результаты.
- открыть Admin Panel;
- открыть Scoreboard;
- сохранить страницу итоговых результатов в PDF;
- выгрузить CSV с результатами;
- выгрузить Submissions;
- выгрузить Users + fields;
- сохранить протокол соответствия участников и учётных записей.
17. Если платформа не открывается
Проверить серверную сторону
- ВМ администратора запущена?
- Команда ./ctfd_start.sh выполнена?
- Внутри серверной ВМ открывается http://127.0.0.1:80?
- IP серверной ВМ правильно найден через ip a?
- В FRP Settings указан IP серверной ВМ, а не localhost?
Проверить участника
- ПК участника подключён к правильной Wi-Fi-сети?
- ВМ участника запущена?
- Браузер открыт именно внутри Kali?
- Адрес платформы введён правильно?
- ВМ участника находится в режиме NAT?
Проверить роутер
- DHCP включён?
- Изоляция клиентов отключена?
- Это не гостевая сеть?
- Все устройства подключены к одной Wi-Fi-сети?
18. Если Launch не работает
Если сама платформа открывается, но задания с кнопкой Launch запускаются неправильно, чаще всего проблема в FRP Settings.
После изменения настроек нужно сохранить их, обновить страницу задания и повторить Launch.
19. Быстрый чеклист
- [ ] Скачана ВМ участника.
- [ ] Скачана ВМ администратора нужного класса.
- [ ] Установлен VirtualBox на ноутбуке организатора.
- [ ] Установлен VirtualBox на ПК участников.
- [ ] Настроен отдельный Wi-Fi-роутер.
- [ ] Изоляция клиентов на роутере отключена.
- [ ] Серверная ВМ запускается.
- [ ] Выполняется команда ./ctfd_start.sh.
- [ ] CTFd открывается внутри серверной ВМ.
- [ ] IP серверной ВМ найден через ip a.
- [ ] FRP Settings настроен на IP серверной ВМ.
- [ ] На МОС 12 создан пользователь vsosh.
- [ ] Пользователь vsosh без административных прав.
- [ ] ВМ участника запускается.
- [ ] Вход kali / kali работает.
- [ ] Из браузера внутри Kali открывается CTFd.
- [ ] Тестовый пользователь входит в CTFd.
- [ ] Challenges открываются.
- [ ] Launch работает.
- [ ] Тестовый флаг принимается.
- [ ] Scoreboard обновляется.
- [ ] Логины и пароли участников подготовлены.
- [ ] После тура результаты выгружены и сохранены.