Настройка fiddler windows 10

Обновлено: 04.07.2024

Согласно статистике - в 2020 году мобильные приложения были загружены пользователями более 240 млн раз, и это число продолжает расти.

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

Большинство современных мобильных приложений построены на клиент-серверной архитектуре. Как правило, клиент функционирует под управлением одной из популярных мобильных ОС – Android или iOS, и обменивается данными с сервером. Использование открытых незащищенных протоколов передачи данных многократно увеличивают риски компрометации передаваемого трафика. Но даже защищенные соединения не всегда дают 100% гарантию надежности сохранности данных.

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

(Если вы уже работали с этим инструментом, делитесь опытом в комментариях)

Подготовительные шаги

Для начала установите Fiddler на ПК или ноутбук. Убедитесь, что ПК/ноутбук и смартфон находятся в одной сети (например, подключив устройства к одному wifi-роутеру). Это условие является обязательным, т.к. устройства не увидят друг друга. Проверить связь между устройствами можно через команду ping.

Настройка Fiddler

Далее, убедитесь, что Fiddler может принимать входящие соединения:

  1. Откройте Fiddler, далее: Tools → Options, вкладка «Connections»;
  2. Поставьте флажок «Allow remote computers to connect»;
  3. Перезапустите Fiddler, чтобы изменения в настройках вступили в силу.

Настройка устройства на базе Android

Убедитесь, что Fiddler запущен и брандмауэр Windows отключен, далее на Android-устройстве выполните шаги:

  1. Откройте настройки, далее выберите Wi-Fi, затем нажмите на имя подключенной сети и удерживайте, пока не появится всплывающее окно;
  2. Нажмите «изменить сеть», далее в всплывающем окне разверните пункт «расширенные настройки»;
  3. Выберите «Вручную» в поле со списком «Прокси-сервер»;
  4. В поле «Имя хоста прокси-сервера» введите IP-адрес вашего ПК/ноутбука;
  5. В поле «порт прокси-сервера» введите порт (по умолчанию 8888).

После нажатия на кнопку «Сохранить» весь трафик смартфона должен быть виден в окне Fiddler.

Настройка устройств на базе iOS

Убедитесь, что Fiddler запущен и брандмауэр Windows отключен, далее на iOS-устройстве выполните шаги:

  1. Откройте Настройки → Wi-Fi;
  2. Найдите сеть, к которой подключен смартфон, и нажмите на значок «i»;
  3. Пролистайте вниз, найдите «настройка прокси», далее выберите «Вручную»;
  4. В поле «Сервер» введите IP-адрес вашего ПК/ноутбука;
  5. В поле «Порт» введите значение по умолчанию: 8888.

После нажатия на кнопку «Сохранить» весь трафик смартфона должен быть виден в окне Fiddler.

Для Android: скачайте FiddlerRoot certificate, откройте его, установите и задайте имя.

Для iOS: скачайте FiddlerRoot certificate, откройте его, нажмите «разрешить», после чего перейдите в Настройки → Профиль загружен → Установить. Далее в Настройках → Основные → Об этом устройстве → Доверие сертификатам → найдите сертификат и сделайте его доверенным.

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

Предположения

  • Вы выводите PuTTY поле разработчика или альтернативу SSH
  • Приведенные ниже инструкции позволяют предположить, что виртуальная машина центра Интернета вещей будет работать на любом устройстве центра Интернета вещей.

Начальная настройка.

  1. Скачайте и установите последнюю версию Fiddler в поле разработчика, если вы еще не сделали этого.
  2. Запустите Fiddler и сделайте следующие обновления параметров в разделе Сервис- Telerik Fiddler параметры- > HTTPS .
    • Проверка записи подключения HTTPS
    • Проверка расшифровки HTTPS-трафика во всех процессах
    • Щелкните ссылку "сертификаты, созданные" и выберите модуль MakeCert (рекомендация: Restart Fiddler, чтобы это изменение вступило в силу).
    • Затем экспортируйте файл Фиддлеррут. cer с помощью действий — Экспортируйте корневой сертификат на Рабочий стол .
  3. Выполните следующие обновления параметров в разделе " Сервис- Telerik Fiddler параметры — > вкладка" подключения ":
    • настройте Fiddler в качестве системного прокси-сервера, установив флажок разрешить удаленным компьютерам Подключение
    • Fiddler прослушивает порт , должен быть установлен в значение 8888

Примечание. После этого следует перезапустить Fiddler и принять все запросы контроля учетных записей.

Перенос и импорт корневого сертификата Fiddler

  1. Подключите VHD-файл (щелкните правой кнопкой мыши виртуальный жесткий диск и выберите пункт подключить) или подключитесь к устройству IOT с помощью выводимого файла (или альтернативного клиента SSH).
  2. Перейдите к разделу Маинос и создайте тестовую папку в корне (через SSH, используйте MD c:\test).
  3. Скопируйте Фиддлеррут. cer, созданный выше (должен быть на рабочем столе по умолчанию), в расположение тестовой папки.
  4. При использовании виртуального жесткого диска отключите его, выполнив извлечение любого подключенного диска, а затем запустите виртуальную машину центра Интернета вещей с помощью Hyper-V.
  5. Запуск сеанса SSH и вход от имени администратора
  6. Перейдите в каталог c:\test в сеансе SSH.
  7. Импортируйте корневой сертификат Fiddler с помощью команды:
    • certmgr -add FiddlerRoot.cer -r localmachine -s root
  8. Закрыть сеанс SSH

Настройка прокси-сервера на виртуальной машине или устройстве IoT Core

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

  1. Определение IP-адреса компьютера разработки с помощью консоли CMD с помощью ipconfig
  2. Запустите новый сеанс SSH и на этот раз войдите в систему как defaultUser (имя_пользователя: дефаултаккаунт PWD: [Blank] ).
  3. Задайте прокси-сервер с помощью следующих команд:
    • reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1
    • reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d [PC IP address]:8888

Если этот компьютер еще не запущен, запустите Fiddler на своем компьютере, перезапустите виртуальную машину или устройство IoT Core, и трафик теперь должен маршрутизироваться через Fiddler.

Кроме того, если вы хотите отключить прокси-сервер, обратите внимание, что указанные выше ключи реестра кэшируются в двоичном BLOB-объекте другого ключа. Таким образом, помимо удаления только тех разделов, которые были добавлены в шаге 3 выше, необходимо выполнить следующие действия.


Зачем это делать ?

Пример 1. Анализ трафика.
Пользователи вашей сети пользуются вашим прокси-сервером. Вы можете увидеть на какие сайты заходят пользователи, запрещать дальнейшие переходы на эти сайты.

Пример 2. Сбор данных.
Ваши пользователи пользуются через вас некоторыми веб-ресурсами. Например, они вводят vin-номер своего автомобиля на сайте дилера авто и получают в ответ данные этого автомобиля. Вы можете сохранять эти данные в свою базу данных.

Установка Fiddler

Установка простая и быстрая.

Настройка Fiddler



Если опция "File -> Capture Traffic" выключена, то Fiddler перестает работать как системный прокси-сервер и перехватывает только те пакеты, которые идут непосредственно на адрес Fiddler. Это может быть когда вы настроили ваше приложение или браузер сами для работы через ip/port Fiddler. По умолчанию Fiddler слушает на порту 127.0.0.1:8888

Опция "Keep: All sessions".
В данном режиме Fiddler не очищает журнал собранных HTTP-пакетов. Если требуется продолжительная работа Fiddler, то при большой нагрузке этих пакетов будет очень много и Fiddler скушает всю доступную оперативную память компьютера. Чтобы этого не случилось переключите в режим "Keep: 100 sessions".

Опция "Decode".
По умолчанию выключена. В процессе анализа собранных пакетов рекомендуется включить чтобы пакеты автоматически декодировались. Либо можно выделить собранные пакеты через Ctrl+A, вызвать меню нажатием правой кнопки мыши по выделенным пакетам и нажать "Decode Selected Sessions".


Основные настройки

Переходим в "Tools -> Options. ".

Вкладка "HTTPS".
После установки Fiddler не собирает HTTPS-трафик, это необходимо включить. Ставим галочку в опции "Decrypt HTTPS traffic". После этого Fiddler сгенерирует самоподписанный сертификат и спросит хотите ли установить данный сертификат. Отвечаем да.

Опция "Ignore server certificate errors (unsafe)" - сразу можно не включать. На некоторых порталах бывают ошибки сертификатов, но это редко. Как увидите так включите )
Настройка протоколов. По умолчанию стоит значение "<client>;ssl3;tls1.0". Советую сразу установить значение на "<client>;ssl3;tls1.0;tls1.1;tls1.2". После изменения настроек необходимо перезапустить программу чтобы настройки вступили в силу.



"Trust Root Certificate" - если сгенерированный Fiddler сертификат вы не установили после включения опции "Decrypt HTTPS traffic", то можно это сделать здесь.

"Export Root Certificate to Desktop" - если вы планируете использовать Fiddler как прокси-сервер локальной сети, то на каждом устройстве пользователя необходимо установить сгенерированный выше сертификат. С помощью этой опции сохраняете сертификат на ваш рабочий стол.

"Reset All Certificates" - в некоторых случаях необходимо сгенерировать новый сертификат взамен старого. В этом случае сбрасываем все Fiddler-сертификаты и генерируем новый сертификат.

Вкладка "Connections".
Здесь устанавливаем на каком порту Fiddler работает как прокси-сервер. Порт по умолчанию "8888".

"Allow remote computers to connect" - включаем опцию чтобы Fiddler начал принимать подключения от других компьютеров.

"Act as system proxy on startup" - по умолчанию опция включена. Если включена, то при запуске опция "File -> Capture Traffic" включена.


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

Вкладка "Gateway".
Здесь устанавливаем куда Fiddler отправляет входящие пакеты, какой прокси использует.

"Use System Proxy (recommended)" - использование системного прокси из реестра текущего пользователя.

"Manual Proxy Configuration" - возможность задать вручную прокси-сервер.

"No proxy" - задаем что выход в Интернет напрямую, без использования прокси.

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


Установка сертификатов на Windows устройствах

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

Для установки сертификата используем консоль управления MMC: в коммандной строке вводим команду "mmc".

В меню файл выбираем "Добавить или удалить оснастку". Из доступных оснасток выбираем "Сертификаты" и с помощью кнопки "Добавить" выбираем данную оснастку. Нажимаем "Ок" и выбираем "учетной записи компьютера". Это нужно чтобы открыть сертификаты которые установлены для всего компьютера, а затем установить сертификат Fiddler именно в это хранилище. Если открыть сертификаты "моей учетной записи пользователя", то после установки сертификата Fiddler в это хранилище другие пользователи данного компьютера не смогут подключиться к Fiddler.


Установку сертификата производим в "Доверенные корневые центры сертификации".


Если ваши компьютеры находятся в домене, то используйте инструменты домена для установки сертификата каждому пользователю или на каждый компьютер сети.

Анализ трафика

В процессе работы Fiddler сниффит все HTTP-запросы и их обычно много. Для поиска необходимых запросов можно использовать фильтры. Правой кнопкой мыши выбираем лишний запрос, выбираем "Filter Now" и "Hide '. '" чтобы скрыть запросы к данному домену. Можно удалять вручную выделенные запросы используя кнопку "Delete".



Изменение данных запросов

В Fiddler существует инструмент "Fiddler ScriptEditor" (Редактор скриптов) для создания правил модификации трафика. Запуск редактора скриптов через "Ctrl+R" или выбора пункта меню "Rules -> Customize Rules. ".

В редакторе скриптов есть два основных метода: "OnBeforeRequest" и "OnBeforeResponse":

"OnBeforeRequest" - выполнение скриптов в этом методе происходит перед отправкой пакетов на веб-сервер.

"OnBeforeResponse" - выполнение скриптов в этом методе происходит после получения ответа от веб-сервера.

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

Задача 1: Запрет сайта

Запрещаем переход на адрес сайта содержащий строку.

Задача 2: Запрет загрузки ресурса

Запрещаем загрузку ".svg" файлов для заданного адреса сайта.

Задача 3: Переадресация запроса

Переадресация запроса на адрес сайта содержащий строку.

Задача 4: Сбор данных

Пользователи подключаются через данный прокси-сервер и делают в браузерах некоторые запросы вида "https://myhost.ru?key=abcd&vin=VF38BLFXE81078232&lang=ru". Задача записать в базу данных событие поиска и передать значение vin-номера. Данный скрипт создает файлы с названием включающем vin-номер. Кроме скрипта необходимо создать утилиту/службу, которая раз в заданный интервал читает каталог "C:\vinsearch\" и записывает данные в базу данных.

Задача 5: Изменить текст в ответе

В данном примере меняем текст "Иванов" на "Петров".

Задача 6: Заменить ресурс веб-портала на локальный ресурс

Заменим картинку веб-портала на картинку расположенною на локальном диске.

Задача 7: Изменение свойств HTML-объектов

Например, есть картинка с заданными размерами в HTML и нужно эти размеры изменить.

Задача 9: Заставить страницу открываться в текущем окне

Пример: существует JavaScript, который открывает ссылку в новом окне. Нужно сделать чтобы ссылка открывалась в текущем окне.

Задача 10: Выполнение скриптов для определенных IP

В данном примере меняем текст "Иванов" на "Петров" только для IP

Задача 11: Меняем css-стили портала

Css-файлы веб-портала можно сохранить на локальном диске, отредактировать и настроить скрипт отдавать стили с локального диска, а не с портала.

Задача 12: Запрет PUT-команды и аналогичных

Запрет команды по ее типу: "PUT", "DELETE", etc.

Задача 13: Изменение тела POST-запроса

Изменить тело POST-запроса для заданного портала. При авторизации на данном портале вне зависимости от введенных пользователем данных на веб-портал отправятся данные из скрипта.

Заголовки пакетов можно легко редактировать: удалять, добавлять, изменять.

Руководство по установке и использованию Fiddler (для windows)

1. Установка

Два, конфигурация Fiddler

3. Получите пакет данных мобильного приложения.


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

4) После успешной загрузки сертификата телефон Android должен назвать сертификат, и вы можете ввести любое имя;

(Используемый мной телефон Android IOS не тестировался мной)

5) Настроить фильтрацию
После того, как прокси-сервер настроен на телефоне, все запросы от компьютера и приложения в это время фиксируются скриптом. Если URL-адрес открыт на компьютере, будет много запросов. В это время вам необходимо включить функцию фильтрации.

… Из всех процессов: перехватить все запросы

… Только из браузеров: только захват запросов браузера

… Только из сторонних браузеров. Получать запросы только из сторонних браузеров.

… Только от удаленных клиентов: получать запросы только от удаленных клиентов

Примечание: после настройки прокси мой мобильный телефон показывает, что он не может получить доступ к Интернету и не может получить доступ к 192.168.xxx:8888
Вот решение
(1) Введите regedit, чтобы открыть реестр, введите путь: Computer \ HKEY_CURRENT_USER \ Software \ Microsoft \ Fiddler2 и нажмите Enter.

(2) Создайте новый QWORD и установите значение 80

(3) Откройте скрипт, введите Rules -> Customize Rules,
(4) ctrl + f, поиск OnBeforeRequest
(5) Добавьте строку в конец метода OnBeforeRequest.

(6) Просто перезапустите скрипач
**
**

В-четвертых, использование Fiddler


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

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

В левом нижнем углу Fiddler есть инструмент командной строки QuickExec, который позволяет вводить команды напрямую.

help открывает официальную вводную страницу использования, все команды будут перечислены

1. cls для очистки экрана (Ctrl + x также может очистить экран)

2. Выполните поиск DNS на целевом хосте и отобразите результат на вкладке LOG.

3. Выберите команду для выбора сеанса.

4.? .Png используется для выбора изображения с суффиксом png.

7. Выберите любой сеанс с именем Header или SessionFlag, содержащий указанную строку.

3) Два способа установить точки останова в Fiddler


Первый тип до ответа: это когда запрос сделан, прежде чем он достигнет сервера.

После ответа кратко описывается следующее:
после ответа: после ответа сервера, до того, как Fiddler отправит ответ обратно клиенту.
1) Щелкните интерфейс с идентификатором точки останова.
2) Измените возвращаемое значение TextView value.
3) Введите "Перейти" в командной строке.
4) Интерфейс возвращает измененные параметры вывода на страницу.

Пять, одна точка останова

Вы уже знаете адрес запроса определенного интерфейса. На данный момент вам нужно только прервать отладку этого запроса и ввести команду в командной строке.
Точка останова перед запросом (перед ответом): bpu

Ниже описано, как его настроить и использовать на примере следующего окружения:

А в завершении статьи описано, что делать, если после настройки остались ошибки подключения. Описано как удалить из кеша браузера информацию об оригинальном сертификате.

Дистрибутив Fiddler 4 можно скачать по ссылке:

Описание доступно на сайте проекта:

Инструкция по настройке Fiddler + Firefox (простая, понятная):

После установки можно сделать следующие настройки:

Сделать прокси-сервис несистемным

fiddler-4-1

fiddler-4-2

fiddler-4-3

Также кликнуть по ссылке Protocols и вписать в список протоколов все популярные протоколы:

как показано выше

Отдельный профиль для работы через Fiddler

Для перехвата трафика и экспериментов желательно иметь браузер, в котором не жалко очистить кеш и изменить настройки. Удобно создать новый отдельный профиль Mozilla Firefox.

Для этого нужно выполнить три шага:

  1. Закрыть открытый браузер Mozilla (это важно)
  2. Создать пустой каталог для нового профиля: C:\temp\profile
  3. Создать ярлык или bat-файл c командой запуска Mozilla:

Можно запускать браузер с чистым профилем.

В linux командный файл для работы с временным профилем может выглядеть так:

Настройка эталонного профиля

Поэтому важно настроить новый чистый профиль. Плюс в нём будет чистый кеш. Значит все запросы будут отправлены браузером. Что важно при эмуляции нагрузки.

Загрузка сертификата Fiddler в Mozilla Firefox

Запустить Fiddler и выгрузить сертификат в файл на рабочий стол.

fiddler-4-4

Запустить Mozilla Firefox открыть настройки, расширенные, сертификаты и импортировать сертификат Fiddler 4 в список доверенных. Выбрав сертификат с рабочего стола.

firefox

Certificate.Trusted

Настройка работы Mozilla Firefox через прокси сервер

Запустить Fiddler, посмотреть на каком порту он слушает соединения.

fiddler-4-5

Установить в Mozilla Firefox работу через прокси-сервер на этом же порту, в большинстве случаев это будет localhost и порт 8888.

firefox-2

firefox-3

fiddler-4-7

Для удобства работы можно включить правила (Главное меню / Rules):

Remove All Encodings полезно если сервер отдаёт ответы в сжатом виде (gzip encoding). А это почти всегда так для современного веба. И чтобы поиск по ответам сервера работал корректно нужно сразу распаковывать ответы сервера.

Неподдерживаемые протоколы

Ввести в строку фильтра

Далее отключить настройки

Ввести строку фильтра

security.tls.version.max по умолчанию значение 4, если в Fiddler была предварительно включена поддержка tls1.1 и tls1.2 (смотри выше как), то версию надо понизить до 3.

Выполняете действие, но не видно никаких логов в Fiddler

Возможно в Mozilla Firefox не настроен прокси-сервер.

Если тут написано Internet Explorer или что-то, что не соответствует вашему процессу, то рекомендую покликать на эту надпись и добиться того, чтобы фильтр был в состоянии: All processes

Возможно на вкладке Filters (справа одна из вкладок) была настроена фильтрация запросов. В таком случае название вкладки будет с включенной галочкой:

Перейдите на вкладку фильтров и отключите фильтры.

Если браузере видна ошибка, что соединение не защищено

И при этом есть возможность добавить исключение для сайта

Значит был пропущен или не полностью выполнен шаг добавления сертификата Fiddler в доверенные сертификаты браузера.

  • настройки Mozilla Firefox были выполнены для отдельного профиля (как рекомендуется в статье), а сейчас запущен профиль по умолчанию, или наоборот
  • сертификат Fiddler был добавлен в доверенные сертификаты Mozilla, но при этом не была проставлена галочка со степенью доверия: Этот сертификат может служить для идентификации веб-сайтов
  • вы настроили работу Mozilla Firefox через Fiddler, и сертификат указали, но потом в Fiddler сгенерировали новый сертификат

Нет возможности добавить исключение для сайта

  • прежний сертификат Fiddler;
  • сертификат настоящего удостоверяющего центра (ещё до настройки работы браузера через Fiddler).

Это браузер видит неожданную смену сертификата издателя, чует атаку, и блокирует подключение без возможности добавить исключение. Защищает.

В этом случае можно выбрать три варианта:

Вариант 1. Профиль

Перейти на новый профиль браузера. Настроить его по новой.

Вариант 2. Забыть сайт (в текущем профиле)

Потеряется вся история работы с сайтом. Куки, сессии.

Вариант 3. Забыть вообще всё (очистить профиль)

Если остались вопросы, оставляйте комментарии. Или задавайте вопросы почтой, адрес в разделе Контакты.

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