Череп снова вернулся и в этот раз организовал нечто масштабное. Хакеру понадобилась сильная команда для взлома государства F и он пригласил всех желающих попробовать стать его напарниками в этом деле. Волнует лишь один вопрос…. Кого же убил Энтони?
▍ Начало
31 октября в 11 утра на Хабре появился пост от нашего старого знакомого 5kull_h4ck3r. Изучив его, можно понять, что хакер готовится к чему-то крупному:
Однако в самом сообщении мы не видим никаких возможных подсказок — изучим подробнее приложенный к посту ролик.
Внимательно смотрим и замечаем несколько странностей:
- На 0:21 изображение прерывается на картинку танка — на нём написано «435».
- На 0:31 на телевизоре лежит записка с пляшущими человечками.
- В конце видео слышен непонятный шум.
Записка — не детский рисунок, а сообщение, зашифрованное с помощью шифра пляшущих человечков, придуманного аж самим Артуром Конаном Дойлем в 1903 году! В интернете легко можно найти декодер (например, здесь):
Однако у нас всё равно остаётся несколько пустых позиций… Давайте попробуем заполнить их цифрами с танка! Тогда у нас получится h4ck3r.5kull@yandex.ru, или же адрес электронной почты для связи с хакером.
Услышав шум из конца видео, опытный решающий сразу подумает посмотреть в спектрограмму. Сделать это можно, к примеру, с помощью Audacity:
Бинго! В спектрограмме мы видим IP-адрес — 45.132.16.89. Давайте попробуем зайти туда.
▍ Анализ веб-сервиса и его эксплуатация
Заходим на полученный адрес и видим какую-то панельку:
По слову «tg» можно предположить, что подразумевается взаимодействие с мессенджером Telegram — введём какой-нибудь никнейм и попробуем запросить информацию:
На этом этапе можно было, просто предположив или введя неправильный никнейм и получив возможный «None», догадаться, что на бэкенде сервиса сидит Python и попробовать сделать SSTI (Server-Side Template Injection).
SSTI (инъекция в шаблон на стороне сервера) происходит, когда злоумышленник может использовать шаблонный синтаксис для внедрения вредоносной полезной нагрузки в общий шаблон, которая затем выполняется на стороне сервера.
Для проверки можно использовать выражение {{7*7}} — помещаем его в описание либо в юзернейм и проверяем:
В ответ мы получили 49 — значит, приложение уязвимо! Можно попробовать получить доступ к серверу через реверс-шелл, а можно прочитать директории и понять, что в папке лежит файл flag.txt. Давайте попробуем его прочитать:
{{‘’.__class__.__mro__[1].__subclasses__()[359](‘flag.txt’).read()}}
Успех! Получаем строку MzQyNjM0MzE4NTE4ODIwMA.
▍ OSINT
Раскодировав содержимое flag.txt из base64, получим 3426343185188200. Но что это?
На этом этапе наша команда дала много подсказок, которые должны были наставить на правильный путь. Однако изначальная версия задания подразумевала, что решающий догадается до правильного применения.
Как понимаете, после такой просьбы мы не смогли остаться равнодушными и всё-таки дали хинт
Например, такой:
Предположим, что это координаты — получим 34.263431, 85.188200. Однако поиск не даёт ничего…. Но ведь координаты есть ещё и отрицательные! Пробуем поиграться со знаками и получаем координаты какого-то ресторана (34.263431, -85.188200):
Координаты указывают ровно на это место — изучаем историю этого ресторанчика, пробуем скомпоновать его с другими ключевыми словами в поиске (например, «murder») и видим полную историю трагедии:
Теперь пишем на почту хакеру о злодеяниях Энтони и получаем заслуженный приз.
▍ Как это было
▍ Итоги
Правильно и вовремя ответить на вопрос удалось только одной команде, в которую вошли Not-alone, void и flylive
Поделиться ссылкой:
Интересные статьи
Интересные статьи
Внедрение SRE-практик в компаниях может происходить по-разному. Где-то решение об этом принимает менеджмент, где-то это может быть инициатива снизу. В любом случае может встать вопрос: как организоват...
MIT каждый год выбирает десять технологий, которые имеют наибольшее значение для человечества. 2023 год не стал исключением, поэтому мы решили бережно перевести этот большой материал для читателей Хаб...
После анализа токеномики становится понятно, что экономическая модель токена SUI не устойчива. Чтобы поддержать его цену на уровне есть два пути.Первый. Фонды должны выкупать слитый в стакан объё...
К старту курса о машинном и глубоком обучении делимся мнением Мэтью Стюарта, соискателя степени кандидата наук в Гарварде, который, по собственному признанию, устал слышать эти дебаты, повторяющиеся в...
Memory pressure -- это состояние, когда системе не хватает свободной памяти. Обычно его разделяют на moderate и critical. Moderate -- это когда памяти "мало, но пока еще ...