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

Итоги online-этапа NeoQUEST-2020: выживали как могли

Итоги online-этапа NeoQUEST-2020: выживали как могли - 1

NeoQUEST-2020 [1] подошел к концу, и сейчас самое время рассказать про эти насыщенные две недели: раскроем суть заданий (но не всех, некоторые выйдут отдельными врайт-апами), покажем статистику их прохождения и объявим победителей!

Внимание! Статья содержит спойлеры для тех, кто еще не проходил задания, но честно собирается (а такая возможность есть – сайт [2] online этапа продолжает работать!).

Не будем томить долгим вступлением. В этом году стали победителями стали:

  1. hellow0rld666, 1221 балл
  2. KARASIQUE, 1221 балл
  3. ch1sh1rsk1, 1085 баллов

Трехкратное «ура» этим ребятам! Борьба за первое место развернулась нешуточная — лидер менялся чуть ли не каждый день. Также стоит отметить, что hellow0rld666 и KARASIQUE стали участниками, которые прошли ВСЕ наши задания! Мы не поверили своим глазам, но бывает и такое.

Забавный факт: все задания, которые вызвали бурный интерес в первый день соревнования, были разработаны девушками :)

Поясните по заданиям!

На протяжении двух недель наш почтовый ящик support@neoquest.ru не переставал подавать сигналы о приеме входящих сообщений! Но мы этому только рады — это значит, что наши задания проходят и интересуют участников!

Итак, что же у нас было в заданиях.

Задание №1 — «Против взлома нет приема»

Участникам была дана ссылка, переходя по которой они попадали на страничку с единственной надписью «Привет, мир!». Что мы делаем с самого начала в подобных случаях? Конечно же, лезем в исходный код страницы:

Итоги online-этапа NeoQUEST-2020: выживали как могли - 2

to solve this Case use full power of GIT — так, вроде GIT — название известное. Но зачем же выделена еще одна буква? А если мы соединим их?.. CGIT?.. Точно, что-то такое слышал!

CGIT — веб-интерфейс репозитория.

Так, с этим разобрались. Переходим по ссылке 213.170.100.213/cgit [3], где ковыряемся во всех папочках, пытаемся найти ключ, но спустя энное количество часов времени понимаем, что дело тут в другом.

А теперь люди делятся на две категории: на тех, кто слышал о громкой уязвимости cgit, и тех, кто не слышал.

В любом случае, придется гуглить и найти CVE-2018-14912 [4]. Далее только ловкость рук и никакого мошенничества:

213.170.100.213/cgit/cgit.cgi/my_repo.git/objects/?path=../../../../../../../etc/passwd [5]
Получаем файл с паролями, затем из него получаем первую часть ключа:
NQ2020Gka2rFseNPexB4JsnP9k9RKulFVQDCcXwYy1aPKI+see more…

Осталось найти вторую часть. Тут несложно: репозиторий содержит не так уж много файлов, путем перебора понимаем, что в них ничего нет. Но мы же находимся в репозитории Git, а это значит, что можно посмотреть все изменения, которые в нем были! Там же информация явно будет полнее…

Заходим в diff, либо по указателю «see more», либо вручную находим «see more = e9a3c19a544e6589825fd643f4e6d5c1c4e9», конкатенируем с первой частью и получаем наш ключ!

Задание №2 — «Разбери робота или у тебя л_apk_и?»

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

Подробный разбор задания выйдет отдельной статьей!

Задание №3 — «Sамый Qлёвый Lюк»

В задании предлагается скачать архив [6], который содержит бинарный файл размером 1 Гб с говорящим названием memdump.bin, исходя из чего можно предположить, что это дамп оперативной памяти…

Заинтриговали? Скоро выложим этот врайт-ап отдельной статьей, потому как наших участников это задание интересовало на протяжении всего NeoQUEST!

Задание №4 — «Трудности частописания»

«Изюминка» NeoQUEST-2020, задание, собравшее рекордное число восторженных отзывов на саппорте! Суть заключается в том, что звук из wav файла — ни что иное, как звук печатания по клавишам. Необходимо дискретизировать этот звук и провести частотный анализ!
Более подробное объяснение задания будет опубликовано в ближайшее время.

Задание №5 — «Эпилептические кривые»

Условие задания:

A = 119008536160574978629781290147818127606791827844670246888266509216288777541932
B = 125173392763487646441684374997817715298134647755542804722568603162177610612799
char_field = 137503105969312982065490544697816890680820287577287920391172791053955276754533
P = (24588378651043317545653993517686345205594551142728198236546389666483449174897, 64035697994960793657311999090254655816706285115803662919872675661618460099464)
Q = (70440277554855197417972068200756767916691677649413431083023577625869629031919, 72025841911476301630338043296901014469577623652063349003687337089744015808109)

откровенно намекает на необходимость решить задачу дискретного логарифмирования на эллиптической кривой. Присмотревшись к параметрам эллиптической кривой и изучив ее характеристики, догадываемся, что данная кривая является аномальной: порядок группы точек такой кривой совпадает с характеристикой поля, над которым она задана. А для такого класса кривых существует атака Смарта [7], позволяющая вычислить искомый дискретный логарифм достаточно быстро.

Дальше — дело техники: пишем код атаки, подставляем данные из задания, находим дискретный логарифм и радуемся полученному ключу!

Задание №6 — «Скрытые телеграммы»

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

Задание №7 — «Уравняй меня, если сможешь»

Дана картинка:

Итоги online-этапа NeoQUEST-2020: выживали как могли - 3

Хитрость задания заключается в том, что данное диофантово уравнение [8] с тремя переменными не имеет положительных целочисленных решений, а это значит, что суть задания отнюдь не в простом решении уравнения, и нужно копать глубже!

Метаданные картинки

char_field = 2733425503484079885916437054066624513727898092580736050087
base_point = (2003799601518383430823233516441563713038362096795740845531,2732921640345227083457754907818649009295467132857674744044)
open_key = (1259834880846103046383661778550941435260068858903099332507,1686622613601304663126341188899964094370838010363453830341)
secret < 4351098091135498422 ---> y^2 = x^3+Ax^2+Bx

опять же намекают на эллиптические кривые, но как же они связаны с данным уравнением? Оказывается, связь есть! [9] Найдя коэффициенты A и B кривой, мы сталкиваемся с новой трудностью: точки из метаданных картинки не принадлежат данной кривой. Что же делать? В надежде найти подсказку перечитываем легенду и видим упоминание «Twisted Sister». Эврика! А вдруг точки принадлежат скрученной кривой [10]? Теперь дело за малым — осталось найти такую кривую, содержащую точки из метаданных. После перехода к правильной скрученной кривой применяем атаку Полига-Хеллмана [11] и наслаждаемся своей проницательностью!

Задание №8 — «Можно Ваш автограф?»

По статистике NeoQUEST-2020, это задание является самым сложным, поэтому мы решили посвятить ему отдельную статью. Если вкратце, то необходимо выяснить, как на сайт [12] загрузить неподписанный pdf документ. Для этого участникам нужно будет проэксплуатировать интересную уязвимость :)

Задание №9 — «Посвяти себя программированию»

«Не доверяй глазам своим» — такой девиз мы бы дали этому заданию. При скачивании файла с исходным кодом на языке Си кажется, что внутри находится лишь код, осуществляющий шифрование/расшифрование по алгоритму AES, но «не тут-то было» — скажем мы вам. Необходимо обратить внимание на наличие ошибок в коде, а также подозрительные пробелы и отступы. Мы же обещали эзотерику? Получите и распишитесь!

Дело в том, что в данном файле помимо кода на языке Си находится также код на эзотерических языках программирования — Whitespace и Spoon! Код на языке Whitespace даст нам ключ, код на языке Spoon даст нам шифртекст. Теперь мы исправим допущенные ошибки в коде, запустим его с полученными данными и получим ключ!

Задание №10 — «Being Human»

OSINT в этом году старается не отступать от современных веяний! Мы создали образ робота, который хочет стать человеком и поэтому изучает человеческие повадки, и пустили участников по всем соцсетям, в которых данный робот засветился.

Итак, участникам дается следующий текст:

cHVibGljMTAxMTAxMTAwMTAxMDExMDAxMDAwMDAxMDAwMeKArA==. Два знака "=" буквально кричат: «да-да, я base64, раскодируй меня полностью!». Мы внимаем этому зову и получаем public1011011001010110010000010001. Далее превращаем бинарный код в десятичный, получаем public191194129. Очень что-то напоминает, верно?

Находим Вконтакте группу [13], в которой робот собирает статистику и ответы людей. Вопросы на стене достаточно занимательные, однако нас интересует ссылка на ask.fm [14]. Там также достаточно занимательные ответы на вопросы, но интересует нас ссылка на YouTube-канал [15]. Тут мы узнаем, что наш робот пытается стать не только человеком, но еще и блогером! Осталось совсем чуть-чуть: проследить за подсказками на видео.

Вид пароля подсматриваем в ежедневнике:

Итоги online-этапа NeoQUEST-2020: выживали как могли - 4

Город мечты понятен из заставки рабочего стола — Париж. Имя питомца тоже не остается незамеченным — Rose. Любимую песню видим в одной из вкладок в браузере, а идентификатор написан на стаканчике с кофе.

Ответ — Paris.Rose.Starlight.S3574mT

Мини-задание №1

В данном задании необходимо просто посмотреть в исходный код страницы, где находится фраза «People are making apocalypse jokes like there's no tomorrow. Who said that?». Ответ на этот вопрос находим в гугле — «Ellie».

Мини-задание №2

Скачиваем архив с записями текста, произнесенными ботом. Да только бот не просто читает книгу Стивена Кинга «Бесплодные земли», а читает с ошибками. Выписав пропущенные буквы, получим фразу «книга о распространении вируса». Однако это еще не ответ! Нам нужно найти какую-то книгу о распространении вируса. Но в задании уже есть подсказка, что автор у нас все тот же небезызвестный мистер С. Кинг! Правильный ответ — Противостояние (The Stand).

Мини-задание №3

Дан исполняемый файл. Необходимо получить из него хоть что-нибудь, желательно, конечно, ключ. Если его запускать, то ничего в ответ не выведется. Есть много вариантов развития событий, но правильный один — нужно извлечь строки из данного файла, которые сложатся в читаемый текст. Ответом на данном задание является название книги, откуда данный фрагмент извлечен — the hitchhiker's guide to the galaxy.

Мини-задание №4

Это задание представляет собой современную хакерскую интерпретацию логической задачи Эйнштейна [16]. В ее решении нет ничего сложного, проще всего построить таблицу и посмотреть, как будут выполняться условия. Правильный ответ — RREKPA.#AC+P.EDWKU.LKPGM.MASLHAC — закодирован согласно условию.

Мини-задание №5

Задание Шредингера, одновременно простое и сложное. Простота здесь в получении ответа — всего лишь нужно отправить POST-запрос с параметром flag к серверу, который выдаст правильный ответ. Сложность заключается в том, что до этого нужно додуматься :) Но многие наши участники доблестно с этим справились, ура!

Минуточка статистики

Статистика этого года получилась следующей:

  • Количество зарегистрированных участников — 1266 чел.
  • Количество пройденных заданий — 10/10
  • Количество участников, прошедших хотя бы одно задание полностью – 110 чел.

Распределение участников, нашедших хотя бы один ключ:

Итоги online-этапа NeoQUEST-2020: выживали как могли - 5

А это график активности наших участников по дням соревнования:

Итоги online-этапа NeoQUEST-2020: выживали как могли - 6

Закончим раздел статистики нашей традиционной гифкой:

Итоги online-этапа NeoQUEST-2020: выживали как могли - 7

Поговорим о днях грядущих

На данный момент мы планируем провести «Очную ставку» NeoQUEST-2020 [17] в конце июня в Петербурге, но в сложившейся в стране ситуации возможны рокировки. Главное — не переживайте, мы обязательно встретимся с вами в этом году!

Мы оставим самое крутое и любимое: доклады, воркшопы и демонстрации атак, и добавим новенького! Как и в прошлом году, NeoQUEST пройдет вместе с научно-технической конференцией «Методы и технические средства обеспечения безопасности информации» [18]! Гости NeoQUEST-2020 [17]узнают много нового о взаимосвязи науки и практики кибербезопасности, о важности научного research для специалиста по защите информации и о том, как с научной точки зрения работают современные механизмы защиты информации!

Желающие смогут принять участие не только в NeoQUEST, но и в научных секциях конференции! Чтобы узнать подробнее про участие с докладом или воркшопом на NeoQUEST, пишите на на support@neoquest.ru, а подробнее про конференцию «Методы и технические средства обеспечения безопасности информации» узнавайте на объединенном сайте [18], по всем вопросам обращайтесь на mitsobi@neobit.ru.

Впереди — write-up'ы нескольких заданий и активная подготовка к «Очной ставке»! Кстати, участники, прошедшие целиком хотя бы одно задание, — проверяйте почту, в скором времени начнем рассылку!

Автор: NWOcs

Источник [19]


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

Путь до страницы источника: https://www.pvsm.ru/android/351585

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

[1] NeoQUEST-2020: https://neoquest.ru/

[2] сайт: https://neoquest.ru/2020/

[3] 213.170.100.213/cgit: http://213.170.100.213/cgit/

[4] CVE-2018-14912: https://www.cvedetails.com/cve/CVE-2018-14912/

[5] 213.170.100.213/cgit/cgit.cgi/my_repo.git/objects/?path=../../../../../../../etc/passwd: http://213.170.100.213/cgit/cgit.cgi/my_repo.git/objects/?path=../../../../../../../etc/passwd

[6] архив: https://neoquest.ru/2020/files/3/3.7z

[7] атака Смарта: https://wstein.org/edu/2010/414/projects/novotney.pdf

[8] диофантово уравнение: http://mech.math.msu.su/~shvetz/54/inf/perl-problems/chDiophantus.xhtml

[9] связь есть!: https://ami.uni-eszterhazy.hu/uploads/papers/finalpdf/AMI_43_from29to41.pdf

[10] скрученной кривой: https://www.johndcook.com/blog/2019/07/23/twisted-elliptic-curves/

[11] атаку Полига-Хеллмана: https://koclab.cs.ucsb.edu/teaching/ecc/project/2015Projects/Sommerseth+Hoeiland.pdf

[12] сайт : https://213.170.100.214/

[13] группу: https://vk.com/public191194129

[14] ссылка на ask.fm: https://ask.fm/neo_mech

[15] ссылка на YouTube-канал : https://youtu.be/GEKesa6czpg

[16] задачи Эйнштейна: https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B3%D0%B0%D0%B4%D0%BA%D0%B0_%D0%AD%D0%B9%D0%BD%D1%88%D1%82%D0%B5%D0%B9%D0%BD%D0%B0

[17] «Очную ставку» NeoQUEST-2020: https://neoquest.ru/timeline.php?year=2020

[18] научно-технической конференцией «Методы и технические средства обеспечения безопасности информации»: https://neoconf.ru

[19] Источник: https://habr.com/ru/post/493740/?utm_campaign=493740&utm_source=habrahabr&utm_medium=rss