Видео с PHDays

POSITIVE HACK DAYS



ОРГАНИЗАТОР

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

  • 5 Июля 2017

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

    Отбор

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

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

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

    Финал

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

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

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

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

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

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

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

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

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

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

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

    Авторам HackBattle как раз таки удалось соблюсти такой баланс и сделать задачи, которые решаются разными способами и позволяют участникам выбрать свой путь.

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

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

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

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

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

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

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

    При клике по ссылке «My profile» открывалась страница профиля User 1:

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

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

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

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

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

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

Возврат к списку