Очень круто. Я ковырял прошивку 2024 года, было бы интересно посмотреть эту. Есть возможность скинуть?
В 2024 FW лежали статические паттерны всех флагов. Один флаг можно было взять только после дампа прошивки. Там и ключ однозначно об этом говорил j00_C4nt_kn0W_Th4t_wiTH0ut_DumPing_tH3_Firmw4r3)
за восьмой флаг давали всего 600 OFC. За все "доступные" флаги давали 900 OFC.
У меня немного не сходится арифметика. Не помню точно, но за analyst + hidden_payload давали 260 OFC, за первую часть cub_3 давали еще 50 OFC
Где-то публично писали, что всего за бейдж 900 OFC?
Отлично! У меня было подозрение, что рикроллом всё не заканчивается, но не догадался как. Зато такое точно при помощи LLM не вытащишь. Теперь придётся еще второй флаг получать)
Можно по подробнее про память? Как это стало понятно? Удалось снять прошивку?
Строка использует алфавит Base58: в ней нет неоднозначных символов 0, O, I и l.
Декодировать можно в CyberChef операцией From Base58 либо Python:
s = "pHsL5tvBiZEsLNpeUcfUXyKZhSbxRn3eUJ4p1z"
alphabet = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
number = 0
for char in s:
number = number * 58 + alphabet.index(char)
result = number.to_bytes((number.bit_length() + 7) // 8, "big")
print(result.decode())
Результат:
OFFZONE{Y0u_D1d_1t_B578E7F3}
Дополнительная проверка ZIP-полей, ICC, пиксельных LSB и Steghide-структур других флагов не выявила. Итог — два флага.
Вообще хоть раз кому-нибудь приходили такого рода ссылки/файлы в WeChat и другие мессенджеры, отличные от Telegram|Whatsapp|MAX? Интересно как креативят китайские хакеры, рассылая подобное.
Из самого запоминающего, что я видел при рассылке Мамонта, было отсюда
Тут и сразу доступ к протоколу со спутников Глонасс))) Ну как такое не скачать?
А родные и знакомые порой поражают: когда объясняешь как пароль настроить или приватность включить -- сложно и зачем. А приложение скачать-поставить-дать разрешения -- легко и что такого.
Вообще "защита" тут конечно громко сказано. Наоборот, любой сканер должен обратить внимание на такую странность. Но имеем, что имеем, и я обратил на это внимание.
На Android 14 спокойно установился. Но дальше не прошёл проверку самим вредоносом - ему не понравился набор ПО.
Интересно с какой версии Android добавили такую проверку. Есть ссылка на такую новость?
Всё равно надо учесть, что по статистике последние версии Android (15 и 16) не более чем 40% пользователей.
Так становится еще хуже. Если раньше для входа через веб требовался логин+пароль+код из смс, то теперь очень часто только логин+код. А логин совпадает с номером телефона) И всё.
TOTP — отличная рекомендация для Госуслуг, спасибо. Только не все банки поддерживают TOTP Вообще использовать отдельный телефон для всего критически важного — банки, госуслуги, один из возможных способов защиты. Со своими плюсами и недостатками. Такой способ рекомендовал Кевин Митник в своей книге «Искусство быть невидимым».
Все верно. Поэтому "зеленый" вердикт от Virustotal или антивируса ни в коем случае не гарантия того, что файл или ссылка безопасная. Но если явно "красный", то открывать точно не стоит.
Вот так бы APK с Max-ом разобрать, что и куда он отправляет.
Уже было очень поверхностное исследование https://habr.com/ru/articles/938518/ Но надо смотреть какие изменения в коде были за это время, функционал мог добавиться разный, даже если разрешения не поменялись. Сегодня явного вредоносного функционала нет, а завтра?
Как-то не впечатляет. Лет десять назад на почту без спам-фильтров валилось великое множество зловредов, были среди них и JAR-файлы.
Злоумышленнику нет никой задачи впечатлить исследователя. Главная - пройти статические фильтры и усложнить беглый анализ. Тут всё работает по схеме "время стоит денег" и времена, когда хакеры писали код для того, чтобы показать свои технические навыки, уже ушли. В вашем случае JAR файлы были сложнее, потому что должны были пройти возможную проверку антивирусом на стороне почтового сервера. В большинстве случаев в вирусах Мамонт-like никто даже строки не шифрует - антивирусов на телефонах нет. И, к сожалению, это всё работает и довольно успешно.
Если хочется почитать, про более сложные вещи - у Angara Securityвыходила статья про BT MOB Rat - там и тех поддержка есть и более сложные алгоритмы противодействия исследованию.
Формулировка "перед тем скачать, проверить" явно кривоватая. Если пришла ссылка на файл, то её можно проверить через Virustotal - там может и не файл вовсе. Если прям пришёл файл в сообщении, то можно воспользоваться телеграм-ботом от Доктор Веб (https://telegram.me/drwebbot).
Так изначально специалисты GroupIB/F.A.C.C.T/F6 назвали семейство ВПО (https://www.f6.ru/media-center/press-releases/fake-courier/). Потом даже злоумышленники подхватили и стали сами так называть внутри свои приложения. Сейчас это целое семейство схожих между собой вредоносных приложений, нацеленных на обман пользователей Android и получение доступа к SMS, всплывающим сообщениям и любым способам монетизации зараженных устройств. Разработчики в основном русскоязычные - в марте 2025 даже нескольких МВД уже взяли (https://tass.ru/proisshestviya/23545883). Но как показала практика схема еще долго не "вымрет".
Конечно, в разных версиях ОС у kernel32.dll разные CRC. Поиск kernel32.dll осуществляется через PEB в памяти текущего процесса по имени библиотеки (BaseDllName). Чтобы не было явного сравнения с kernel32 в коде, имя библиотеки хешируется и сравнивается с 0x6A4ABC5B. Это стандартная практика неявного получения необходимых функций. Обычно получают LoadLibrary, GetProcAddress, VirtualAlloc, VirtualProtect). Здесь можно посмотреть пример поиска https://www.ired.team/offensive-security/code-injection-process-injection/finding-kernel32-base-and-function-addresses-in-shellcode . Только по ссылке не используется хеширование.
Указанный плагин в данном фрагменте не сильно поможет, тут вашим скриптам конкурентов нет. Я его привёл в качестве готового инструмента, который тоже может помочь при разборе такого рода таблиц импорта. И да, он лучше всего подходит для разбора шеллкодов. Для данных образцов плагин максимум прокомментирует хеши, чтобы получилось примерно так:
Комментарии плагина в псевдокодеКомментарии к найденным хешам
Мне всё равно пришлось добавить функцию хеширования BlackMatter в скрипт сбора хешей и пересчитать базу для него, так как среди имеющихся функций хеширования ни одна не подошла. Зато теперь можно указывать соль, когда плагин ищет по всей IDB, и для образцов с другой солью пересчитывать хеши не придётся.
Написал в личку
Очень круто. Я ковырял прошивку 2024 года, было бы интересно посмотреть эту. Есть возможность скинуть?
В 2024 FW лежали статические паттерны всех флагов. Один флаг можно было взять только после дампа прошивки. Там и ключ однозначно об этом говорил
j00_C4nt_kn0W_Th4t_wiTH0ut_DumPing_tH3_Firmw4r3)У меня немного не сходится арифметика. Не помню точно, но за
analyst+hidden_payloadдавали 260 OFC, за первую частьcub_3давали еще 50 OFCГде-то публично писали, что всего за бейдж 900 OFC?
Отлично! У меня было подозрение, что рикроллом всё не заканчивается, но не догадался как.
Зато такое точно при помощи LLM не вытащишь.
Теперь придётся еще второй флаг получать)
Можно по подробнее про память? Как это стало понятно? Удалось снять прошивку?
Сейчас проверил и оказалось, что эти задания легко пройти при помощи LLM. Кроме куба, конечно.
Закинул HEX из hidden_payload в чат с GPT и она мне выдала сразу все 2 флага за 13 минут и рассказала как их получить.
Ответ ChatGPT
Нашёл два флага:
OFFZONE{Th1s_1s_0nly_Th3_B3g1nn1ng_A7E6FE25}OFFZONE{Y0u_D1d_1t_B578E7F3}1. HEX → Base64
Из таблицы нужно оставить только шестнадцатеричные строки, объединить их и декодировать:
Начало результата:
UEsDB— характерное начало ZIP, закодированного в Base64:Получаем:
2. Повреждённый ZIP
При проверке архива возникает ошибка:
Архив содержит один файл:
В Base64 намеренно изменён регистр одного символа. На смещении
582находитсяO, хотя должно бытьo:Исправляем:
Теперь CRC совпадает:
Повреждение затрагивало ICC-профиль JPEG: сигнатура
XYS\xa0после исправления превращается в нормальнуюXYZ. Совпадение CRC71578a5dподтверждает, что замена правильная.3. Первый флаг — EXIF
Смотрим метаданные изображения:
Результат:
Или через ImageMagick:
Первый флаг:
4. Данные после конца JPEG
Проверяем сигнатуры внутри файла:
Получаем:
Маркер
FF D9завершает JPEG на смещении1074, а сразу после него начинается ещё один ZIP. Вырезаем его:Внутри один файл:
Извлекаем содержимое:
5. Base58 → второй флаг
Строка использует алфавит Base58: в ней нет неоднозначных символов
0,O,Iиl.Декодировать можно в CyberChef операцией
From Base58либо Python:Результат:
Дополнительная проверка ZIP-полей, ICC, пиксельных LSB и Steghide-структур других флагов не выявила. Итог — два флага.
<offtop>
Иконку с дельфином и оригинальной надписью можно найти на windows93.net и она даже работает
</offtop>
Вообще хоть раз кому-нибудь приходили такого рода ссылки/файлы в WeChat и другие мессенджеры, отличные от Telegram|Whatsapp|MAX?
Интересно как креативят китайские хакеры, рассылая подобное.
Из самого запоминающего, что я видел при рассылке Мамонта, было отсюда
Тут и сразу доступ к протоколу со спутников Глонасс))) Ну как такое не скачать?
А родные и знакомые порой поражают: когда объясняешь как пароль настроить или приватность включить -- сложно и зачем. А приложение скачать-поставить-дать разрешения -- легко и что такого.
В
recordкаждого файла и вdirEntry.Вообще "защита" тут конечно громко сказано. Наоборот, любой сканер должен обратить внимание на такую странность. Но имеем, что имеем, и я обратил на это внимание.
На Android 14 спокойно установился. Но дальше не прошёл проверку самим вредоносом - ему не понравился набор ПО.
Интересно с какой версии Android добавили такую проверку. Есть ссылка на такую новость?
Всё равно надо учесть, что по статистике последние версии Android (15 и 16) не более чем 40% пользователей.
Так становится еще хуже. Если раньше для входа через веб требовался логин+пароль+код из смс, то теперь очень часто только логин+код. А логин совпадает с номером телефона) И всё.
Посоветуете модель аппаратного 2FA ключа с USB+NFC, который стоит не дорого и можно без проблем купить?
И мы будем авторизовываться через мессенджер MAX)
А если серьезно, то токен — очень хороший вариант, но не везде применимый.
TOTP — отличная рекомендация для Госуслуг, спасибо. Только не все банки поддерживают TOTP
Вообще использовать отдельный телефон для всего критически важного — банки, госуслуги, один из возможных способов защиты. Со своими плюсами и недостатками.
Такой способ рекомендовал Кевин Митник в своей книге «Искусство быть невидимым».
Для любителей YARA — правило для выявления таких образцов
Yara
Все верно. Поэтому "зеленый" вердикт от Virustotal или антивируса ни в коем случае не гарантия того, что файл или ссылка безопасная.
Но если явно "красный", то открывать точно не стоит.
Уже было очень поверхностное исследование https://habr.com/ru/articles/938518/
Но надо смотреть какие изменения в коде были за это время, функционал мог добавиться разный, даже если разрешения не поменялись.
Сегодня явного вредоносного функционала нет, а завтра?
Злоумышленнику нет никой задачи впечатлить исследователя. Главная - пройти статические фильтры и усложнить беглый анализ. Тут всё работает по схеме "время стоит денег" и времена, когда хакеры писали код для того, чтобы показать свои технические навыки, уже ушли.
В вашем случае JAR файлы были сложнее, потому что должны были пройти возможную проверку антивирусом на стороне почтового сервера.
В большинстве случаев в вирусах Мамонт-like никто даже строки не шифрует - антивирусов на телефонах нет. И, к сожалению, это всё работает и довольно успешно.
Если хочется почитать, про более сложные вещи - у Angara Securityвыходила статья про BT MOB Rat - там и тех поддержка есть и более сложные алгоритмы противодействия исследованию.
Формулировка "перед тем скачать, проверить" явно кривоватая.
Если пришла ссылка на файл, то её можно проверить через Virustotal - там может и не файл вовсе.
Если прям пришёл файл в сообщении, то можно воспользоваться телеграм-ботом от Доктор Веб (https://telegram.me/drwebbot).
Так изначально специалисты GroupIB/F.A.C.C.T/F6 назвали семейство ВПО (https://www.f6.ru/media-center/press-releases/fake-courier/). Потом даже злоумышленники подхватили и стали сами так называть внутри свои приложения. Сейчас это целое семейство схожих между собой вредоносных приложений, нацеленных на обман пользователей Android и получение доступа к SMS, всплывающим сообщениям и любым способам монетизации зараженных устройств. Разработчики в основном русскоязычные - в марте 2025 даже нескольких МВД уже взяли (https://tass.ru/proisshestviya/23545883). Но как показала практика схема еще долго не "вымрет".
Конечно, в разных версиях ОС у kernel32.dll разные CRC.
Поиск kernel32.dll осуществляется через PEB в памяти текущего процесса по имени библиотеки (BaseDllName). Чтобы не было явного сравнения с kernel32 в коде, имя библиотеки хешируется и сравнивается с 0x6A4ABC5B. Это стандартная практика неявного получения необходимых функций. Обычно получают LoadLibrary, GetProcAddress, VirtualAlloc, VirtualProtect). Здесь можно посмотреть пример поиска
https://www.ired.team/offensive-security/code-injection-process-injection/finding-kernel32-base-and-function-addresses-in-shellcode . Только по ссылке не используется хеширование.
Указанный плагин в данном фрагменте не сильно поможет, тут вашим скриптам конкурентов нет. Я его привёл в качестве готового инструмента, который тоже может помочь при разборе такого рода таблиц импорта. И да, он лучше всего подходит для разбора шеллкодов.
Для данных образцов плагин максимум прокомментирует хеши, чтобы получилось примерно так:
Мне всё равно пришлось добавить функцию хеширования BlackMatter в скрипт сбора хешей и пересчитать базу для него, так как среди имеющихся функций хеширования ни одна не подошла. Зато теперь можно указывать соль, когда плагин ищет по всей IDB, и для образцов с другой солью пересчитывать хеши не придётся.