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

NeoQUEST-2020 [1] подошел к концу, и сейчас самое время рассказать про эти насыщенные две недели: раскроем суть заданий (но не всех, некоторые выйдут отдельными врайт-апами), покажем статистику их прохождения и объявим победителей!
Внимание! Статья содержит спойлеры для тех, кто еще не проходил задания, но честно собирается (а такая возможность есть – сайт [2] online этапа продолжает работать!).
Не будем томить долгим вступлением. В этом году стали победителями стали:
Трехкратное «ура» этим ребятам! Борьба за первое место развернулась нешуточная — лидер менялся чуть ли не каждый день. Также стоит отметить, что hellow0rld666 и KARASIQUE стали участниками, которые прошли ВСЕ наши задания! Мы не поверили своим глазам, но бывает и такое.
Забавный факт: все задания, которые вызвали бурный интерес в первый день соревнования, были разработаны девушками :)
На протяжении двух недель наш почтовый ящик support@neoquest.ru не переставал подавать сигналы о приеме входящих сообщений! Но мы этому только рады — это значит, что наши задания проходят и интересуют участников!
Итак, что же у нас было в заданиях.
Задание №1 — «Против взлома нет приема»
Участникам была дана ссылка, переходя по которой они попадали на страничку с единственной надписью «Привет, мир!». Что мы делаем с самого начала в подобных случаях? Конечно же, лезем в исходный код страницы:

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 — «Уравняй меня, если сможешь»
Дана картинка:

Хитрость задания заключается в том, что данное диофантово уравнение [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]. Тут мы узнаем, что наш робот пытается стать не только человеком, но еще и блогером! Осталось совсем чуть-чуть: проследить за подсказками на видео.
Вид пароля подсматриваем в ежедневнике:

Город мечты понятен из заставки рабочего стола — Париж. Имя питомца тоже не остается незамеченным — 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 к серверу, который выдаст правильный ответ. Сложность заключается в том, что до этого нужно додуматься :) Но многие наши участники доблестно с этим справились, ура!
Статистика этого года получилась следующей:
Распределение участников, нашедших хотя бы один ключ:

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

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

На данный момент мы планируем провести «Очную ставку» 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
Нажмите здесь для печати.