Skip to content

Прослушивание трафика андроид приложений

Thatskriptkid edited this page Nov 9, 2019 · 5 revisions

Для начала вам нужен рутованный телефон или эмулятор.

В качестве эмулятора вы можете юзать https://ru.bignox.com/ или официальный https://developer.android.com/studio/run/emulator. Эмулятор NOX (первый) способен запускать нормально приложения для ARM, в отличие от официального.

Теперь, вам надо скачать нужное приложение. Существует два способа, первый - скачать со сторонних (недоверенных) сайтов:

  1. https://apkpure.com/app

  2. https://apps.evozi.com/apk-downloader/

...

Второй:

  1. Установить приложение на свой родной телефон

  2. Включить режим отладки

  3. Скачиваем android sdk, там будет утилита adb, прописываем ее в path

  4. Подключаем телефон по USB, пишем:

adb shell pm list package - выдаст нам список package name всех приложений на телефоне. Берем package name и

adb shell pm path тут.имя.пакета - получаем путь к apk приложения на телефоне

adb pull ПУТЬ_К_APK ПУТЬ_ЛОКАЛЬНЫЙ_НА_КОМПЕ - скачиваем apk

Приложение у нас есть. Теперь, нам нужно приложения, для перхвата, это может быть https://portswigger.net/burp или https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project или etc. Устанавливаем данные прокси. Теперь, большинство андроид приложений общаются со своими серверами по HTTPS, тем самым приложения шифруют свои трафик. Чтобы установить такое соединение, приложению нужен такой же сертификат, который использует сервер. Нужен доверенный сертификат, которые установленны изначально в телефоне. Так как мы пускаем весь трафик через наш прокси, сертификата нашего прокси у нас нет, поэтому мы устанавливаем его - https://portswigger.net/burp/documentation/desktop/tools/proxy/options/installing-ca-certificate. Далее, пускаем весь трафик через наш прокси - прописываем прокси, для перхвата, в настройках телефона/эмулятора. Запускаем приложение - трафик должен быть виден. Если видим трафик, то успех, если нет, то тут два варианта:

  1. Приложение не использует системный прокси, который вы указали в стандартных настройках

  2. Установка сертификата в телефон недостаточна

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

Проще - вы распаковываете приложение, спомощью apktool, берете сертификат своего прокси и заменяете им все сертификаты целевого приложения.

Если сертификаты отсутствуют, то SSL pinning реализован по-другому и вы проходите сюда - https://omespino.com/tutorial-universal-android-ssl-pinning-in-10-minutes-with-frida/

Если это не помогло, значит SSL Pinning реализован в одной из библиотек, тех, что лежат в папке lib. Вы берете их и открываете в своем любимом дизассемблере и ищете.

Clone this wiki locally