Виртуальное устройство Android (AVD) — см. одно из следующих руководств: Эмулятор Android Studio — графический интерфейс или Эмулятор Android Studio — командная строка, чтобы узнать, как настроить AVD;
- Для этого руководства рекомендуется Android 11 (API версии 30) или более ранняя версия.
ПРИМЕЧАНИЕ
Эмулятор Android использует набор инструкций процессора x86 или x86_64. Однако некоторые приложения скомпилированы только для архитектур процессоров arm или arm64. Если анализируемое вами ПРИЛОЖЕНИЕ не предоставляет версии для x86 или x86_64, вам нужно использовать Android 9 или Android 11 на эмуляторе, поскольку эти версии включают механизм перевода из инструкций для рук в x86.
цитата>
Для перехвата сетевого трафика Android-устройства нам нужен прокси. Прокси-сервер будет действовать как посредник между устройством Android и серверами, к которым оно подключается. Существует несколько способов перехвата сетевого трафика:
- использование прокси на компьютере, например mitmproxy или PolarProxy;
- использование поддельного VPN на Android в качестве прокси-сервера, например Packet Capture или PCAP Remote.
Использование прокси-сервера на компьютере. Этот метод несколько сложнее в настройке, но в целом гарантирует большую гибкость при анализе захваченного трафика. Основной недостаток заключается в том, что весь трафик Android проходит через прокси-сервер, и найти пакеты, относящиеся к изучаемому приложению, сложнее.
Использование поддельного VPN на Android — это самый простой способ перехвата трафика, который позволяет выбрать только одно приложение для перенаправления и захвата.С одной стороны, root-права не требуются, с другой — для загрузки перехваченных пакетов на компьютер требуются дополнительные действия.
В этом руководстве мы будем использовать поддельную службу VPN, созданную приложением Packet Capture. Загрузите и установите его:
Чтобы перехватить трафик TLS, нам нужно указать нашему устройству доверять цифровому сертификату прокси-сервера. Включенная функция Packet Capture для установки цифрового сертификата не всегда работает. Итак, мы собираемся создать его с помощью openssl:
ПРИМЕЧАНИЕ
При появлении запроса на ввод пароля экспорта не оставляйте его пустым, поскольку некоторые устройства не импортируют файлы p12 без пароля. Выберите любой пароль, например 1234 .
Теперь скопируйте файл keyBundle.p12 на свое устройство:
Теперь установите цифровой сертификат ЦС на свое устройство. Путь меню, который нужно сделать, не одинаков на всех устройствах:
- AVD (API30): «Настройки» -> «Безопасность» -> «Дополнительно» -> «Шифрование и учетные данные» -> «Установить сертификат» -> «Сертификат пользователя VPN и приложения» -> «Выбрать файл».
- Samsung: «Настройки» -> «Биометрия и безопасность» -> «Другие настройки безопасности» -> «Установить из памяти устройства» -> «Выбрать файл».
Конфигурация — Использование поддельного VPN на Android
Откройте Packet Capture, затем перейдите в настройки -> Сертификат и выберите keyBundle.p12 .
После этого нажмите кнопку воспроизведения с номером 1, чтобы перенаправить только одно приложение для перехвата. Выберите браузер Google Chrome.
Для проверки откройте браузер Chrome и попробуйте получить доступ к любому веб-сайту. Что происходит?
Скорее всего, вы не сможете получить доступ к какому-либо веб-сайту из-за защиты от закрепления сертификата. Продолжайте читать, чтобы узнать, как обойти его.
Обход закрепления сертификата
После включения прокси-сервера и правильной настройки цифровых сертификатов некоторые ПРИЛОЖЕНИЯ могут по-прежнему не работать. Это происходит потому, что они могут обнаружить, что используемый нами цифровой сертификат не тот, который они ожидают. Этот метод называется закреплением сертификата. Закрепление сертификата — это дополнительный шаг для защиты сетевого трафика SSL/TLS от атак типа «злоумышленник посередине», что мы и пытаемся сделать.
Чтобы обойти закрепление сертификата, нам необходимо динамически изменять сетевой трафик. Платная версия Fiddler способна на это, но мы можем добиться желаемого результата с Frida, инструментом с открытым исходным кодом для динамического перехвата и изменения сетевого трафика.
Установите Frida на ПК
Для установки Frida нам потребуется последняя версия Python 3.x. Затем установите Frida с помощью инструмента pip:
Или скачайте бинарные файлы со страницы релизов Frida на GitHub.
Установить Frida на Android
Чтобы установить Frida на Android, сначала необходимо получить root-права на устройстве. В этом руководстве мы будем использовать виртуальное устройство Android (AVD) под управлением Android 10 (API версии 29).
ПРИМЕЧАНИЕ
Убедитесь, что frida уже поддерживает используемую вами версию Android.
Загрузите frida-server со страницы релизов Frida на GitHub, которая соответствует обоим:
- Архитектура ЦП вашего устройства Android. Если вы не уверены, проверьте это, выполнив adb shell, а затем uname -m ;
- и версия frida (клиент), работающая на рабочем столе. Если вы не уверены, проверьте это, выполнив frida --version .
Затем распакуйте его с помощью 7zip или в командной строке Linux:
ПРИМЕЧАНИЕ 1
Имейте в виду, что ваш эмулятор может быть x86 (32-разрядный), а не x86_64 (64-разрядный), который используется в этом руководстве.< /p>
ПРИМЕЧАНИЕ 2
Если вы используете физическое устройство Android, архитектура процессора может быть armv8l , в этом случае вам следует загрузить версию frida для arm64. -сервер .
Откройте новый терминал и проверьте, работает ли Frida:
ПРИМЕЧАНИЕ 1
Если вы установили Frida с помощью pip, вам может потребоваться добавить его местоположение в PATH:
В Windows ПУТЬ по умолчанию для установленных инструментов pip (адаптируйте в соответствии с вашей версией Python):
C:\Users\ \AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache \local-packages\Python39\Scripts
ПРИМЕЧАНИЕ 2
Если вам нужно завершить работу frida-server, выполните (замените 8888 на фактический PID):
Перехватывать сетевой трафик от APPS с закреплением сертификата
Предположим, что мы хотим обойти привязку сертификата Google Chrome. Первым шагом является определение имени пакета:
Затем примените javascript, который позволяет обойти закрепление сертификата с помощью Frida. В компьютере запустить:
Для браузера Google Chrome:
- со старой версией самого приложения,
- или используйте более раннюю версию Android,
- или старая версия приложения и старая версия Android.
Конфигурация -- Использование прокси на компьютере (необязательно)
Если вы предпочитаете просматривать и сохранять пакеты с помощью Wireshark, используйте метод, описанный ниже, вместо захвата пакетов.
На компьютере
Установите PolarProxyи Wireshark на компьютер. Затем запустите прокси следующим образом:
В браузере введите localhost:8088, чтобы загрузить цифровой сертификат PolarProxy. Затем установите его, как описано выше. В следующем разделе описывается конфигурация Android для использования прокси-сервера.
На устройстве Android
Если вы хотите попробовать прокси-сервер на компьютере, на вашем Android-устройстве должен быть включен прокси-сервер, вот краткое описание (пошаговые инструкции см. в этом руководстве):
ПРИМЕЧАНИЕ 1
Если на вашем компьютере работает брандмауэр, убедитесь, что разрешен трафик на прокси-сервер, особенно если вы используете физический Android-устройство.
ПРИМЕЧАНИЕ 2
Если вы используете физическое устройство Android, после настройки прокси-сервера на устройстве может появиться сообщение, подобное "Подключено, но без Интернета". соединение" и показать также ! рядом с символом Wi-Fi. Чтобы удалить это сообщение и ! сделать:
Теперь запустите frida, как показано ранее, и вы должны начать видеть пакеты в Wireshark.
flickr/mista stagga lee
Возможен мониторинг или захват трафика Wi-Fi на смартфонах и планшетах Android. Я говорю не только о блокировщиках Wi-Fi или приложениях для использования трафика, но и о полноценных сетевых снифферах, которые могут захватывать и отображать необработанные сетевые пакеты 802.11 из эфира. Вместо того чтобы делать снимки на своем громоздком ноутбуке, вы можете ходить с планшетом Android или телефоном, спрятанным в кармане.
ITworld/Эрик Гайер
Пример перехвата беспроводных пакетов с помощью Intercepter-NG.
Эти анализаторы могут быть полезны при расширенном устранении неполадок беспроводного подключения или проблем с производительностью. Они также могут помочь в аудите безопасности, тестировании на проникновение и этичном взломе, или чтобы вы могли лучше визуализировать и понять определенные уязвимости сети. Или вам может быть просто любопытно, как выглядят настоящие пакеты данных или какие именно устройства и приложения отправляют и получают.
Почти все приложения для анализа сети будут работать только на устройствах с root-доступом; если вы еще не разблокировали свое Android-устройство, рассмотрите бесплатное приложение tPacketCapture. Он предлагает захват пакетов, не требуя прав суперпользователя, с помощью службы VPN ОС Android. Это очень простое приложение, которое сохраняет пакеты в формате файла PCAP, который вы можете открыть в другом приложении или передать на ПК для просмотра. Pro-версия tPacketCapture (10,71 долл. США) и добавляет фильтрацию приложений, поэтому вы можете дополнительно захватывать пакеты только для определенного приложения.
Еще одним приложением, для которого не требуется рутированное устройство, является бесплатное приложение Wi-Fi PCAP Capture от Kismet. Однако у него есть более конкретные требования к устройству, и его необходимо использовать с определенным типом внешнего адаптера Wi-Fi. Вероятно, для этого также потребуется кабель USB on-the-go (OTG) для перехода с Micro-USB на полноценный USB Type A.
Если у вас есть Android-устройство с root-правами, вам следует рассмотреть множество других приложений. Shark for Root и SniffDroid — это два бесплатных простых анализатора, оба из которых требуют экспорта файла PCAP в другое приложение для просмотра пакетов, как и два ранее упомянутых приложения.
ITworld/Эрик Гайер
Некоторые приложения-снифферы предоставляют сканер сети или хоста, как показано на этом снимке экрана Intercepter-NG.
ITworld/Эрик Гайер
WiFinspect — одно из немногих бесплатных приложений-снифферов, которые также предоставляют сканеры уязвимостей.
Чтобы узнать больше, обратите внимание на бесплатные приложения Intercepter-NG, WiFinspect или Dr Network. Intercepter-NG также предоставляет сетевой сканер для обнаружения устройств в сети и сканер файлов cookie для взлома учетных записей. WiFinspect также предлагает функцию обнаружения сети со сканированием портов, точек доступа и других сканеров сетевых уязвимостей, а также основные сетевые инструменты, такие как Traceroute и Ping. Dr Network также предлагает обычные базовые сетевые инструменты, такие как Ping, Netcfg, Netstat, Tcpdump, Ifconfig, ARP Cache, таблица IP-маршрутизации и IP-локатор.
Два платных варианта, которые вы можете рассмотреть для корневых устройств, — это bitShark (2,99 доллара США) и Wi.cap. Сетевой сниффер Pro (15 долларов США). Оба обеспечивают только перехват пакетов, но имеют гораздо более удобный и практичный графический интерфейс, чем бесплатные приложения. Они полезны, если вы планируете просматривать и анализировать пакеты на реальном устройстве Android, хотя вы все равно можете экспортировать их в универсальный формат PCAP для просмотра на других устройствах и компьютерах.
Эта статья "Как контролировать трафик Wi-Fi на устройствах Android" была первоначально опубликована ITworld.
Необходимые инструменты:
- Wireshark ИЛИ
- Burp Suite – достаточно версии Community
Разница в том, что в Wireshark вы можете видеть трафик в обоих направлениях. В Burp Suite вы можете видеть и изменять содержимое запроса, чтобы исходящий запрос отличался от исходного на среднем уровне сетевого пути.
Предпосылки:
- Устройство должно иметь возможность подключаться к Интернету через сеть Wi-Fi вашего устройства.
Этого можно добиться, создав точку доступа Wi-Fi на своем компьютере (хост-компьютере). Ваша машина подключается к Интернету с помощью кабеля Ethernet (это снова может быть сеть Wi-Fi). Это соединение используется совместно с помощью точки доступа Wi-Fi. Действия по созданию точки доступа Wi-Fi сильно различаются в зависимости от аппаратного обеспечения хост-устройства, ОС и т. д. и здесь не рассматриваются. Затем выберите свое устройство Android для подключения к этой точке доступа Wi-Fi в настройках Wi-Fi.
После того, как все подключено, вы сможете увидеть два (или более) сетевых интерфейса на хост-компьютере. Один из них предназначен для подключения хост-компьютера к Интернету, а другой — для подключения других устройств к этому хост-компьютеру.
Как: Использование Wireshark
Для просмотра пакетов необходимо установить Wireshark. Вы можете использовать подходящий источник из списка, доступного в нижней части этой страницы, в соответствии с операционной системой вашего хоста. Если вы работаете на компьютере с Windows, вы можете использовать установщик Windows.
После установки Wireshark вы можете запустить его, и вы сможете увидеть сетевые интерфейсы, отображаемые в разделе «Захват» на странице приветствия.
Поскольку точка доступа Wi-Fi – это интерфейс, который вы используете для подключения Android-устройства к Интернету, выберите этот интерфейс для перехвата пакетов. (в моем случае это интерфейс wlo1)
Как: Использование Burp Suite
Сначала вам необходимо скачать и установить Burp Suite. Существует платная версия, но функций бесплатной версии сообщества достаточно для большинства наших обычных работ, включая эту. Вы можете скачать версию для сообщества здесь.
Есть несколько вариантов загрузки. Эта статья будет основана на простом JAR-файле Linux. Это просто и не требует настройки, если у вас уже установлена Java. JAR должен работать и в среде Windows.
Запустите загруженный файл JAR, чтобы запустить Burp Suite:
Вы должны увидеть страницу приветствия Burp Suite. Выберите «Временный проект» и запустите Burp.
После запуска Burp Suite выберите вкладку «Прокси» в строке меню.
Тогда вам нужно настроить прокси. Для этого перейдите на вкладку «Параметры» в окне «Прокси». В разделе «Привязка» выберите порт привязки, например 8989. Затем для адреса выберите конкретный вариант адреса.В раскрывающемся списке должен отображаться адрес сетевого интерфейса для вашей точки доступа WiFi. Мы должны выбрать это из выпадающего списка. Вы также можете выбрать «Все интерфейсы», если вам непонятно. Но этот IP-адрес вам все равно понадобится позже, поэтому лучше найти его прямо сейчас. Нажмите OK, чтобы сохранить и закрыть диалоговое окно добавления нового слушателя.
После этого в поле должен появиться новый прокси. Выберите запуск только нового прокси-сервера, который мы только что создали, установив флажок «Выполняется», сняв флажки с остальных.
Теперь вы готовы получать запросы от хоста. Проверьте, включен ли перехват на вкладке «Перехват».
Чтобы убедиться, что прокси-сервер работает, отправьте запрос на настроенный вами порт из браузера. Вы должны увидеть страницу, подобную приведенной ниже:
Затем вам нужно настроить Android-устройство для использования этого прокси-сервера. Перейдите к настройкам подключения к WiFi и выберите «Дополнительно».
Выберите «Прокси» для «Вручную» и вставьте IP-адрес сетевого интерфейса точки доступа Wi-Fi, в котором работает Burp Proxy, в качестве «Имени хоста прокси». Установите порт, как настроено ранее (в нашем случае 8989).
Это все. Вы должны сохранить конфигурации. Теперь запросы от вашего приложения должны проходить через Burp Proxy. Вы можете проверить это, отправив запрос на известный сайт с помощью веб-браузера на своем устройстве Android.
Когда Burp Proxy получает запрос от устройства, он будет отображаться на вкладке «Перехват». При необходимости вы можете отредактировать запрос и нажать кнопку «Вперед», чтобы разрешить его отправку на сервер. Если хотите, можете также отбросить пакет, чтобы сервер вообще не получил запрос.
Читайте также: