Запись трафика Android

В чем сложность

На Android нет механизма сделать пользовательские сертификаты доверенными. Доверие к ним определяет каждое приложение в отдельности (через network-security-policy).

HTTPs

Вариант 1

Добавить сертификат в системные сертификаты: перевести сертификат в особый вид и закинуть в особое место

Вариант 2

  1. Установить сертификат в пользовательские (так устанавливаются по-умолчанию)

  2. Перепатчить network-security-config в приложении (пример вручную или через apk-mitm)

apk-mitm

JS-программа, которая перепатчивает апк, в том числе и для обхода пиннинга и доверия пользовательским сертификатам https://github.com/shroudedcode/apk-mitm#apk-mitm

Записать весь трафик

tcpdump for android (for arm/x86 - единый бинарь) https://www.androidtcpdump.com/

Запуск: tcpdump -i any -n -w traffic.pcap 2>/dev/null &

Для расшифрования этого трафика понадобятся SSL ключи. Для их дампа можно воспользоваться frida-скриптом, написанным Vadim Egorov'ым (@vadim_a_yegorov), для Android и iOS (12/13/14/15), который помогает снимать и сохранять ключи: https://gist.github.com/vadim-a-yegorov/9d4fbcdfec055373656daa9bc97063ac

Papers And Cases

норм статья про поиски мест где на стороне библиотек системных происходит ssl pinning: https://xakep.ru/2019/09/12/ssl-sniffing/

Android SSL Pinning via frida/objection https://vavkamil.cz/2019/09/15/how-to-bypass-android-certificate-pinning-and-intercept-ssl-traffic/

Cordova: http://ivancevich.me/articles/ignoring-invalid-ssl-certificates-on-cordova-android-ios/

Last updated

Was this helpful?