Череп снова вернулся и в этот раз организовал нечто масштабное. Хакеру понадобилась сильная команда для взлома государства 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 🏆 Что же получили триумфаторы? А это, как и было сказано взломщиком, право принять участие в грандиозном событии — кибербитве Standoff, которая прошла с 21 по 24 ноября в рамках Moscow Hacking Week на специальном киберполигоне — виртуальной копии современного государства. На макете были представлены шесть отраслевых сегментов: энергетический, нефтегазовый, транспортный, финансовый, космический, а также городская экосистема. Cпутник-сервер RUVDS представлял весомую часть космической отрасли: участникам Standoff нужно было получить контроль над действующим космическим аппаратом в условиях, максимально приближённым к реальности. Но это уже совсем другая история… О заданиях со Standoff мы расскажем во всех подробностях в отдельном посте.
Автор:
ru_vds