ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Веб-уязвимости (https://forum.antichat.xyz/forumdisplay.php?f=114)
-   -   Как правильно реверсить трафик Instagram/Facebook? Подводные камни, секреты. Часть 1. (https://forum.antichat.xyz/showthread.php?t=584241)

AdrianRoss 08.11.2024 19:11

Цитата:


Всех приветствую! В этой статье будут общие советы, что и как делать, поделюсь методами исследования. Но сразу говорю, готового решения не дам, так как оно денег стоит, и очень немаленьких)


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

Цитата:


Сперва очень кратко пройдусь по тому, как собрать шайтан-стенд для исследования. Это общие заметки, которые дадут вам пошаговый план. Все подробности гуглите и смотрите.


Первым делом нужен андроид эмулятор. Качаем Android Studio, затем в AVD менеджере создаем новый девайс, ОБЯЗАТЕЛЬНО без гугл сервисов (они в дальнейшем помешают рутировать устройство) Запускаем эмуль, затем надо рутирвоать телефон. GitHub - newbit1/rootAVD: Script to root AVDs running with QEMU Emulator from Android Studio После успешного рута должен появиться Magisk на телефоне. Вот можете видеть он сверху по центру у меня.

https://forum.antichat.xyz/attachmen...1070025067.png

Качаем Frida, ставим Frida • A world-class dynamic instrumentation toolkit она нам нужна будет чтобы произвести SSL Unpinning, чтобы траф мы видили потом. В терминале должны быть доступны следующие утилиты:

https://forum.antichat.xyz/attachmen...1070135167.png

Затем нужен Frida-server, чтобы под рутом работал на самом телефоне, качаем отсюда Releases · frida/frida в зависимости от архитектуры эмулятора. У меня это android-x86

https://forum.antichat.xyz/attachmen...1070276753.png

Скаченный файл мы по adb перекидываем на телефон в директорию
Код:

/data/local/tmp
. Теперь надо запустить исполняемый файл на телефоне
Сначала заходим под рутом в shell

Код:

adb root ; adb shell
Далее запускаем сервер

Код:

cd /data/local/tmp/ ; ./frida-server-... &
https://forum.antichat.xyz/attachmen...1070472712.png

Проверим, работает ли фрида
Код:

frida-ps -U
https://forum.antichat.xyz/attachmen...1070555156.png

Показывает список всех процессов на телефоне

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

Устанавливаем BurpSuite на комп, и экспортируем сертификат

https://forum.antichat.xyz/attachmen...1070810782.png

Теперь конвертируем его в PEM формат (На новых андроидах не получится напрямую установить DER)

Код:

openssl x509 -inform der -in cacert.der -out burp.pem
Скидываем на эмулятор pem файл куда-нибудь на sdcard например и устанавливаем на самом телефоне сертификат

В Burp настраиваем прокси вот так

https://forum.antichat.xyz/attachmen...1071152255.png

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

https://forum.antichat.xyz/attachmen...1071227963.png

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

https://forum.antichat.xyz/attachmen...1071310927.png

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

Теперь запускаем фриду с этим скриптом.

Код:

frida -U -l ./instagram-ssl-pinning-bypass.js -f com.instagram.android
Сразу скажу, если в терминале выдает
Код:

[*][+] Deleting config files to disable HTTP3. Restart App.
то просто перезапускаем команду Ctrl-C, ну и заново просто.

https://forum.antichat.xyz/attachmen...1071523029.png

На телефоне открылась Инста и трафик пошел

https://forum.antichat.xyz/attachmen...1071640881.png

Все, стенд готов, вот вам вспомогательные команды!
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/
https://forum.antichat.xyz/attachmen...1072120274.png

Результат выполнения - отрисовка вот этой логин формы

https://forum.antichat.xyz/attachmen...1072207116.png

Не вдаваясь в детали, 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-ами. Че то типо такого:

https://forum.antichat.xyz/attachmen...1072567756.png

Это фрагмент кода функционала Login в моем сервисе. Тут регулярками мы забираем нужные нам занчения.

Итого скажу, все что надо обрабатывать в Bloks делаем регулярками, остальные запросы просто прописывам через привычные Api

https://forum.antichat.xyz/attachmen...1072717888.png

Тут мы получаем нормальный Json с которого можем без проблем забрать всю нужную инфу.

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

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

https://forum.antichat.xyz/attachmen...1076007261.png

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

https://forum.antichat.xyz/attachmen...1076140753.png

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

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

Покажу пример, как обошли один из банов.
Вот как было дело. Писал автоскрол ленты рилсов. Постоянно на 167-ом рилсе вылетал логаут.
Решено было так, был воспроизведен запрос post-auth flow
Код:

/api/v1/push/register/
Чтобы воспроизвести данный запрос советую в Jadx + Chatgpt, найти соответствующий метод, генерирующий криптографические ключи и все это дело повторить, в целом не сложно.

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

Цитата:


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


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

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

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

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

Если говорить за навыки, то нужен следующий кандидат:
Цитата:


Стек:
1. Python - ООП, асинхронный код, нормальная типизация, без костылей
2. FastApi - ну уметь кодить. более мене норм
3. Mongo - тут тоже надо типизировать обьекты, которые храним в документах, рааботаем так же асинхронно: Motor. Какой-то сложной логики, транзакций, сложных поисков и подобного не нужно
4. Sql - SqlAlchemy / Alembic - миграции и типизация данных в таблицах
5. Docker / развертывание сервиса - крайне желательно уметь / иметь представление как делается

Также периодически нужна будет помощь с задачей исследования трафика мобильного приложения Инстаграм. Пускаем проксю через BurpSuite и прописываем запросы в питон библиотеке. Этой задачей занимаюсь лично я, тут уже все "схвачено". Task-а для сосискателя не основная, но иногда могу попросить помочь, но тут не сложно совсем, просто рутинная задача. Если не понимаете о чем речь, не переживайте, покажу, тут действительно не сложно.


Всех, кто заинтересован, пишем в телеграм † БЛОГ ИНЖЕНЕРА Все подробности расскажу

Цитата:


Instagram, Meta, Facebook - запрещенные организации в РФ




Время: 12:34