company_banner

Потерянные подарки Санты: новогодний IT-квест от Фланта

    Как и обещали, мы начинаем праздничный квест:



    О его старте зарегистрированные участники (таковых оказалось более 200) были уведомлены в 11:00 MSK по почте.

    Победителем станет тот, кто первым разместит правильную финальную картинку (с подарками Санты) в комментариях к этой публикации. Просим не давать подсказки в комментариях до этого момента.

    Главный приз — это, конечно, всемирная слава на хабре. Однако Санта пообещал также отправить победителю по почте электронный конструктор «Йодо» на базе Arduino-подобного контроллера, понимающего язык JavaScript. Удачи!

    ОБНОВЛЕНО: Победителем стал mizabrik, с чем мы его и поздравляем! На полное прохождение у него ушло около 7-8 часов, а здесь он рассказывает о самих заданиях. Всего в квесте приняли участие около 500 человек: эта и немного другой статистики — см. в комментарии. Большое спасибо всем, кто присоединился к нашему развлечению!

    P.S.


    А всех любителей IT-квестов не только в новый год, но и «по жизни» (да и более «жизненных» в принципе…), мы рады пригласить к нам в компанию. Подробности об актуальных вакансиях читайте на job.flant.ru.
    Флант
    427,41
    Специалисты по DevOps и Kubernetes
    Поделиться публикацией

    Комментарии 65

      0
      А я вот только прочитал про квест и был неприятно удивлен что, оказывается, регистрация уже закрыта… Вот и зачем теперь этот пост, если он актуален только для 200+ зарегистрированных в квесте?..
        0
        пока еще есть более чем все шансы для всех желающих
          +1
          Квест актуален для всех. Он начинается с опубликованной здесь картинки и регистрации более не требует. Просто у тех, кто предварительно регистрировался, есть преимущество в 1 час (они раньше получили картинку), чтобы победить.
          +1
          Для тех, кого все-же
          перехитрил англичанин
          outguess
          [aʋtʹges] v разг.
          перехитрить
            0
            тут понять бы о каком втором месте идёт речь )
              0
              Это уже не так сложно) Уж если с англичанином вы справились без подсказки)
                0
                С ним-то как раз всё несложно, всё видно по изображению и названию файла. А вот с местом… Даже с подсказкой ниже ничего не ясно.
                  0
                  Ну как же так)) С подсказкой ниже все вообще кажется очевидным
                  0
                  жирные буквы, не жирные, та раскладка, нета, тот регистр, не тот, имя/фамилия героя, фамилия актера, имяфайла, часть имени файла — could not extract any data with that passphrase — надоело.
                    0

                    Все гораздо проще, буквы не при чём

                      0
                      почему же буквы разной толщины в англичанин перехетрит тебя?
                        0
                        дааа, я тоже всякие перепробовал варианты с этими буквами, и в раскладках разных, и в комбинации с названием файла. Но это, наверное из-за стеганографии так получилось. В моем случае у меня просто не было шансов, т.к. версия софта отличалась от нужной для решения.
                          0

                          А разгадка проста: на картинку наложен был фильтр "рисование кистью" в Gimp, и он по собственному соображению раскрасил буквы разной жирностью. Никакого смысла это не несло

                  0
                  эта информация мне уже известна, но все равно ничего не понятно
                    0
                    Дождись разбора от победителя
                  0
                  На 14:00Msk все еще нет победителя и все участники еще относительно далеко от финала
                    0
                    Что-то жестко вишу после телефонного звонка, можно какой-нибудь намек? :)
                      0
                      Первое слово «affinity»? Слышно плохо…
                        0
                        да
                          0
                          Гугление по буквам и цифрам приводит на сайт ассоциации врачей? о_О
                            0
                            ниже же есть подсказка
                      +1
                      Телефонный звонок
                      Скрытый текст
                      вТорое мЕсто
                        0
                        Скрытый текст

                        и это канал, конечно. Где?

                          0
                          Хе-хе… А я вот сюда попал: www.mermaidmedical.dk/event/aast-2020
                          Думаю, почему травма и хирургия?
                            0
                            Вот тут и я подвис, так и не смог нужный канал найти.
                              0
                              Тут полно подсказок в посте по этому поводу, а скоро победитель опубликует разбор квеста
                            0
                            Здравствуйте. Дозвониться по указанному номеру больше не получится? При попытке позвонить звонок сбрасывается
                              0
                              А по какому вы звоните? Правильный точно работает
                                0
                                А что за номер из Вологды, случайный?
                                  0
                                  Это «ложный» путь
                            0
                            Тут есть ветвления и ложные пути или всё линейно?
                              0
                              линейно
                              0

                              График с цветными полосами — это

                              Скрытый текст
                              конечно же бинарный код

                                0
                                С цветными полосками было просто, но дальше
                                Скрытый текст
                                застрял на содержании письма
                                  0
                                  Конфиг для подключения OpenVPN
                                +4
                                image
                                  0

                                  Ура! Ты победитель! Будет классно, если под спойлером расскажешь весь путь!

                                    0
                                    Что там было после подключения через OpenVPN? Хотел поднять виртуалку, пока возился, не успел…
                                      0
                                      Было бы интересно посмотреть статистику от организаторов, сколько процентов участников прошли сколько этапов.
                                        0
                                        Мы можем оценить только по ip, в целом сделаю анализ за завтра
                                        0
                                        а много еще после 10.10.10.1:8080?
                                          0

                                          Не очень много

                                            0
                                            c TAR'ом вы конечно упоролись ) это вроде как подарочки распаковывать?
                                              0
                                              Я знал, что вам понравится)))
                                              Только не говори, что ты руками распаковывал
                                          +9
                                          Спасибо за классный квест! Отличный повод отложить подготовку к экзаменам в институте :)
                                          Для интересующихся — под спойлерами разбор задачек.

                                          Начало
                                          Итак, начинаем с леса, в котором нетрудно углядеть штрихкод. Собственно, используя какой-нибудь распознаватель, получаем адрес 159.69.211.35:3232.
                                          Элементарно, Ватсон
                                          По данному адресу висит изображение в JPEG:


                                          Видимые артефакты намекают на стеганографию, а в названии файла Englishman_outguess_you.jpg присутствует довольно неожиданный перевод слова «перехитрить», который наводит на утилиту Outguess. С её помощью извлекаем закодированную в Base32 ссылку jbxbcjjz.gonchar.uk:7463/jbxbcjjz.

                                          Кстати, тут есть небольшая пасхалка. Если зайти по дефолтному 80му порту на сайт с Ватсоном, тебе предложат послушать песню Wrong Way.
                                          Позвони мне, позвони
                                          По ссылке оказывается ogg-файл c песней «Позвони мне, позвони» в исполнении Ирины Муравьёвой. В метаданных призыв повторяется более конкретным образом:
                                                COMMENT         : RmxhbnQgTW9zY293IG51bWJlciBleHQgNQo=
                                                ALBUM           : RmxhbnQgTW9zY293IG51bWJlciBleHQgNQo=
                                                ZN              : 20468
                                                COMMENTS        : Позвони мне по телефону +7 8172 578 223 и узнай, что тебя ждет дальше
                                                TITLE           : Позвони мне, позвони
                                                ARTIST          : Муравьева Ирина
                                          
                                          Впрочем, на Вологодском номере звонок сразу сбрасывают, зато в комментарии/названии альбома лежит закодированная уже Base64 строка «Flant Moscow number ext 5». Находим на сайте Фланта их номер +7 (495) 721-10-27, прожимаем пятёрку и слушаем сообщение.
                                          Второе место и каналы
                                          Криповый детский голос зачитывает:
                                          Привет, рад что ты здесь. Венеция и Петербург славятся своими каналами. Запомните, редко кто знает имя того, кто занял втрое место. А теперь, следующая загадка.
                                          После этого, более приятный мужской голос оглашает «affinity aqua snow type 2 0 2 0». С божьей помощью (вернее, подсказкой из комментариев) понимаем, что «второе место» отсылает к необходимости посмотреть на вторые буквы слов: fqny2020. При достаточной степени упоротости, каналы должны навести на мысли о Телеграме, где под таким ником обнаруживается канал.
                                          Двоичный код
                                          В канале опубликован график

                                          с подписью
                                          Привет! Тебе удалось пройти часть пути, но еще много впереди. Вот и следующая загадка. И помни: не важно, кем ты представишься!
                                          Можно догадаться, что блоки O1-O4 (octet) и P (port) обозначают IP-адрес и порт, а 8 значений, отложенных по оси абсцисс, задают значения бит. В десятичной системе счисления всё это добро образует 95.216.220.159:110.
                                          Почта
                                          На 110м порту принято размещать POP3-сервера. подключившись по Telnet (к слову, мой провайдер почему-то РОСКОМНАДЗОР этот IP), можно обнаружить заветное приветствие почтового сервера. Вспоминая напутствие «не важно, кем ты представишься», вводим произвольное имя пользователя и пароль, чтобы обнаружить одно входящее письмо.
                                          После масленицы
                                          Письмо довольно большое и начинается следующим образом:
                                          http://10.10.10.1:8080
                                          
                                          client
                                          dev tap
                                          proto tcp
                                          tun-mtu 1500
                                          remote 159.69.211.35 5555
                                          nobind
                                          persist-key
                                          persist-tun
                                          
                                          Подсеть 10.0.0.0/8 зарезервирована для локальных нужд, а дальше как раз лежит файл конфигурации OpenVPN. Заводим VPN-клиент, открываем 10.10.10.1:8080 и получаем текст «I posle maslenitsy on, i v facebook razmeschen on, i suda im hodit' nado».

                                          Сразу после Масленицы начинается Великий пост, посты постят в Facebook, а ещё в HTTP есть метод POST. Отправляя туда же POST-запрос, получаем «GET here ZZZZZZZ». С 10.10.10.1:8080/ZZZZZZZ скачивается файл.
                                          Распаковка подарков
                                          Скачанный файл оказывается gzip-архивом. Внутри него лежит tar-архив, с названием «tar -xf», внутри которого лежит gzip-архив с названием «tar -xzf» внутри которого лежит tar-архив с названием «tar -xf»… Потом ещё начинают появляться zip-архивы с названием «unzip -o», и спустя 2479 распаковок мы получаем два текстовых файла.
                                          И снова Шерлок
                                          Один из файлов небольшой, вот его начало:
                                           37 2 4941
                                           5 2 4941
                                           6 3 1255
                                           37 1 2034
                                           25 4 1408
                                          
                                           11 1 2034
                                           10 2 1408
                                           4 6 419
                                           26 1 3076
                                          
                                           19 1 3076
                                          
                                          Во втором, без малого, 5000 строк длинных слов на латинице. Это книжный шифр, упоминавшийся у Дойля (и в бибисишной экранизации). Каждая непустая строка задаёт букву: третье число указывает строку в файле, второе — слово в этой строке, а первое — букву в слове. Пустые строки разделяют слова зашифрованного сообщения «MySQL USER quest PASS superquest BASE quest PORT default INSIDE VPN».
                                          πоследний рывок
                                          Подключаемся MySQL-клиентом по инструкции к 10.10.10.1, и находим таблицу под названием «pi»:
                                          +------+----------+---------+
                                          | id   | position | nexthop |
                                          +------+----------+---------+
                                          |    2 |        2 | .       |
                                          |    7 |        1 | h       |
                                          |    9 |        3 | a       |
                                          |    6 |        1 | i       |
                                          |    5 |        1 | g       |
                                          |    5 |        2 | .       |
                                          |    5 |        3 | o       |
                                          |    3 |        1 | n       |
                                          |    3 |        2 | g       |
                                          |    3 |        3 | r       |
                                          |    3 |        4 | u       |
                                          |    1 |        1 | u       |
                                          |    1 |        2 | o       |
                                          |    2 |        1 | d       |
                                          |    4 |        1 | p       |
                                          |    9 |        1 | o       |
                                          |    8 |        1 | n       |
                                          |    8 |        2 | k       |
                                          |    9 |        2 | c       |
                                          +------+----------+---------+
                                          
                                          Числа в колонке id совпадают с первыми девятнадцатью цифрами в десятичной записи числа Пи. Если переставить строки, сложив цифры в правильном порядке (position задаёт порядок вхождений для каждой цифры), колонка nexthop сложится в nupogodi.gonchar.uk.
                                            0
                                            Шикарно, спасибо
                                              +1
                                              Слушайте, если победитель так отвлёкся от экзамена, что будет когда он его сдаст?
                                          +3
                                          Самый, наверное, сложный квест на Хабре. Я лично потерял интерес где-то после звонка. Подсказка помогла, но дальше всё равно уже было не интересно.

                                          Дайте статистику, насколько я туп.
                                            0
                                            Напишите, как вы такие квесты сочиняете что курите при архивации. Много ли времени уходит, много ли народа участвует. Интересно.
                                              +1
                                              Сегодня соберу статистику и отпишу отдельным постом. По поводу придумывания: идём квеста брались из, конечно, известной всем Cicada 3301, входного задания на должность инженера во Флант и предыдущих личных наработок.

                                              Про архивы: именно так упаковать архивы и с такой вложенностью — это была попытка попросить вас автоматизировать процесс, ведь не руками же 2000+ вложенностей разбирать)
                                                +1

                                                Весело было бы в районе 1000й вложенности найти сюрприз типа rm -rf . или форкбомбу :)

                                                  +1

                                                  Я ж не зверь)

                                                  0
                                                  Надо было еще на zip уровнях пароль применить (файлы с паролями на несколько уровней выше положить), файлов пустышек положить (тоже с некоторой вложенностью), чую не досыпают вам в то что курите.
                                                  P.S. пощелкал мышкой всю вложенность примерно за 15-20 минут. От автоматизации отделяло несколько кликов, получил искомый результат.
                                                    0
                                                    Может быть, в следующий раз) я вижу, что вам не хватило сложности)))
                                                0
                                                Спасибо за квест!
                                                Завис на письме из-за \r, не наблюдая в терминале контента
                                                  0
                                                  Да, любым почтовым клиентом все работало бы на ура
                                                  +3
                                                  А вот и обещанная статистика по квесту (все, что удалось собрать)
                                                  *****************************************
                                                  * Статистика по квесту за 6 и 7 января *
                                                  *****************************************

                                                  1. Всего уникальных IP открыли картинку с Шерлоком: 497
                                                  2. Скачали песню Муравьевой (уникальных IP): 89
                                                  3. Позвонили и прослушали загадку на телефоне (всего): 80 раз
                                                  4. Посмотрели картинку с двоичным кодом (примерно): 35 раз
                                                  5. Подключились к OpenVPN: 10 уникальных IP
                                                  6. Скачали архив (всего): 14 раз
                                                  7. Открыли финальную страницу: 98 уникальных IP всего; 5 уникальных IP до публикации разбора квеста
                                                    0
                                                    Посмотрев решение, понимаю, что шансов у меня не было:) Не так обидно, что завис на первом же задании: какой ключ нужен для расшифровки Шерлока? Перепробовал кучу вариантов, ни один не подошел.
                                                      0

                                                      Никакого, просто outguess без пассфразы

                                                        +2
                                                        Важна правильная его версия:
                                                        outguess 1.1.6 под мак (gui, который в homebrew tap живет) без ключа ругается, при этом подходит ключ `photo` и на выходе 167 байт мусора (хотя вполне сойдет за какой-нибудь токен)
                                                        outguess 0.13b не достает без ключа, photo не подходит
                                                        и из попробованных только outguess 0.2 в одном из докер-наборов дал base32-строку (причем с ложным ключом он тоже выдает тот же самый «мусор»)

                                                        UPD: в changelog outguess есть запись, что в 0.2 новые DCT коэффициенты и она больше не совместима с предыдущими (по идее получается что достаточно попробовать как раз 0.13b и 0.2), а GUI основан на достаточно свежем коде и можно заставить работать скормив ему `Default key` в качестве ключа (у них закрыты issues на гитхабе, а вместо кода папки под отдельные версии с zip-ованными бинарями и коммитам только вида «Add files via upload» — скорее всего пулл-реквест делать нет смысла)
                                                          0
                                                          даа, точно без шансов для меня было. Спасибо за пояснение, по крайней мере можно не переживать, что это я не додумался:)
                                                            +2
                                                            Офигенно, два часа потратил на пиксельхантинг. Хорошо что вовремя бросил и переключился на другие дела. Мало того что стеганография должна быть от правильной программы, так еще и правильной версии! и это второй уровень, автор квеста — серьезно?
                                                              +2

                                                              Так название программы прямым текстом в имени файла с картинкой, повторно в подсказке и явно видно что картинка чем-то промодулирована(возможно там несколько слоев для усиления эффекта), а версия подходит как раз самая свежая

                                                              +2
                                                              Под линукс без вопросов сработало простое:
                                                              apt install outguess
                                                              outguess -r <название файла для расшифровки> <название файла для выхлопа>
                                                              cat <название файла для выхлопа>
                                                                0
                                                                вместо отдельного `cat` и временного файла — можно сразу писать в `/dev/stdout`:
                                                                outguess -r Englishman_outguess_you.jpg /dev/stdout | base32 -d
                                                                

                                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                        Самое читаемое