Android: захват HTTP-запросов с некорневого устройства Android

88

У меня есть приложение для Android, которое использует стороннюю банку. Http-запрос отправляется из стороннего jar-файла на сервер, когда приложение работает. Мне нужно захватить HTTP-запрос, отправленный из сторонней банки. Мне интересно, есть ли простой способ реализовать с некорневым устройством

Для запуска: я попытался загрузить «proxyDroid», но ему нужен рутированный телефон. Я также попытался загрузить «акулу для рута» с «читателем акул», которому также нужно рутированное устройство. Я пробовал много других приложений, которые могли бы захватить полный запрос, но все, что ему нужно. рутированное устройство

Мне нужно кое-что, что fiddler / wirehark может сделать для Windows. Анализатор сетевых пакетов, который можно легко интегрировать с приложением Android, которое может выдавать объект запроса со всеми полями заголовка в нем.

Венкатеш
источник
Это ваше "андроид-приложение"?
CommonsWare
Да, мое приложение для Android
Венкатеш
Привет @Venkatesh, удавалось ли вам когда-нибудь успешно перехватывать HTTP-запросы с помощью некорневого Android?
@lalalalalala Нет. Я не смог добиться этого с устройством без рута.
Venkatesh

Ответы:

77

Вы можете установить Charles - прокси-сервер HTTP / монитор HTTP / обратный прокси, который позволяет разработчику просматривать весь трафик HTTP и SSL / HTTPS между их компьютером и Интернетом - на вашем ПК или MAC.

Шаги настройки:

  • Пусть ваш телефон и ПК или MAC находятся в одной локальной сети
  • Запустите Charles, который вы установили (порт прокси по умолчанию - 8888)
  • Настройте конфигурацию Wi-Fi вашего телефона: установите IP-адрес делегата на свой ПК или IP-адрес MAC, порт делегата на 8888
  • Запустите приложение в телефоне. И отслеживайте http-запросы на Charles.
SFeng
источник
4
этот учебник сработал хорошо: jaanus.com/blog/2012/02/12/…
Lionel
17
К сожалению, это условно-бесплатная программа.
flawyte
1
Вы можете попробовать альтернативу отрыжке, чтобы выполнить ту же работу. Он очень мощный и бесплатный: portswigger.net/burp
gerodim
Есть ли какой-нибудь инструмент, чтобы сделать то же самое с трафиком веб-сокетов? Я имею ввиду на самом андроиде. (Я знаю wirehark / fiddler для ПК)
Amol M Kulkarni
Что для Android
Mohsen
17

Я только что установил Drony, он не является условно-бесплатным и не требует root на мобильном телефоне с Android 3.x или выше.

https://play.google.com/store/apps/details?id=org.sandroproxy.drony

Он перехватывает запросы и отображается в ЖУРНАЛЕ

Маурисио Грасиа Гутьеррес
источник
Это то, что я ищу, но мне нужен точный исходный код для этого приложения. Можете ли вы опубликовать ссылку на исходный код для Android?
Smit.Satodia 06
2
@ Smit.Satodia Я не знаю, делятся ли они / публикуют исходный код, если кто-то сочтет это возможным, не стесняйтесь размещать ссылку в качестве комментария
Маурисио Грасиа Гутьеррес
2
Исходный код можно найти здесь: github.com/SuppSandroB/sandrop Изначально он был размещен на Google Code здесь: code.google.com/archive/p/sandrop
GabLeRoux
1
@JanWytze, если вы обратитесь к разработчикам, возможно, они помогут вам в этом.
Маурисио Грасиа Гутьеррес
17

Есть много способов сделать это, но один из них - скрипач.

Конфигурация Fiddler

  1. Перейти к параметрам
  2. На вкладке HTTPS включите Capture HTTPS Connects and Decrypt HTTPS traffic.
  3. На вкладке Подключения включите Разрешить удаленным компьютерам подключаться
  4. Перезапустить скрипач

Конфигурация Android

  1. Подключиться к той же сети
  2. Изменить настройки сети
  3. Добавьте прокси для соединения с IP-адресом вашего ПК (или именем хоста) и портом скрипта по умолчанию (8888 / вы можете изменить это в настройках)

Теперь вы можете увидеть полный журнал со своего устройства в скрипте.

Также вы можете найти полную инструкцию здесь

Араш Хатами
источник
2
Бета-версия Fiddler доступна на macOS (в зависимости от моно). Это хорошие новости, если у вас нет ПК.
MacKentoch
Спасибо, но в этом ответе я имею в виду все компьютеры. ПК / ноутбук и т.д ... :) @MacKentoch
Arash
6

Вы можете использовать скрипач в качестве веб-отладчика http://www.telerik.com/fiddler/web-debugging

Fiddler - это инструмент отладки программного обеспечения Telerik, который помогает вам перехватывать каждый запрос, инициированный с вашего компьютера.

Гражданин Кен
источник
4
Хотя эта ссылка может дать ответ на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы,
содержащие
5

Сейчас 2020 год, последнее решение - вы можете использовать Burp Suite для сниффинга https-трафика без рутирования Android-устройства.

Шаги:

  1. Установить Burp Suite

  2. Включить прокси

  3. Импортируйте сертификацию в свой телефон Android

  4. Измените конфигурацию Wi-Fi на прослушивание прокси

  5. Прибыль!

Я написал полное руководство и снимок экрана о том, как это сделать, здесь: https://www.yodiw.com/monitor-android-network-traffic-with-burp/

йоди
источник
Было бы неплохо скопировать данные с сайта, чтобы вы здесь ответили. Поскольку ваш сайт может выйти из строя. Также SO поощряет цитирование, а не ссылки по той же причине. Помимо этого отличного учебника.
Марк
Хотя, честно говоря, возможно, было лучше просто улучшить stackoverflow.com/a/39684919/5506988, чем писать еще один «ответ» .... В любом случае отличная работа.
Марк
4

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

Настройте прослушиватель прокси Burp

В Burp перейдите на вкладку «Прокси», а затем на вкладку «Параметры». В разделе «Прослушиватели прокси» нажмите кнопку «Добавить».

На вкладке «Привязка» в поле «Привязать к порту:» введите номер порта, который в настоящее время не используется, например, «8082». Затем выберите параметр «Все интерфейсы» и нажмите «ОК».

Настройте свое устройство на использование прокси

На вашем устройстве Android перейдите в меню «Настройки».

Если ваше устройство еще не подключено к используемой беспроводной сети, включите кнопку «Wi-Fi» и нажмите кнопку «Wi-Fi», чтобы получить доступ к меню «Wi-Fi».

В таблице «Сети Wi-Fi» найдите свою сеть и коснитесь ее, чтобы открыть меню подключения.

Нажмите «Подключиться». Если вы настроили пароль, введите его и продолжайте.

После подключения удерживайте кнопку сети, чтобы вызвать контекстное меню. Нажмите «Изменить конфигурацию сети».

Убедитесь, что установлен флажок «Показать дополнительные параметры».

Измените «Настройки прокси» на «Вручную», нажав кнопку.

Затем введите IP-адрес компьютера, на котором запущен Burp, в поле «Имя хоста прокси». Введите номер порта, настроенный ранее в разделе «Прослушиватели прокси», в этом примере «8082». Нажмите «Сохранить».

Проверить конфигурацию

В Burp перейдите на вкладку «Перехват прокси» и убедитесь, что перехват включен (если на кнопке написано «Перехват выключен», щелкните ее, чтобы переключить статус перехвата).

Откройте браузер на своем устройстве Android и перейдите на веб-страницу HTTP (вы можете посетить веб-страницу HTTPS, если вы установили сертификат CA Burp на свое устройство Android).

Запрос надо перехватить в Burp.

Vis
источник
2

SandroProxy кажется лучше, чем Drony (того же разработчика): вы можете (но не обязаны) удобно просматривать и анализировать трафик в браузере вашего ПК.

Должен работать и в эмуляторах.

Николай Вайткемпер
источник
1

Установите https://mitmproxy.org/ в качестве прокси в той же локальной сети

  • Открытый источник
  • Встроенный Python 3
  • Устанавливается через pip
AlexisCaffa
источник