- PVSM.RU - https://www.pvsm.ru -

Розовый скафандр, криптовалюта и генномодифицированный iOS: задания online-этапа NeoQUEST-2017 и немного статистики

Розовый скафандр, криптовалюта и генномодифицированный iOS: задания online-этапа NeoQUEST-2017 и немного статистики - 1 C 1 по 10 марта прошёл online-этап соревнования по кибербезопасности NeoQUEST-2017 [1]. Пришло время подвести итоги, поделиться любопытной статистикой прохождения, а также вкратце рассказать про сами задания.

В этом году мы решили отправить участников соревнования в бескрайний космос и придумали для них галактику из 9 планет-заданий [2], каждая из которых была уникальна.

Все 9 «планет» пройти не удалось никому, но, тем не менее, у нас не осталось ни одного непройденного задания! Победителю AV1ct0r покорились 7 заданий, и его 1025 баллов стали лучшим результатом в online-этапе соревнования! Серебряный призёр, Ilja, полностью прошел 4 задания и получил по одному ключу еще в двух, его результат — 817 баллов. «Бронзу» получил VampiRUS [3], на его счету 4 полностью пройденных задания и одно — наполовину решенное, количество набранных баллов составило 731.

Тройку призёров ждут отличные подарки, а всех, кто получил хотя бы один ключ — памятные сувениры! Теперь перейдем к тематике и «изюминкам» заданий NeoQUEST-2017!

Задание №1 планеты Greenoid: «Почини вождя!»

Зелёная планета, зелёные роботы с рожками, большими ртами и ручками-ножками-палочками? Да это ж Android! Название планеты, кстати, тоже намекало именно на эту мобильную операционную систему.

А когда участники скачали apk-файл, все их сомнения по поводу тематики задания должны были развеяться! Для «починки» вождя зелёных роботов участникам нужно было подвергнуть apk-файл reverse engineering, расшифровать хранящийся там зашифрованный байт-код, дизассемблировать нативную библиотеку и найти коллизию к хэш-функции CRC32. Write-up по этому заданию уже опубликовал [4]в своем блоге победитель online-этапа AV1ct0r и описал в хабрастатье GH0st3rs [5] (читать тут [6]!)

Задание №2 планеты Photonis: «Фотомания»

В данном задании участники получили архив с изображениями, но изображения были необычными: некоторые из них содержали просто цветовой шум, а в остальных компоненты R, G и B каждого пикселя оказались равны друг другу (градации серого). Также каждое изображение включало дополнительную мета-информацию, в частности, гео-теги.

Участникам требовалось отфильтровать шум и отметить географические координаты оставшихся изображений на карте мира. В результате из полученных точек создавалось изображение символов, являющихся ключом к заданию (а также, как упоминалось в легенде, места на Земле, в которых удалось побывать инопланетянам). Такая вот забавная стеганография! Write-up на это задание тоже уже опубликован, читаем [7]!

Задание №3 планеты Etheris: «Граждане, храните деньги в криптовалюте!»

В этом задании участники столкнулись с технологией блокчейн [8]. Им предстояло разобраться с принципами работы умных контрактов Ethereum [9]и провести на один из них две атаки. Первая напоминала известную рекурсивную атаку [10] на The DAO, в ходе которой злоумышленник чуть не похитил криптовалюту на сумму 60 миллионов долларов! Для проведения второй атаки нужно было использовать ошибку работы с памятью и подменить владельца контракта собой.

Задание №4 планеты iFetus: «Запретный плод»

В легенде к этому заданию настойчиво упоминались разных размеров яблоки-носители информации? Намёк ясен! Вот оно — анонсированное задание на iOS! Участники получали архив, в котором было 780 файлов с непонятными именами.

На первый взгляд было абсолютно непонятно, что с ними делать. Наилучшим вариантом была их сортировка по типу: сразу обнаруживались 4 файла с расширениями, позволяющими понять, что эти файлы — ни что иное, как бэкап iOS-устройства. Затем участники либо бродили по файлам и следовали подсказкам, которые оставил для них разработчик, либо осуществляли поиск IP из нашей подсети (так делали самые хитрые!). Результатом поиска был zip-архив, имя которого – первый ключ задания.

Но у задания была еще и вторая часть! Содержимое архива — iOS приложение в непривычном виде (папка с форматом .app). Яблокоманы могли попробовать запустить его на iOS симуляторе, но мы решили сделать равные условия для всех и заставить участников реверсить! Приложение вытаскивало из NSUserDefaults логин и зашифрованный пароль, расшифровывало его и отправляло на сервер, а в случае корректности пароля получало ключ.

Восстановив пароль, участники столкнулись с еще одной проблемой: сервер постоянно отвечал им «Incorrect App». А хитрость была в том, что надо было подменить User-Agent на тот, который используется в приложении! Получить второй ключ удалось немногим, и даже наш победитель испробовал порядка 200 различных вариантов и только потом нашел верный (почитать write-up можно тут [11]!).

Задание №5 планеты Espion: «Мультипаспорт!»

В этом задании мы решили заставить участников погулять по различным социальным сетям и осуществить OSINT [12] или, в некотором роде, «шпионаж» (именно от слова espionage и было образовано название планеты!).

Участникам выдавался архив с большим количеством фотографий и предлагалось заполнить анкету «участника космической экспедиции». Анкета была условно разделена на три блока и, как оказалось позже, для ее заполнения требовалось посетить 5 социальных сетей.

Самым сложным был первый шаг: как перейти от фотографий к профилю пользователя в социальной сети? Оказывается, если присмотреться к фотографиям, некоторые из них были сделаны около вполне себе космического места: NASA Tourist Space Center. Одна из близких по номеру фотографий (да-да, только одна!) хранила в своем EXIF географические координаты. Использовав их при поиске в популярной синей социальной сети (это Питер, детка!) можно было выйти на профиль пользователя, а затем, увидев, что он продаёт шикарный розовый скафандр, сообразить, куда двигаться дальше! Кстати, hackzard [13] написал отличный (и, что очень ценно, весёлый!) write-up [14] к этому заданию.

Задание №6 планеты Prioritus: «Слишком много всего...»

В качестве исходных данных участникам предоставлялся IP-адрес и намеки на использование «приоритетов». На указанном адресе располагался веб-сервер, функционирующий с использованием протокола HTTP/2 [15].

Изучив протокол HTTP/2 и его особенности, участники могли обнаружить технологию приоритезации HTTP/2-потоков. Генерируя свои запросы с различными приоритетами, сервер присылал различные ответы. После перебора 256 значений приоритетов, участники получали первый ключ и обнаруживали «проход» ко второму ключу — форму входа с полями для логина и пароля. Тут участникам предоставлялась возможность разработать собственный способ проведения boolean-based blind SQL-injection over HTTP/2 для получения второго ключа.

Задание №7 планеты E-mu: «Затерянные в додекаэдре»

А здесь участникам в качестве исходных данных предоставлялся скомпилированный под Linux бинарник QEMU, при этом, во время компиляции было добавлено новое виртуальное PCI-устройство, что существенно затрудняло задачу поиска ключа.

Участникам также требовалось поломать голову над головоломкой судоку: ключом к заданию являлось сообщение, записанное с помощью ASCI графики, которое хранилось в массиве размером 16x256. Изначально данный массив был зашифрован, а решение головоломки судоку 16x16 и было ключом для шифрования.

Задание №8 планеты Endian: «Спасение экипажа»

Технология Intel и ее особенности — частая тема в докладах NeoQUEST (например, этого [16]и этого [17]!)!

Мы не сомневаемся, что многие наши участники практически «с пелёнок» умеют изучать дизассемблер машинного кода под архитектуру Intel и даже в уме вычислять, сколько памяти необходимо, чтобы замапить 16Гб адресного пространства в long-mode c PML4 по 2Мб. Но не одним Intel'ом прекрасен и разнообразен мир! Мы решили немного поностальгировать и вспомнили времена, когда небо было голубее, деревья больше, а макбуки были на PowerPC [18].

Участникам давалось 2 файла — образ PCI-Expansion ROM для QEMU и файл c бинарником PowerPC для IDA Pro. Наш PCI ROM всего-то запрашивал пароль… JNE на NOP и ВЖУУУУХ! Все готово! Пора с помощью веб-сайта пробовать загрузить свой пропатченный PCI ROM. Однако самые внимательные подмечали, что ROM проверяется на целостность, причем не стандартной 8-битной чексуммой, а неоквестовским алгоритмом контроля целостности! Тут уже приходилось браться за коварный и непонятный PowerPC и пытаться выяснить, как обойти контроль целостности и заполучить заветный ключ!

Задание №9 планеты Paradisos: «В поиске землян»

На «райской» планете в качестве отправной точки участникам давался адрес Web-сайта, на котором была размещена информация о четырёх учёных. По легенде, участникам требовалось получить информацию об учёном, отсутствующем на сайте, путем проведения SQL-инъекции.

Задача усложнялась наличием WAF [19], который блокировал опасные запросы. Участники были вынуждены формировать нетривиальные SQL запросы для обхода логики работы WAF. Фантазию участников мало что ограничивало, кто-то углубился в эксплуатацию BBbSQLi, а кому-то хватило и трюков с комментариями в запросе, чтобы повергнуть WAF на лопатки. Как с этим заданием справился hackzard [13], можно прочитать здесь [20].

Сайт с заданиями [2] будет доступен до апреля, так что время разобраться в них еще есть!

Статистика

В соревновании приняли участие 1352 человека, хотя бы один ключ получили 80 участников. Как и в прошлом году, мы собрали изменения в нашей турнирной таблице в симпатичную гифку (на которую, конечно, не поместились все участники)

Розовый скафандр, криптовалюта и генномодифицированный iOS: задания online-этапа NeoQUEST-2017 и немного статистики - 2

Также мы собрали статистику по сложности заданий и по тому, в какие дни участники NeoQUEST-2017 были наиболее активны!

Вот как обстоят дела со сложностью заданий:

Розовый скафандр, криптовалюта и генномодифицированный iOS: задания online-этапа NeoQUEST-2017 и немного статистики - 3

Самым простым оказалось задание №5 планеты Espion, под кодовым названием «Мультипаспорт!» — хотя бы один из трех ключей, имевшихся в задании, получили 48 участников.

Самым сложным оказалось задание №7 планеты E-mu с мозговыносящим названием «Затерянные в додекаэдре»: его прошло всего 2 участника. В качестве второго по сложности идет задание №3 планеты Etheris «Граждане, храните деньги в криптовалюте!» — тут хотя бы один из двух ключей удалось добыть всего троим.

Теперь посмотрим, добыть какие ключи в «многоключных» заданиях оказалось тяжелее всего.

Задания с несколькими ключами

«Многоключных» заданий было 4:

  1. задание №3 планеты Etheris «Граждане, храните деньги в криптовалюте!» — 2 ключа;
  2. задание №4 планеты iFetus «Запретный плод» — 2 ключа;
  3. задание №5 планеты Espion «Мультипаспорт!» — 3 ключа;
  4. задание №6 планеты Prioritus «Слишком много всего...» — 2 ключа.

Розовый скафандр, криптовалюта и генномодифицированный iOS: задания online-этапа NeoQUEST-2017 и немного статистики - 4

Проще всего для 48 участников оказалось получить первый ключ к заданию №5, однако чуть менее половины (20) тех, кто получил первый ключ, остальные ключи раздобыть не смогли.

Самыми непростыми ключами оказались вторые ключи к заданиям №3 и №4, при этом, если разница по числу получивших ключ для задания №3 оказалась невелика, то разница между теми, кто получил первый и второй ключи в задании №4, впечатляет: только двоим из 29 удалось получить оба ключа!

Всего за 10 дней соревнования было получено 212 ключей, и тут нам стало интересно: а в какие дни наши участники были наиболее активны?

Активность участников за все время

Розовый скафандр, криптовалюта и генномодифицированный iOS: задания online-этапа NeoQUEST-2017 и немного статистики - 5

Внезапно оказалось, что выходные дни прошли не особенно продуктивно, а наибольшее число ключей получено в понедельник и вторник (6 и 7 марта соответственно).

Ждём всех на «очную ставку»!

Online-этап соревнования окончен, и мы начинаем подготовку к летней «Очной ставке», которая состоится 29 июня в Питере! Посетить ее смогут абсолютно ВСЕ, даже те, кто не участвовал в online-этапе. Вход свободный!

Лучших участников online-этапа мы пригласим в качестве участников финальной восьмичасовой битвы за поездку на одну из международных конференций.

А в качестве гостей мы ждём всех-всех, кто интересуется информационной безопасностью! Берите друзей, коллег, и приходите/приезжайте/прилетайте. Мы гарантируем: круто, интересно, познавательно и весело будет АБСОЛЮТНО ВСЕМ! Доклады, конкурсы, real-time демонстрации атак, Twitter-викторина, крутые призы и общение, подведение окончательных итогов hackquest — всё это 29 июня в Санкт-Петербурге!

Автор: НеоБИТ

Источник [21]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/249865

Ссылки в тексте:

[1] NeoQUEST-2017: http://neoquest.ru

[2] планет-заданий: https://2017.neoquest.ru/

[3] VampiRUS: https://habrahabr.ru/users/vampirus/

[4] опубликовал : http://nightsite.biz/blog/19706-neoquest-2017-quals-1-greenoid-pochini-vozhdya.html

[5] GH0st3rs: https://habrahabr.ru/users/gh0st3rs/

[6] тут: https://habrahabr.ru/post/323656/

[7] читаем: http://nightsite.biz/blog/19707-neoquest-2017-quals-2-photonis-fotomaniya.html

[8] блокчейн: https://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B0_%D0%B1%D0%BB%D0%BE%D0%BA%D0%BE%D0%B2_%D1%82%D1%80%D0%B0%D0%BD%D0%B7%D0%B0%D0%BA%D1%86%D0%B8%D0%B9

[9] Ethereum : https://ru.wikipedia.org/wiki/Ethereum

[10] рекурсивную атаку: https://geektimes.ru/post/277476

[11] тут: http://nightsite.biz/blog/19705-neoquest-2017-quals-4-ifetus-zapretnyy-plod.html

[12] OSINT : https://ru.wikipedia.org/wiki/OSINT

[13] hackzard: https://habrahabr.ru/users/hackzard/

[14] write-up: https://habrahabr.ru/post/323830/

[15] HTTP/2: https://ru.wikipedia.org/wiki/HTTP/2

[16] этого : https://www.youtube.com/watch?v=R4PcYiNwlHI&feature=youtu.be

[17] этого: https://www.youtube.com/watch?v=FlpL7W5axl0&feature=youtu.be

[18] PowerPC: https://ru.wikipedia.org/wiki/PowerPC

[19] WAF: https://www.owasp.org/index.php/Web_Application_Firewall

[20] здесь: https://habrahabr.ru/post/323778/

[21] Источник: https://habrahabr.ru/post/323838/