company_banner

Приключения Чиполлино: карантинный IT-квест от «Фланта»

    Привет, Хабр!



    Вы же помните Чиполлино? Да-да, того самого парня-луковицу из детской сказки. Так вот: он оказался в нашем мире в самый разгар пандемии COVID-19, наивно* полагая, что его защищают природные фитонциды… Путь героя домой, в свою луковую страну, оказался непрост. Его ждёт множество интересных загадок и головоломок, с которыми, мы уверены, Чиполлино с радостью помогут хаброжители, находящиеся на карантине.

    Итак, начнём!

    image

    * Для самых любопытных мы ограничимся простой ссылкой, а простор для более глубокого исследования оставим знатокам тематического и очень ныне популярного хаба.

    P.S.


    IT-квесты на хабре мы проводили уже не раз. И с радостью напомним: всех любителей заниматься решением увлекательных задач не только в эпоху пандемии рады пригласить в компанию! Тем более, что у нас уже давно все работают удалённо. Подробности об актуальных вакансиях читайте на job.flant.ru.
    Флант
    DevOps-as-a-Service, Kubernetes, обслуживание 24×7

    Comments 12

      0
      До SIP было норм. А устанавливать клиент ради квеста влом.
        0
        Так просто сдаться?
          +1
          Не знаю что вам ответить.
          Из 15 минут что я потратил на квест жалко только те 5, что ушли на перебив в предыдущем задании.
          Как только задачи выходят за рамки онлайн-сервисов и условно базового софта (архиватор, просмотрщик картинок, хекс-редактор) — такая задача для меня автоматически становится плохой.
        +3
        Заголовок спойлера
        А луковые колечки это точно конец?
          0
          Да, и ты, похоже, первый
          Если не сложно, опиши потом все этапы для коллег, конечно под спойлером ;-)
            +6
            Описание «серий»:
            Заголовок спойлера
            1) Поворачиваем картинку с Чиполлино и переписываем адрес:
            hkco6v4mmng7ib4iw6myoz6zakr7cwrsczifd7vfgsfc4b7lt2vc43ad
            Открывает ссылку в tor: hkco6v4mmng7ib4iw6myoz6zakr7cwrsczifd7vfgsfc4b7lt2vc43ad.onion

            2) «Путь начинается здесь...» — смотрим исходник страницы и видим странное имя файла картинки: rar.jpg
            Скачиваем его и распаковываем rar-ом

            3) Распакованный файл wo38jd7h. — это образ диска.
            Под линуксом: losetup -f ./wo38jd7h. и монтируем соответствующее устройство куда-нибудь.

            4) В образе видим файл btewQqPoclfrc8di с текстом:
            Birds tweet 64 times:
            QGFycnJyZzUK

            декодируем base64 и получаем: @arrrrg5

            5) В твиттере ищем arrrrg5
            Видим пост с картинкой кода на brainfuck
            Выполняем код
            Я так и не смог нигде адекватно распознать это как текст (по крайней мере finereader online не справился, ну или у меня руки не оттуда). В итоге набил руками и очень долго искал опечатки, так как получалась полная фигня.
            Но в итоге найдя все опечатки, получил такую строку:
            SIP voip.gonchar.uk USER ARG pass gGH5-+)yyshDajwo call PI number

            6) Подключаемся sip-клиентом и начинаем набирать «ПИ»
            Долго долбился — и 314 и 31415 и более длинные и просто PI — pi набирал — все не то.
            Пока не заметил что на номер 314 идет ответ: Address incomplete (484)
            Наудачу набрал 3141 и бинго!

            7) Слушаем что говорит «роборебенок».
            То что он там говорит — к делу не относится. Да и я так и не понял что он говорит в конце:
            7wpm5100 а потом то ли herz, то ли hearts
            Нам нужно расшифровать азбуку морзе.
            Декодеры звука искать не стал — на записи в audacity и так видно длительность тонов — точка-тире.
            «Расшифровал» по длительностям в виде точек и тире и конвертировал на одном из онлайн конвертеров. Правда тоже было несколько ошибок, пришлось «поиграть» знаками.
            Получилось: K7G5WCX5C2QMX5ZWDXHBFGV4MAJY3XUGZPLZONIT4IY5H5DQW6E2ERAD.onion

            8) По ссылке видим заголовок веб-страницы «having eyes will see» и «пустую» страницу.
            В исходниках:
            Cipollino's and signor Tomato's papa says to Giovann Battista Bellaso: My hometown is the key

            Тут на самом деле прикол — на самом деле расшифровывать ничего не надо!
            Но так непонятно что делать дальше.
            Так что читаем кто такой Giovann Battista Bellaso и узнаем, что он автор шифра.
            На онлайн декодере расшифровываем шифр Виженера
            Ключ — родной город «папы» Чиполлино и Синьора Помидора.
            Идем в википедию и находим родной город Джанни Родари — Оменья или в оригинале: Omegna
            Расшифровываем текст:
            come back to pbx and call 323577

            9) Идем обратно в sip-клиент и набираем номер 323577
            В ответ слышим пип-пип-пип-пип…
            Это dtmf-код
            Опять я не нашел декодер из звукового файла и смотрел спектр частот для каждого «пип» в audacity.
            Получил такие пары:
            851-1478 771-1339 942-1212 700-1340 699-1215 852-1212 942-1210
            700-1212 772-1479 699-1211 943-1210 700-1211 773-1338 852-1339
            943-1479 700-1212 699-1479 699-1212 699-1479 699-1212
            Смотрим стандартные частоты dtmf:
            697 — 770 — 852 — 941 — 1209 — 1336 — 1477 — 1633
            И приводим полученные пары к этим стандартным:
            852-1477 770-1336 941-1209 697-1336 697-1209 852-1209 941-1209
            697-1209 770-1477 697-1209 941-1209 697-1209 770-1336 852-1336
            941-1477 697-1209 697-1477 697-1209 697-1477 697-1209

            Ну и расшифровываем по таблице из вики: ru.wikipedia.org/wiki/DTMF#%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D1%81%D0%B8%D0%B3%D0%BD%D0%B0%D0%BB%D0%B0

            Получаем: 95*217*161*158#13131

            10) Открываем telnet-ом 95.217.161.158 порт 13131
            Ждем несколько секунд и получаем:
            2^5 MFYW2NTDGN2XOMTOMFUHIZTMOBYG2YLYNN3HC2RSOZRGKZ32NBZG6YLHN5QWW6DUM5QXU3DBON3HM3DLN5VG66LBMQXG63TJN5XCAMRVGZRWEYZANNSXSIDYIZZWOOCIOE4WIOLXJNLXEQ32N5TWIV2QONZTE5KTIJCGQY3POAQAU===
            Good luck!
            2^5 = 32
            Долго думаем и пытаемся раскодировать Base32:
            aqm6c3uw2nahtflppmaxkvqj2vbegzhroagoakxtgazlasvvlkojoyad.onion
            256cbc key xFsg8Hq9d9wKWrCzogdWPss2uSBDhcop

            11) Открываем ссылку aqm6c3uw2nahtflppmaxkvqj2vbegzhroagoakxtgazlasvvlkojoyad.onion
            Скачиваем файл mxt4n8enfwbmpq
            Пытаемся расшифровать aes-256-cbc с ключом xFsg8Hq9d9wKWrCzogdWPss2uSBDhcop
            Не знаю как правильно было задумано, но расшифровалось только после указания openssl дополнительно ключа -md md5
            Полная команда:
            openssl enc -d -aes-256-cbc -in mxt4n8enfwbmpq -out out.file -k xFsg8Hq9d9wKWrCzogdWPss2uSBDhcop -md md5

            12) Смотрим файл out.file и видим заголовки jpeg-файла.
            Переименовываем и видим поздравления!

              0
              power overwhelming)

          0
          Извините, но бросил на втором распознавании рисунка. Неужели нельзя было просто текст вставить?
            0

            Конечно можно было, но разве суть квеста не в том, чтобы найти решение?

              0
              А кстати, оно чем-то вообще распознается уверенно?
                0
                Уверенно только глазами, ocr предполагают текст на входе, в тут всё же набор символов
            +2
            OCR от HP распознал картинку с брэйнфаком без ошибок, единственный.
            И софтина есть для распознания DTMF в инете лежит на поверхности.
            Спасибо за квест!

            Only users with full accounts can post comments. Log in, please.