PHDays HackBattle: ломаем один на один

в 13:35, , рубрики: HackBattle, PHDays, Блог компании Positive Technologies, информационная безопасность, конкурс

PHDays HackBattle: ломаем один на один - 1

В мае на конференции по практической информационной безопасности Positive Hack Days VII впервые состоялся конкурс HackBattle. В первый день PHDays посетители могли принять участие в отборочных соревнованиях, а двое участников, выполнивших наибольшее количество заданий за наименьшее время, вышли в финал HackBattle, который состоялся на второй день конференции на главной сцене. В этой статье мы расскажем, как проходило соревнование, а также предложим всем желающим попробовать свои силы в тех задачах, которые использовались на конкурсе.

Отбор

Поскольку финал конкурса должен был проходить на главной сцене в условиях ограниченного времени, а также под пристальным наблюдением профессиональной публики, нам были нужны люди, которые не спасуют перед тем, что на них устремлены тысячи глаз, и смогут за адекватное время решить поставленную задачу.

Чтобы найти таких хакеров, мы решили использовать формат отборочных соревнований на основе задач типа CTF, но с ограничением по времени в 25 минут. Для отбора было подготовлено 9 задач, ранжированных по уровню сложности. При этом мы постарались подобрать такие задачи, сценарии которых встречаются в ходе настоящих пентестов.

Каждый гость конференции имел возможность один раз поучаствовать в отборочных соревнованиях, предварительно зарегистрировавшись. Участвовать можно было только с рабочих станций, предоставляемых организаторами. Первый посетитель, пожелавший принять участие в конкурсе, появился буквально в первые минуты работы форума, а общее число хакеров, принявших участие в отборе HackBattle, составило 97 человек!

PHDays HackBattle: ломаем один на один - 2

Финал

Положение дел в отборочной таблице менялось на протяжении всего первого дня конференции, и лишь к вечеру там закрепились двое участников, которые и вышли в финал. Ими стали Влад “vos” Росков и Омар “Beched” Ганиев.

PHDays HackBattle: ломаем один на один - 3

Финал состоялся на второй день, на главной сцене PHDays. Все происходящее на мониторах двух хакеров-финалистов транслировалось на большой экран, с профессиональными комментариями специалистов по информационной безопасности:

PHDays HackBattle: ломаем один на один - 4

Финалистам было предложено атаковать одну и ту же инфраструктуру. По легенде это был департамент безопасности вымышленного города:

PHDays HackBattle: ломаем один на один - 5

Задание состояло из трех этапов: на первых двух нужно было атаковать веб-приложение, чтобы сначала попасть в панель администратора приложения, а потом получить возможность выполнения команд с правами веб-сервера. На третьем этапе предстояло повысить привилегии до root и запустить bash-скрипт. По легенде игры он активировал сирену в здании департамента. Отдельно стоит отметить, что прохождение задания не было линейным, каждый этап можно было преодолеть несколькими способами, что наши финалисты и показали.

Битва была жаркой, до последнего момента было неясно, кто именно придет к финишу первым! Полную версию финала можно посмотреть на www.phdays.com/broadcast/, 24 мая, part 2 mix stream с 2:00:00. Если вы не хотите раньше времени знать победителя, то не читайте дальше, пока не посмотрите запись.

PHDays HackBattle: ломаем один на один - 6

Победителем оказался Влад “vos” Росков! После конкурса мы взяли у финалистов небольшое интервью, чтобы они поделились впечатлениями от HackBattle.

Влад “vos” Росков:

«Обожаю хак-батлы один на один, ребята придумали крутой формат для шоу с финальной битвой на сцене. Уважуха за разноплановые таски. Бечеду тоже уважуха, достойный соперник :)

В этот раз была всего одна дуэль, на которую отбирались топ-2 по количеству решенного за первый день — было б круто в следующий раз построить турнирную сетку и все битвы сделать один на один».

Омар “Beched” Ганиев:

«Мне уже доводилось состязаться в подобном формате в более скромной обстановке — в рамках конференции RuCTF. В целом это наиболее захватывающий формат для зрителей и весьма интересный формат для участников. Сложность для организаторов — провести соревнование без огрехов в инфраструктуре, а главное — сделать задачи такими, чтобы они действительно решались за короткое время (10–30 минут). В итоге получается динамичное соревнование на скорость, которое демонстрирует зрителям подходы участников к решению задач.

Авторам HackBattle как раз таки удалось соблюсти такой баланс и сделать задачи, которые решаются разными способами и позволяют участникам выбрать свой путь.
Еще один плюс для участников — соревнование занимает совсем немного времени, так что можно размяться и отвлечься на конференции. С удовольствием поучаствую еще раз и рекомендую продумать масштабирование баттлов в формат турнира — чтобы не только два человека могли сражаться в финале. Схожее соревнование Rapid Fire проводила компания ForAllSecure
».

Задания для конкурса: попробуйте сами

Задания для отбора и финала вы можете скачать в формате OVA:

http://static.ptsecurity.com/phdays/2017/hackbattle/creds.txt — доступы к виртуальным машинам
static.ptsecurity.com/phdays/2017/hackbattle/1.ova
static.ptsecurity.com/phdays/2017/hackbattle/2.ova
static.ptsecurity.com/phdays/2017/hackbattle/3.ova
static.ptsecurity.com/phdays/2017/hackbattle/4.ova
static.ptsecurity.com/phdays/2017/hackbattle/5.ova
static.ptsecurity.com/phdays/2017/hackbattle/6.ova
static.ptsecurity.com/phdays/2017/hackbattle/7.ova
static.ptsecurity.com/phdays/2017/hackbattle/8.ova
static.ptsecurity.com/phdays/2017/hackbattle/9.ova
static.ptsecurity.com/phdays/2017/hackbattle/FINAL.ova

Задачи сильно различаются по сложности. Разбор одной из них (№ 3 по ссылке), за решение которой полагались скромные 100 баллов, можно найти ниже. Конечно, этот спойлер не стоит читать тому, кто хочет попробовать самостоятельно решить эту задачу.

Разбор задания № 3

При переходе по ссылке участник видел веб-приложение с приветственной надписью «User 1, you have been successfully logged in.»:

PHDays HackBattle: ломаем один на один - 7
При клике по ссылке «My profile» открывалась страница профиля User 1:
PHDays HackBattle: ломаем один на один - 8

Сообщение в строке Flag однозначно говорило, что флага тут нет.

Ссылка профиля имела вид «/profile/1», если попробовать перейти по ссылке «/profile/2», то отображался профиль User 2:

PHDays HackBattle: ломаем один на один - 9

К большому сожалению, флага тут также не было, зато очевидно, что присутствует IDOR-уязвимость. Переберем первые 100 id с помощью Burp Intruder:

PHDays HackBattle: ломаем один на один - 10

PHDays HackBattle: ломаем один на один - 11

PHDays HackBattle: ломаем один на один - 12

На id 72 видим аномалию в столбце Length, заходим:

PHDays HackBattle: ломаем один на один - 13

Это то что надо! И флаг теперь выглядит вполне реалистично.

Авторы: Александр Морозов, Анатолий Иванов, Анна Вехтева, Positive Technologies

Автор: ptsecurity

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js