Timeweb в CTF: разбор заданий

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Что есть CTF?



Это соревнования в форме игры, но не в Counter-Strike, Quake или даже WoT. Всё проще и в то же время сложнее. Разговор наш пойдет о соперничестве команд в области информационной безопасности. Но не абы где, а в России.

image

А теперь, разберём подробнее, для непосвященных.



CTF в ИБ или Сapture the Flag — это соревнования, как правило, командные, проходящие в игровой форме, где основная задача, это захватить «флаг» у соперника, причем условия, насколько это возможно, приближены к реальным. Нечто похожее, касательно формата, есть в других играх: в пейнтболе, страйкболе и у ролевиков. Но мы говорим об ИБ, где главная цель — обеспечить стабильную работоспособность своих серверов, решать те или иные прикладные задачи, защитить информацию (флаги) и захватить её, но уже у соперника. Далее участникам конкурса отправляется флаг на специальную площадку и получается подтверждение того, что задача правильно решена. Далее участникам конкурса отправляется флаг на специальную площадку и получается подтверждение того, что задача правильно решена. Если нет, то стоит попробовать дать ответ ещё раз. И так до победного. У каждой команды свой сервер, а на сервере — сервисы. Они обычно пишутся на 5-9 языках программирования. На этих сервисах разработчиками введены уязвимости, естественно намерено, дабы соревнования проходили веселее, с задором. По итогу, жюри всё это дело проверяет, насколько всё работает корректно и стабильно. Всё игровое действо длится в среднем 7-8 часов.

Игра может проходить как очно, так и удалённо, через интернет.

image
В компьютерных играх это обычно так

Виды и особенности cоревнований СTF



С годами игра, построенная по правилам классики Capture the Flag, достаточно сильно изменилась. В настоящее время ИБ означает не только соревнования, связанное с захватом флага. Эксперименты с механиками правил проведения CTF привели к возникновению множества их видов, типов и разновидностей, с теми или иными нюансами.

Но мы остановимся на двух основных форматах. Первый — так называемый Task-Based. В данном формате участники получают набор задач. К ним нужно найти ответ и отправить. Сам ответ — это флаг, который обычно состоит из набора символов и фраз производных форм. Верно выполняешь таск — получаешь очки. За сложные задания дают больше. Задания в CTF-играх, как правило, делятся на следующие категории: найти веб-уязвимость в приложении, исследование программ и инцидентов, криптография, администрирование, поиск инфы из открытых источников, стенография и misc – разнообразные развлекательные задачи. Как видите, набор квестов, выпадающих на плечи участников-хакеров достаточно обширен.

image
А в жизни обычно так

Второй вид формата проведения соревнования — классический или Attack-Defense. В этой игре команды получают в свои руки серверы, как правило, идентичные друг другу с рядом наборов уязвимостей. Жюри время от времени подкидывают приватную инфу — флаги. Перед командами встает задача найти и устранить уязвимость на сервере, которая, как правило, не одна. И что интереснее, необходимо найти уязвимости у соперника, воспользоваться ими и увести флаг. Классика CTF проводится реже Task-Based, потому что организация сервисов несколько труднее, чем написать таски.

Также есть CTF, объединяющие в себе обе структуры. Их называют миксами. Здесь команды должны не только защитить свой сервис, попутно атакуя сервис соперников, но и решать задачи. В данном случае все ограничивается только фантазией организатора, поскольку правила и механики могут любые.

Не лишним будет упомянуть другой формат соревнований — «Царь горы» (King of the hill), где основная цель, это взломать систему, закрепиться там и не позволить соперникам скинуть вас с горы, перехватив управление. В этом вся соль. Особенность режима ещё и в том, что по истечению какого-то промежутка времени, система полностью откатывается и борьба за первенство на «горе», тобишь доступа, начинается по новому кругу.

Наше участие в СTF



Наша компания Timeweb принимает участие в этих соревнованиях впервые. Так что, так сказать, создаём практику участия и надеемся выступать на регулярной основе. От нашей компании впервые официально выступила команда (с одноименным названием компании), сформированная из сотрудников с разных отделов. Основная цель участия на данных мероприятиях, это прежде всего получения новых навыков (и отточки уже имеющихся) и бесценного опыта для членов команды CTF Timeweb, а также демонстрация всех преимуществ и особенностей нашей компании клиентам, поддержки и развития безопасности хостинга.

Мы также продвигаем свой бренд Timeweb в соревнованиях CTF и планируем найти новые контакты, не только на местном уровне внутренних соревнований в России но и на международных.

Первое официальное соревнование CTF нашей команды: TMU CTF 2021. Оно проходило с 08.09.2021 по 10.09.2021.

Организатором соревнования стал университет Тарбиат Модарес (TMU), который находится в Иране. Результатом наших состязаний стало 71 место из 496.

Вот такие интересные задания



Шифрование помогает сохранить данные в тайне, но при этом приводит к лишнему вниманию. Если файл не открывается так просто, то наверняка там что-то ценно. Таким образом, важно скрывать и сам факт наличия секретных сведений. Лучше всего это делать, растворяя конфиденциальную информацию в каком-то безобидном файле. Скажем, картинке или нескольких. Так мы обращаемся к визуальной криптографии и стенографии.

Визуальная криптография (изобретенная Мони Наором и Ади Шамиром в 1994 году на EUROCRYPT) — это особый метод безопасного шифрования сообщений таким образом, чтобы получателю для их расшифровки не требовались специальные знания, высокопроизводительные вычисления или даже целый компьютер. Достаточно лишь нашей человеческой зрительной системы и немного аналитического мышления. Ведь расшифрованная информация отображается в виде визуального изображения.

image

Наор и Шамир продемонстрировали свою идею с помощью прозрачных пленок, которые и являются слоями оригинального изображения. Каждый слой изображения печатается на прозрачной пленке. Для расшифровки полного изображения происходит накладывание всех слоев на одну поверхность. Аналогичным способом можно использовать визуальную криптографию и в компьютерных системах. В данном случае слои изображения накладываются друг на друга с помощью графических программ.

В общем, упрощая это и говоря по факту, мы складываем два изображения в одно. Сами они представляют собою, по сути, «шум» из пикселей. Наложение по пикселям этих двух картинок выводит общее расшифрованное изображение, в котором заложен скрытый текст. Тут стоит отметить, что если слоёв много и не хватает одного, расшифровать сообщение не выйдет даже самым решительным злоумышленникам.

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

Со всем этим связано следующее задание…

image

Секретный ключ

image

Разбор заданий:

Hello#Warmup

Описание:

  1. Для решения используется утилита Visual cryptography tool
  2. В папке с картинками используем команду: python visual_crypto.py -vvv --message chiped_message.png --secret secret.png
  3. Получаем флаг.


Для решения второго задания используем Binwalk, довольно быстрый, а главное, простой инструмент для анализа, который позволяет нам обнаружить в предоставленных файлах (либо дампах) скрытые файлы.

A fun visual cryptography tool will amaze your kids!
Note: Remember the flag format is TMUCTF{...}.

Решение:

Misc#Spy Agent

Описание:

Think like a spy!

194.5.207.57

Решение:
  1. 1 Переходим на страницу “/about.html” сайта “http://194.5.207.57”
  2. 2 Открываем просмотр кода страницы. И видим в коде страницы строку с содержанием base64


image

Декодируем этот текст и получаем ссылку на сайт загрузчик.
echo "aHR0cHM6Ly9tZWdhLm56L2ZpbGUvUTVaR1dMNWEjcW04Y20tV2ZVVVZMbGUyaTA2ZVJITkc0eFRwNjlRY0tJV0JaUmtGSFktVQ==" | base64 --decode
https://mega.nz/file/Q5ZGWL5a#qm8cm-WfUUVLle2i06eRHNG4xTp69QcKIWBZRkFHY-U

Скачиваем картинку.
Далее проверяем картинку на содержание других файлов утилитой binwalk
binwalk --dd='.*' imitation-game.jpg

DECIMAL HEXADECIMAL DESCRIPTION
---------------------------------------------------------------------------
0 0x0 JPEG image data, JFIF standard 1.02
6423339 0x62032B Zip archive data, at least v2.0 to extract, uncompressed size: 212356, name: Movies, Myth, and the National Security State.pdf
6619519 0x65017F End of Zip archive, footer length: 22


Файл pdf содержит несколько файлов.

Мы извлекаем из PDF файла архив через pdfcandy
pdfcandy.com
В архиве находим картинки.

image

Они представляют из себя шифр Хексахэ.
questhint.ru/hexahue
Дешифруем и получаем пароль от файлов “14mp455w0rd”

Глядя на первое изображение, которое было в самом начале, ищем скрытые файлы с помощью утилиты “steghide” и парольной фразы «14mp455w0rd» и обнаруживаем текстовый файл с флагом.

steghide extract -sf imitation-game.jpg
Enter passphrase:
wrote extracted data to "flag.txt".
cat flag.txt
TMUCTF{C41rncr055_15_4_50v137_5py!}


В третьем задании мы используем GHIDRA, которая по сути своей является утилитой для реверс-инжеринга, для изменения и преобразования бинарного кода в текст на языке ассемблера и получения информации о программе, её поведении и работе (функции, параметры, указатели на адреса памяти), когда исходный код недоступен. После анализа, мы, основываясь на полученных данных о работе программы, эксплуатируем уязвимость по сценарию, от которого получаем флаг. Хорошая альтернатива IDAPro, gdb(edb), radar2.

PWN#Baby Pwn

Описание:

Can you get the flag?

nc 194.5.207.56 7010, nc 185.239.107.54 7010

Решение:

  1. Используем утилиту ghidra для декомпиляции кода и анализируем предоставленный код. Анализ показывает 3 функции.
  2. Видим, что в функции main происходит вызов приветствия при условии переполнения локальной переменной.
  3. В этой же функции находим уязвимый gets со своим ret(адрес возврата).
  4. Переходим в функцию wow, которая не вызывается нигде, но читает флаг. Переполняем буфер приветствия и не забываем, что до адреса возврата есть еще rbp,
  5. Пишем в ret(адрес возврата) адрес wow.
  6. ret дергает со стека этот адрес и пишет его в rip
  7. Osint#The Zodiac Dessert


Описание:

Убийца Зодиака — это псевдоним американского серийного убийцы, который действовал в Северной Калифорнии в конце 1960-х годов. Неизвестный убийца назвал себя «Зодиак» в серии писем и открыток, отправленных в прессу области залива Сан-Франциско. Эти письма содержали четыре криптограммы. У меня есть одноклассник, который одержим этим убийцей, поэтому мы отправились в путешествие, чтобы посетить места убийств Зодиака. Когда мы были на месте убийства рядом с садом, мы проголодались, поэтому пошли в ближайшее кафе. Я заказал жареные креветки и немного картофеля фри с чесноком. У нее был бутерброд и десерт за 4 доллара. Сможешь узнать, какой десерт она заказала?

Примечание. Название десерта должно содержать подчеркивание вместо пробелов. Не забудьте обернуть его TMUCTF {}. Например, TMUCTF {Full_Name_of_The_Dessert}.

Решение:

Для начала гуглим: murder site near garden zodiac

image

image

Открываем первую ссылку и смотрим места убийств. Из четырех убийств подходит, только то, которое расположено рядом с «Золотыми воротами» в Presido (murder Paul Stine).

image

Ищем кафе, в котором есть garlic french fries и grilled shrimp(в GMaps: cafe with garlic french fries and grilled shrimp) конечно в области убийства.
Это должно быть недорогое кафе, в котором есть разные блюда. Из всех кафе наиболее подходит кафе Cafe Bunn Mi, оно находится рядом с убийством.
Открываем меню и листаем до десертов. Видим десерт за 4 бакса и вводим его в флаг.

image

Итоги



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

Источник: https://habr.com/ru/company/timeweb/blog/582958/


Интересные статьи

Интересные статьи

Кажется, что сложного - прийти к сотруднику и дать ему обратную связь. Мы же десятки раз преодолевали то, на чем стопорятся они. Можем увидеть, что человек движется не в ...
В ноябре 2020 года вирусная лаборатория «Доктор Веб» зафиксировала рассылку фишинговых писем корпоративным пользователям. Злоумышленники попытались применить классический метод социал...
О чем пойдет речь В рамках пятничного безумия, давайте представим, что у Вас волшебным образом появилось разрешение на работу в США, и Вы уже готовы после завтрака телепортироват...
Компании переполнили рынок товаров и услуг предложениями. Разнообразие наблюдается не только в офлайне, но и в интернете. Достаточно вбить в поисковик любой запрос, чтобы получить подтверждение насыще...
Компании растут и меняются. Если для небольшого бизнеса легко прогнозировать последствия любых изменений, то у крупного для такого предвидения — необходимо изучение деталей.