Charles перехват пакетов wifi

Обновлено: 06.07.2024

Если вы используете мобильное устройство, то ставим 100 баксов, что ваши приложения пересылают довольно много разной информации на их сервера и обратно. Чтобы убедиться в отсутствии ненадлежащего сбора данных, стоит настроить веб-прокси для отслеживания всего трафика, чтобы совершенно точно знать, какие приложения «звонят домой» и когда.

В конце концов, мы не знаем, какого рода сбор данных случится в следующее мгновение. Это может быть все что угодно — от данных о том, сколько времени вы проводите перед телефоном, до необработанных данных датчиков вашего телефона. Такую информацию компании собирают достаточно часто либо для внутренней аналитики, либо для продажи на сторону. Поэтому резонно предположить, что существует какая-то информация, которой вы не хотели бы делиться.

Шаг 1. Установите Charles Proxy на ваш компьютер

Charles — это чрезвычайно мощный инструмент, не только для анализа трафика приложений, но и для любых видов анализа и отладки веб-приложений. Поэтому если вы занимаетесь мобильной разработкой, то это будет хорошая инвестиция. Если вы просто хотите посмотреть, что происходит с приложениями на вашем смартфоне или планшете, то бесплатной пробной версии будет достаточно. Только имейте в виду, что бесплатная пробная версия ограничена 30-минутными сеансами, поэтому вам нужно будет закрывать и перезапускать Charles каждые 30 минут.


После загрузки файла MSI, DMG или TAR.GZ откройте его и следуйте инструкциям по установке. Charles устанавливается точно так же, как и любое другое приложение, которое вы устанавливаете из сжатого файла.

Шаг 2. Откройте Charles Proxy для начала сессии

После установки Charles откройте его. Если вы используете macOS (ранее Mac OS X), то для правильной работы этого приложения вам необходимо предоставить ему разрешение изменения системных сетевых настроек. Вы можете сделать это позже, но в момент установки сделать это проще — просто нажмите на кнопку «Предоставить привилегии». Вам нужно будет ввести для этого пароль.


В системе Windows вам необходимо «Разрешить доступ» в появившемся предупреждении системы безопасности Windows. Просто следуйте инструкциям, показанным ниже (оставьте опцию «Private» выбранной, а «Public» соответственно нет). Вам может потребоваться ввести пароль администратора для сохранения ваших настроек.

Читать также: Как перестать делиться своим местоположением с другими пользователями iPhone



Шаг 3. Найдите IP-адрес и номер порта вашего компьютера

Определенные шаги по настройке вашего браузера и операционной системы для маршрутизации трафика через Charles будут отличаться в зависимости от того, что именно вы используете. Если вы хотите использовать Charles для проверки веб-трафика из вашего браузера, то мы рекомендуем посетить страницу документации Charles по этой теме.

Для наших целей мы хотим проверить трафик, поступающий со смартфона, поэтому мы начнем с настройки iPhone, чтобы он использовал наш компьютер с запущенным Charles Proxy, как прокси-сервер.

Сначала на компьютере, на котором работает Charles, выберите «Справка» в меню, затем меню «SSL Proxying» и выберите «Install Charles Root Certificate on a Mobile Device or Remote Browser».


Вы увидите диалоговое окно, подобное указанному на скриншоте, которое предоставляет IP-адрес и порт для машины, на которой работает Charles:


Шаг 4. Настройте ваш телефон для использования Charles Proxy

На iPhone перейдите к меню «Wi-Fi» в приложении «Settings», затем убедитесь, что он находится в той же сети, что и Charles. Нажмите значок информации рядом с подключенной сетью, а затем прокрутитесь вниз и выберите «Configure Proxy». Выберите строку «Manual» и введите номера сервера и порта из последнего диалогового окна, которое выдал вам Charles. Нажмите «Сохранить», чтобы закончить.

Для телефонов на Android процесс немного отличается в зависимости от версии OEM и программного обеспечения. Как правило, вы открываете настройки Wi-Fi, нажимаете и держите меню общей сети. Затем нужно выбрать что-то вроде «Управление сетевыми настройками» или «Изменить сеть» или значок карандаша. Найдите отображение дополнительных параметров, а затем откройте настройки «Прокси» и вручную введите номера серверов и портов, которые Charles дал вам раньше. Не забудьте нажать на «Сохранить», чтобы закончить.




Шаг 5. Разрешите соединения к Чарльзу

Когда ваш смартфон будет подключен к Charles, то вы на вашем компьютере увидите диалоговое окно, предупреждающее вас о том, что Charles получил входящее соединение. Выберите «Разрешить». Если вы вдруг случайно запретите входящее соединение, то для того, чтобы еще раз получить это приглашение, вам придется перезапустить Charles.


Шаг 6. Установите на ваш телефон корневой сертификат

С помощью веб-браузера на вашем смартфоне перейдите на chls.pro/ssl.

На iPhone вы сразу же получите запрос с просьбой разрешить сайту показывать вам профиль конфигурации. Нажмите «Разрешить». После этого вы попадете на экран Install Profile для Charles Proxy CA. Нажмите «Установить», вас перенаправят на страницу предупреждения. Нажмите «Установить» еще раз, и еще раз на всплывающем окне. Наконец, нажмите «Готово», чтобы закончить.

Если вы находитесь на iOS 10 или выше, то вам также придется посетить «Общие» в приложении «Settings». Выберите меню «About», а затем «Certificate Trust Settings» ниже. В разделе «Enable Full Trust for Root Certificates» нажмите на слайдер, расположенный рядом с CA Charles.

Читать также: Как автоматизировать взлом Wi-Fi с помощью Wifite2






Обратите внимание, что для установки сертификата из Charles Proxy вам необходимо выключить блокировщики рекламы, работающие на основе DNS. Кроме того, в дальнейшем при анализе данных включение вашего блокировщика рекламы будет только маскировать трафик, поэтому лучше оставить его выключенным, пока вы используете Charles.



Шаг 7. Включите проксирование SSL для всех хостов

Мы пока не закончили. Еще один шаг перед просмотром всех данных, поступающих из приложений. Вам нужно включить в Charles SSL-проксирование для всех хостов. Перейдите в меню «Proxy», затем выберите «SSL Proxying Settings».


Когда параметры появятся, нажмите кнопку «Add» на вкладке «SSL Proxying». Когда появится окно «Edit Location», просто нажмите «ОК» или вручную введите * (одну звездочку) в поле «Host» и нажмите «ОК». Это подстановочный знак, который означает, что настройки применяются ко всем хостам. Если оставить поле Host пустым, то поле само создаст подстановочный знак.

Для сохранения изменений в окне настроек SSL Proxying обязательно нажмите «ОК». И теперь, когда вы все настроили, откройте приложение на вашем смартфоне и посмотрите, какие данные он отправляет!


Шаг 8. Изолируйте трафик телефона от трафика других устройств


В настройке Windows вам необходимо открыть «Settings». Затем выберите «Network & Internet», затем «Proxy». Находясь там же, прокрутитесь вниз до Manual proxy setup, затем переключите слайдер «Use a proxy server». В отличие от Mac, вам не придется делать это каждый раз после перезапуска Charles.


Шаг 9. Проанализируйте результаты

Мы решили проверить это на том, чем пользуемся очень часто. Решили выбрать Strava — это мобильный фитнес-трекер, который позволяет пользователям записывать и загружать данные для тренировок. Когда мы открываем Strava на нашем смартфоне, мы видим несколько хостов, т.е. доменов, отображенных в левой панели в Charles.


Раскрыв любой из них, можно просмотреть его содержание в панели «Contents» справа. Там вы можете точно узнать, какую информацию эти приложения отправляют производителям и третьим лицам. Мы распознали в одной из записей Strava широко используемую платформу аналитики и решил проверить ее.

Читать также: Хранит ли компьютер Mac папки «Рабочий стол» и «Документы» из iCloud Drive локально


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

Следите за запросами к известным приложениям от аналитических компаний. Некоторые из наиболее популярных — это Segment, Fabric, Flurry и Firebase. Провайдеры рекламы также получают довольно большой объем отслеживаемых данных и это тоже повод посмотреть на содержание этих данных. Определить их можно по имени хоста.

Не удается заставить некоторые приложения работать на вашем телефоне?

Многие приложения реализуют привязку сертификата SSL, что означает, что они специально проверяют корневой сертификат и не будут восприимчивы к атакам типа «Человек-по-Середине». В нашем случае сертификаты проверяет настоящий API Strava, но третьи лица, получающие нашу информацию — нет.

Если вы попробуете использовать приложение на вашем телефоне и оно не будет загружаться или работать должным образом, то, вероятно, оно реализует привязку SSL-сертификата, поэтому вы и не можете увидеть предназначенный для него веб-трафик. Многие приложения от Apple и Google используют этот уровень безопасности, поэтому сторонние приложения — это всегда кандидаты номер один на проверку такого рода, поскольку именно они, скорее всего, будут делать всякие теневые штуки с вашими данными.

Когда закончите — удалите все, что не нужно

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

На iPhone, чтобы удалить сертификат, перейдите в «General» в «Settings», затем в самом низу выберите «Profile». Затем нажмите профиль конфигурации «Charles Proxy CA» и нажмите «Remove Profile». Нажмите «Remove» для подтверждения. Чтобы остановить прокси-сервер, выберите «Wi-Fi» в «Settings», нажмите «Wi-Fi network», выберите «Configure Proxy», затем переключите слайдер в «Off», а затем нажмите «Save».

Руководство по настройке захвата пакетов мобильного телефона с помощью Fiddler, Charles и mitmproxy

При написании поискового робота некоторые данные на стороне ПК не могут предоставить нужные нам данные, например Douyin, поэтому нам необходимо ввести данные на мобильном телефоне. Line Grabbing, в настоящее время наиболее часто используемое программное обеспечение для захвата приложений: Fiddler, mitmproxy, Charles, это программное обеспечение должно выполнить соответствующую конфигурацию прокси-сервера перед захватом пакета данных: загрузите, убедитесь, что ПК-терминал и мобильный терминал находятся в одной локальной сети, Загрузка сертификата, настройка порта и т. Д.

Используйте метод настройки прокси-сервера Fiddler

1.jpg

Fiddler захватывает пакеты данных Android / Iphone, Первый шаг - убедиться, что компьютерный терминал, мобильный терминал Fiddler и компьютерный терминал находятся в одной и той же локальной сети. В этом случае Fiddler может захватывать данные мобильного терминала; Локальная сеть - это сеть, к которой подключено два или более устройств и которая имеет один и тот же сегмент IP-сети. Например, ПК и мобильный телефон подключены к одному и тому же Wi-Fi, или компьютер открывает точку доступа и подключение мобильного телефона.

Второй шаг - настроить Fiddler: откройте [Fiddler -> Tools -> options]; затем выберите опцию [Connections]. На рисунке установите порт сервера, который требуется мобильному телефону для подключения к Fiddler (обычно по умолчанию) Следующие параметры [[Разрешить удаленным компьютерам подключаться] (Разрешить удаленным компьютерам подключаться) для проверки.

2.jpg

3.jpg

Следующим шагом является изменение настроек прокси для Wi-Fi на мобильном телефоне; откройте Wi-Fi в соединении, нажмите переключатель прокси ниже, чтобы переключиться в ручной режим, введите ip на стороне компьютера как имя хоста и порт как порт, установленный Fiddler, а затем нажмите OK.

4.jpg

Результат успешной настройки выглядит следующим образом:

5.jpg

Использование метода настройки прокси Charles

6.jpg

7.jpg

Как и в Fiddle, вам необходимо настроить компьютер и мобильный телефон в одной локальной сети; после получения порта Charles вам также необходимо получить IP-адрес компьютера. Метод запроса IP-адреса компьютера: windows + R Введите cmd-карту чтобы открыть командную строку, а затем введите ipconfig, IPv4 - это IP-адрес этого компьютера.

8.jpg

Измените прокси и порт WiFi на мобильном телефоне:

9.jpg

Обратите внимание на друзей, которые используют win10. Лучше всего отключить брандмауэр перед настройкой. После успешной настройки страница Charles будет выглядеть, как показано ниже:

10.jpg

Установите сертификат на компьютер, откройте клиент Charles и выберите меню [«Справка» -> «SSL-прокси» -> «Установить корневой сертификат Charles»]

11.jpg

Следуйте инструкциям по установке;

12.jpg

13.jpg

Выбирая место хранения сертификата, просто выберите [Личное]. Вообще говоря, выбирается второй вариант.

14.jpg

15.jpg

Затем настройте SSL для получения доменного имени: Выберите [«Прокси» -> «Настройки проксирования SSL»], включите опцию [Включить проксирование SSL], выберите опцию добавления, конфигурация местоположения Чарльза поддерживает подстановочные знаки, поэтому установка «*» в Хосте может использоваться для представления всех доменные имена, порт писать не нужно.

16.jpg

Позже, если вы настроите указанное доменное имя, порт здесь может быть установлен на 443, чтобы вы могли захватывать данные указанного доменного имени;

Чтобы установить сертификат SSL на мобильный телефон, откройте клиент Charles и нажмите [«Справка» -> «Прокси SSL» -> «Установить корневой сертификат Charles на мобильное устройство или удаленный браузер»],

17.jpg

Появится следующая страница, что означает, что вы можете настроить прокси на своем мобильном телефоне: 192.168.2.173:1111, что означает, что мобильный терминал и ПК-терминал находятся в одной локальной сети, а затем использовать мобильный браузер. для доступа к chls.pro/ssl:

18.jpg

После успешной загрузки его необходимо установить локально на мобильный телефон. Вот как пример Redmi. При установке сертификата безопасности на мобильный телефон Xiaomi необходимо заранее установить пароль разблокировки, иначе установка не будет Работа.

19.jpg

Соответствующая конфигурация перехвата принимающего пакета mitmproxy

mitmproxy также имеет два связанных компонента. Один из них - mitmdump, интерфейс командной строки mitmproxy. С его помощью мы можем подключаться к скриптам Python и реализовывать пост-мониторинг в Python. Другой - mitmweb, веб-программа, открывающая веб-страницу мониторинга.Мы можем четко наблюдать запросы, захваченные mitmproxy. Вот демонстрация с окнами в качестве примера.

20.jpg

Здесь вы можете напрямую получить порт mitmproxy как 8080. Второй шаг такой же, как у Charles. Убедитесь, что мобильный телефон и компьютер находятся в одной локальной сети. IP-адрес компьютера получается таким же образом. как у Чарльза. После успешной настройки mitmdump выглядит следующим образом:

21.jpg

Погружение в удивительный мир Charles для чайников

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

Charles работает и на мобильных устройствах, но в этой статье мы будем рассматривать только версию для Windows. Давайте же начнем!

Установка Charles

Начать следует, конечно же, с установки. Скачиваем программу с официального сайта разработчика.

Установка программы Charles

Программа платная, но есть тестовый период на 30 дней. Даже без покупки программой можно спокойно пользоваться, но время одной сессии будет ограничено 30 минутами, а также частенько на 5-10 секунд будет появляться оверлей.

Charles Web Debugging Proxy

Вы можете получить полную версию программы сами-знаете-какими методами, но мы их рассматривать не будем. Все же лучше поддержать разработчиков!

После скачивания следует запустить exe-файл и произвести инсталляцию. Здесь ничего сложного нет, просто оставьте стандартные настройки установки.

Настройка программы

После установки программу следует настроить. Многие пользователи Charles забывают об этом этапе, а затем кусают локти, пытаясь понять, почему у них ничего не работает. На самом деле настройка программы очень простая, сейчас все покажу!

Для начала нужно установить сертификат программы. Именно из-за него, увы, и возникает большинство проблем, связанных с неработоспособностью программы.

Инструкция по установке сертификата:

Установка Charles

Открываем меню установки сертификата через Help -> SSL Proxying -> Install Root Charles Certificate.

Help -> SSL Proxying -> Install Root Charles Certificate

Жмем «Установить сертификат».

Мастер импорта сертификатов

Здесь выбираем «Локальный компьютер» и жмем «Далее».

Сертификаты Charles

ВАЖНО! На этом этапе выбираем «Поместить все сертификаты в следующее хранилище», жмем «Обзор», затем ОБЯЗАТЕЛЬНО выбираем «Доверенные корневые центры сертификации».

Поместить все сертификаты в следующее хранилище

Жмем «Далее».

Импорт сертификатов

Установку сертификата мы выполнили, теперь нам необходимо включить SSL Proxying и настроить его фильтрацию, чтобы начать перехватывать запросы. Фильтрация определяет, какие именно запросы нужно ловить, но мы сделаем так, чтобы у нас перехватывались все запросы.

SSL Proxying

Открываем Proxy -> SSL Proxying Settings.

SSL Proxying Settings

Ставим галочку на «Enable SSL Proxying», затем под полем «Include» жмем на кнопку «Add».

Enable SSL Proxying

Для отключения фильтрации и сниффинга всего трафика мы просто добавляем звездочку в поле « Host » .

Программа настроена. Теперь рассмотрим ее возможности и функции.

Compose

Нам достаточно выбрать один конкретный запрос и с помощью функции Compose поменять его параметры (заголовок запроса, тело запроса, куки, код и пр.)
Для начала мы можем отделить конкретные запросы от остальных с помощью функции Focus :

Compose

Теперь выбираем нужный нам запрос и выполняем ПКМ -> Compose

Focus Compose Charles

Например, можно подменять некоторые значения в коде, чтобы проверить валидацию на бэкенде. Допустим, поле принимает только числовое значение. Мы используем Compose, передавая в значение поле уже буквы. Если запрос пройдет без ошибок, то это значит, что валидация отсутствует.

Charles

После изменения нужных нам параметров жмем « Execute » и получаем копию запроса с ответом от сервера.

Breakpoint

Данная функция позволяет точнее работать с запросами, вешая на них так называемый «Breakpoint» (точку остановки).

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

Отмечу, что эта функция, по сути, делает автоматический Compose. Вы так же можете менять значения, но вам не придется каждый раз выбирать конкретный запрос.

Breakpoint

Открываем Proxy -> Breakpoint Settings.

 Breakpoint Settings Charles

Ставим галочку на «Enable Breakpoints», затем жмем «Add».

Enable Breakpoints

Заполняем все поля в открывшемся окне (выше пример заполнения).

При повторном получении запроса с такими же данными у вас будет открываться новое окошко, в котором вы сможете работать с пойманным запросом. Удобно!

Программа Charles

Rewrite

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

Rewrite

Открываем Tools -> Rewrite.

Tools -> Rewrite

Ставим галочку на «Enable Rewrite», затем в открывшемся окне под левым полем жмем «Add», а дальше жмем «Add» уже под правым верхним полем.

Enable Rewrite

Заполняем все поля (они идентичны тем, что заполняются при создании Breakpoint).

Новое правило в Чарльз

Затем жмем «Add» уже под правым нижним полем, указываем тип редактирования запроса, заменяемые значения, а также условия замены.

Давайте поймаем запрос и посмотрим на реакцию Charles!

Захват запросов

Charles поймал нужный запрос, а затем заменил все Header одним значением.

Repeat Advanced

Данная функция будет полезна для нагрузочного тестирования. Хоть Charles и не блещет особым потенциалом в данной области, но базовую проверку корректности флуд-контроля вы сможете выполнить.

Ниже подробно показано, как это сделать.

Repeat Advanced

ПКМ по запросу -> Repeat Advanced.

Флуд-контроль

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

Запросы в Charles

Должно открыться новое окно, где отправляются запросы.

Map Local

Последняя функция в сегодняшней статье. Позволяет работать с локальными файлами.

Демонстрация инструмента ниже.

Map Local

ПКМ по запросу -> Map Local.

Карта запросов

В открывшемся окне у нас идут знакомые поля. Жмем «Choose» и выбираем локальный файл, после чего жмем « OK » .

При повторном получении того же запроса Charles будет перенаправлять его на локальный файл.

Локальный файл в Charles

Надеюсь, эта статья помогла вам разобраться в основах Charles. Это действительно мощный и довольно простой инструмент для тестирования. Спасибо за внимание!

Зачастую, при тестировании мобильных (да и web) клиент-серверных приложений бывают ситуации, когда нужно проверить как ведёт себя приложение при разном объеме данных, в каком формате приложение отправляет и получает данные, какие параметры у запроса и ответа, какой ответ присылает сервер при некорректном запросе, как реагирует приложение на некорректный ответ, как оно обрабатывает ошибки. Всё это можно относительно просто проверить при помощи Charles Proxy Server.

1. Установка и запуск

Скачиваем Charles Proxy с официального сайта, устанавливаем, запускаем (помним, что бесплатно можно пользоваться 30 дней). После запуска Charles предложит сам настроить сетевые подключения для работы:


Соглашаемся. Далее откроется интерфейс инструмента:


Слева (Structure/Sequence) будут отображаться соединения, внутри которых можно будет увидеть запросы. В правой части будут отображаться параметры запроса.

2. Настройка мобильного устройства

Чтобы Charles мог мониторить весь входящий и исходящий трафик на устройстве, в настройках Wi-Fi подключения на устройстве нужно прописать IP-адрес хоста с запущенным Charles и указать порт 8888 (по умолчанию). В самом Сharles в настройках прокси нужно удостовериться что стоит порт 8888 (при необходимости можно изменить). Итак, проверка настроек Charles:

И настройка Wi-Fi подключения на смартфоне (в данном примере использовался iPhone):



Начиная с этого момента, в Charles мы можем видеть адреса, к которым обращается смартфон.

3. Последние штрихи настройки

Далее, возвращаемся к настройке самого Charles. Во-первых, если нас интересует конкретный адрес, а весь остальной трафик является шумом, то нужно кликнуть по интересующему нас адресу и выбрать пункт “Focus”. Это позволит скрыть все лишние адреса во вкладке “Other Hosts” (см. картинку ниже). Как было упомянуто выше, адреса серверов, на которые смартфон отсылает запросы нам видны, но мы не можем видеть параметры запросов:


Для того, чтобы Charles мог увидеть параметры запроса, нужно прописать адрес сервера в SSl Proxy Settings. Это можно сделать следующим образом:

В поле Host вводим адрес сервера, который нас интересует. Если порт указывать не требуется, то оставляем поле пустым


Этот инструмент как раз и позволяет вносить нужные нам изменения в запросы. По-умолчанию, там ничего нет, следовательно, нам нужно добавить первую опцию, например, на изменение запроса.

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

Далее нужно понять что именно мы хотим изменить в конкретном запросе. Например, нужно проверить, как поведёт себя серверная часть приложения в том случае, если клиент пришлёт некорректный запрос (будет отсутствовать одно поле или в поле будет неверный тип данных). Сообщит ли нам сервер об ошибке? Лучше, конечно, проверять, реакцию клиента на некорректный ответ сервера, потому что такая ситуация наиболее вероятна. Набор действий в любом случае идентичен. Под полем Location нужно кликнуть Add, а затем можно поставить значение * (в этом случае перезапись будет работать для всех запросов), либо указать конкретный URL и конкретный path.


После того как был задан адрес, по которому нужно произвести замену, нужно указать что конкретно следует изменить. В нашем случае это тело запроса.

Послесловие: В данной статье я постарался как можно более просто, но в то же время подробно описать инструкцию по работе с Charles Proxy Server. По сути, данная статья — агрегатор документации, размещенной на официальном сайте.

Читайте также: