Загрузка...

Статья Как правильно реверсить трафик Instagram/Facebook? Подводные камни, секреты. Часть 1.

Тема в разделе Реверсинг / Assembler создана пользователем AdrianRoss 8 ноя 2024. 705 просмотров

Загрузка...
  1. AdrianRoss
    AdrianRoss Автор темы 8 ноя 2024 13 6 ноя 2024


    Создаем исследовательский стенд


    Первым делом нужен андроид эмулятор. Качаем Android Studio, затем в AVD менеджере создаем новый девайс, ОБЯЗАТЕЛЬНО без гугл сервисов (они в дальнейшем помешают рутировать устройство) Запускаем эмуль, затем надо рутирвоать телефон. https://github.com/newbit1/rootAVD После успешного рута должен появиться Magisk на телефоне. Вот можете видеть он сверху по центру у меня.
    [IMG]

    Качаем Frida, ставим https://frida.re она нам нужна будет чтобы произвести SSL Unpinning, чтобы траф мы видили потом. В терминале должны быть доступны следующие утилиты:
    [IMG]

    Затем нужен Frida-server, чтобы под рутом работал на самом телефоне, качаем отсюда https://github.com/frida/frida/releases в зависимости от архитектуры эмулятора. У меня это android-x86
    [IMG]

    Скаченный файл мы по adb перекидываем на телефон в директорию /data/local/tmp. Теперь надо запустить исполняемый файл на телефоне
    Сначала заходим под рутом в shell
    adb root ; adb shell
    Далее запускаем сервер
    cd /data/local/tmp/ ; ./frida-server-... &
    [IMG]

    Проверим, работает ли фрида frida-ps -U
    [IMG]
    Показывает список всех процессов на телефоне

    Дело за малым, нам надо пустить трафик.

    Устанавливаем BurpSuite на комп, и экспортируем сертификат
    [IMG]
    Теперь конвертируем его в PEM формат (На новых андроидах не получится напрямую установить DER)
    openssl x509 -inform der -in cacert.der -out burp.pem

    Скидываем на эмулятор pem файл куда-нибудь на sdcard например и устанавливаем на самом телефоне сертификат https://www.youtube.com/watch?time_continue=85&v=BCA63bMYD7U&embeds_referring_euri=https%3A%2F%2Fwww.google.com%2F&source_ve_path=Mjg2NjY

    В Burp настраиваем ****** вот так
    [IMG]

    На телефоне прописываем так
    [IMG]

    Теперь можете попробовать зайти в браузер, траф должен пойти
    [IMG]

    Теперь непосредственно к иснтаграму. Качаем этот файл https://github.com/Eltion/Instagram-SSL-Pinning-Bypass/blob/main/instagram-ssl-pinning-bypass.js и обязательно раскоментируем //disableHTTP3();

    Теперь запускаем фриду с этим скриптом.
    frida -U -l ./instagram-ssl-pinning-bypass.js -f com.instagram.android

    Сразу скажу, если в терминале выдает [*][+] Deleting config files to disable HTTP3. Restart App. то просто перезапускаем команду Ctrl-C, ну и заново просто.
    [IMG]
    На телефоне открылась Инста и трафик пошел
    [IMG]
    Все, стенд готов, вот вам вспомогательные команды!
    1. Запуска эмулятора без открытия андроид студии. emulator -avd Pixel_6_Pro_API_28 -no-snapshot-load Надо заранее прописать env-ы чтобы emulator утилита была доступна
    2. Запуск рут-шета и frida-server adb root ; adb shell и cd /data/local/tmp/ ; ./frida-server-16.5.2-android-x86
    3. Запуск скрипта frida -U -l ./instagram-ssl-pinning-bypass.js -f com.instagram.android


    Специфика Инстаграма / Фейсбука

    Теперь поговорим о специфики самого Инстаграма и как повторять трафик.
    Весь API приложения делится на две составляющие:
    1. Обычный Api / GraphQl api - обычный привычный апи, который воспроизвести легко
    2. Bloks api - пропиетарное решение для динамической отрисовки UI

    Сразу про Bloks и что это такое. Bloks - это проприетарный фреймворк фейсбук сервисов, который динамически отрисовывает интерфейс в приложении. Нечто вроде Html, но проприетарный закрытый. Касаемо Инсты, то часть интерфейса (Логин / Регистрация / Окно блокировок / Двухфакторок / Настройка фб-аккаунта, профилей) работает именно через Bloks!

    Конкретный пример. Вот приложуха запускается, сразу запрос на /api/v1/bloks/apps/com.bloks.www.bloks.caa.login.process_client_data_and_redirect/
    [IMG]
    Результат выполнения - отрисовка вот этой логин формы
    [IMG]

    Не вдаваясь в детали, response Bloks запроса содержит в себе: а) верству (сравним с CSS) б) определенные переменные, функции, поведение кнопок, форм и прочего (сравним в javascript сниппетами)

    Как я рекомендую с ним работать?
    Есть два путя:
    а) написать свой интерпритатор, который будет обрабатывать проприетарный байт код и давать результат. Вот пример о каком коде идет речь:
    (bk.action.core.TakeLast, (bk.action.qpl.MarkerStartV2, (bk.action.core.GetArg, 0), (bk.action.core.GetArg, 1), (bk.action.tree.Make, 13704)), (bk.action.qpl.MarkerAnnotate, (bk.action.core.GetArg, 0), (bk.action.core.GetArg, 1), (bk.action.mins.CallRuntime, 6, \"app_id\", (bk.action.core.GetArg, 2))), (bk.action.bloks.AsyncActionWithDataManifestV2, (bk.action.core.GetArg, 2), (bk.action.mins.CallRuntime, 6, \"params\", (bk.action.string.JsonEncode, (bk.action.map.Make, (bk.action.array.Make, \"server_params\", \"client_input_params\"), (bk.action.array.Make, (bk.action.map.Merge, (bk.action.map.Make, (bk.action.array.Make, \"INTERNAL__latency_qpl_marker_id\", \"INTERNAL__latency_qpl_instance_id\"), ...
    Да,это именно исполняемый код, который приложении исты выполняет, там прописан свой интерпритатор на это. Но честно сказать, это очень сложно воспроизвести, поэтому предложу альтернативный вариант
    б) поиск нужный переменных regexp-ами. Че то типо такого:
    [IMG]
    Это фрагмент кода функционала Login в моем сервисе. Тут регулярками мы забираем нужные нам занчения.

    Итого скажу, все что надо обрабатывать в Bloks делаем регулярками, остальные запросы просто прописывам через привычные Api
    [IMG]
    Тут мы получаем нормальный Json с которого можем без проблем забрать всю нужную инфу.

    Двухфакторки и челенжи

    Двухфакторка в моем понимании - это сразу вылетающее окно после логина, но до входа в сам аккаунт.
    Пока мною было открыто и проработано два типа:
    [IMG]

    Челенжы чем-то похоже на двухфакторку, но их гораздо больше, и вылетают они чаще. Челендж - это вылетающее окно, требующее выполнения ключегого действия уже после входа в аккаунт и прогрузки ленты.
    Вот ключевые:
    [IMG]

    Метод обхождения фродов

    Для этого необходимо полностью воспроизводить трафик, в том числе и действия логгирования!

    Покажу пример, как обошли один из банов.
    Вот как было дело. Писал автоскрол ленты рилсов. Постоянно на 167-ом рилсе вылетал логаут.
    Решено было так, был воспроизведен запрос post-auth flow /api/v1/push/register/
    Чтобы воспроизвести данный запрос советую в Jadx + Chatgpt, найти соответствующий метод, генерирующий криптографические ключи и все это дело повторить, в целом не сложно.

    И аналогично надо воспроизводить все-все ключевые запросы!


    Заключение и приглашаю в проект кодера-реверсера!

    С тех точки зрения я рассказал что и как делать. Но у вас возникнет вопрос - а для чего? чем я таким занимаюсь? Но сперва поговорим про вас)

    Будучи реверсером, вы, по моему мнению, являетесь просто элитой всей айти индустрии, так как возиться вот с этим всем - мало навыка. Нужно непреодолимое желание, терпение, мозги. У 99% людей это отсутствует, но только не у вас. Однако данное ремесло очень специфическое, зачастую применяется в вирусологии. Если вы в данный момент свободны от работы, то у меня есть деловое предложение. Я, будучи предпринимателем, знаю, как конвертировать все навыки нашей команды в полезное для людей дело, а в последствие и в очень огромные доходы для каждого.

    Приглашаю вступить в команду, которая впервые в истории автоматизирует нишу вертикального контента (Тикток, Шортс, Рилс)! Ведь это не просто цифровая наркота, а целый рынок контента, приносящий своим креатором доходы. Мы освободим креаторов от рутины (монтаж ролика, выгрузка, мультиаккинг, менеджинг), за что будем получать вознаграждение.

    Если говорить за навыки, то нужен следующий кандидат:
    Всех, кто заинтересован, пишем в телеграм https://t.me/ENGINEER812 Все подробности расскажу

     
  2. BebiDjan
    BebiDjan 4 янв 2025 2 25 янв 2024
    пиздец.

    почему люди такие умные
     
  3. Окулист
    Окулист 21 апр 2025 Мы вас пока лечим 242 18 ноя 2022
    А зачем это
     
Top