Запись трафика Android
В чем сложность
На Android нет механизма сделать пользовательские сертификаты доверенными. Доверие к ним определяет каждое приложение в отдельности (через network-security-policy).
HTTPs
Вариант 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?