
Скрипты Frida для переписывания мобильных приложений во время выполнения с целью прямого MitM-перехвата всего HTTPS-трафика
Часть HTTP Toolkit: мощные инструменты для создания, тестирования и отладки HTTP(S)
В этом репозитории содержатся Frida-скрипты, предназначенные для выполнения всего, что необходимо для полностью автоматизированного HTTPS MitM-перехвата на мобильных устройствах.
Этот набор скриптов можно использовать целиком — для организации перехвата, управления доверием к сертификатам и отключения проверок certificate pinning и certificate transparency — для MitM-перехвата HTTP(S)-трафика на Android и iOS. Также их можно использовать и настраивать по отдельности, чтобы хукать только отдельные функции.
Скрипты могут автоматически:
-----BEGIN CERTIFICATE-----. Вы можете открыть его в текстовом редакторе, чтобы увидеть и извлечь это содержимое.config.js и добавьте эти детали:
CERT_PEM: ваш CA-сертификат в формате PEM.PROXY_PORT: порт проксиPROXY_HOST: адрес вашего прокси с точки зрения вашего устройства (или используйте adb reverse tcp:$PORT tcp:$PORT, чтобы пробросить порт через ADB, и используйте 127.0.0.1 в качестве хоста)frida-server с github.com/frida/frida, распакуйте его, выполните adb push на устройство, а затем запустите его следующими 4 командами: adb shell, su, chmod +x /.../frida-server, /.../frida-server.adb devices) перед выполнением команд. Обратите внимание, что Frida будет работать на устройстве только от имени root, что и обеспечивает su в примере выше при запуске на рутированном устройстве. Чтобы проверить, что вы root после выполнения su или аналогичной команды, убедитесь, что whoami в оболочке выводит root.tech.httptoolkit.pinning_demo)config.js). Какие скрипты использовать — решать вам, но для Android хорошей стартовой командой будет:
frida -U \
-l ./config.js \
-l ./native-connect-hook.js \
-l ./native-tls-hook.js \
-l ./android/android-proxy-override.js \
-l ./android/android-system-certificate-injection.js \
-l ./android/android-certificate-unpinning.js \
-l ./android/android-certificate-unpinning-fallback.js \
-l ./android/android-disable-root-detection.js \
-f $PACKAGE_ID