Вопрос

У меня есть локальное приложение (которое я не писал и не могу изменить), которое взаимодействует с удаленной веб-службой.Он использует HTTPS, и я хотел бы посмотреть, что содержится в трафике.

Есть ли какой-нибудь способ, которым я могу это сделать?Я бы предпочел систему Windows, но я с удовольствием настрою прокси-сервер в Linux, если это упростит задачу.

То, что я рассматриваю:

  1. Перенаправление веб-сайта путем взлома моего файла hosts (или настройки альтернативного DNS).
  2. Установка HTTPS-сервера на этом сайте с самозаверяющим (но доверенным) сертификатом.
  3. Очевидно, WireShark может видеть, что находится в HTTPS, если вы передадите ему закрытый ключ.Я никогда этого не пробовал.
  4. Каким-то образом перенаправьте этот трафик на реальный сервер (т.е.это полномасштабная "атака" "человек посередине").

Звучит ли это разумно?Может ли WireShark действительно видеть, что содержится в HTTPS-трафике?Кто-нибудь может указать мне подходящий прокси (и конфигурацию для него)?

Это было полезно?

Решение

Делает Скрипач делай, что хочешь?

Что такое Скрипач?

Fiddler - это прокси для веб-отладки, который регистрирует весь HTTP-трафик между вашим компьютером и Интернетом.Fiddler позволяет проверять весь HTTP (Ы) трафик, устанавливать точки останова и "манипулировать" входящими или исходящими данными.Fiddler включает в себя мощную подсистему сценариев на основе событий и может быть расширен с помощью любого .NET язык.

Fiddler является бесплатной программой и может отлаживать трафик практически из любого приложения, включая Internet Explorer, Mozilla Firefox, Opera и тысячи других.

Другие советы

Wireshark определенно может отображать зашифрованные потоки TLS / SSL в виде открытого текста.Однако для этого вам определенно понадобится закрытый ключ сервера.Закрытый ключ должен быть добавлен в Wireshark в качестве опции SSL в разделе "Настройки".Обратите внимание, что это работает только в том случае, если вы можете следить за потоком SSL с самого начала.Это не сработает, если будет повторно использовано SSL-соединение.

В Internet Explorer этого (повторного использования сеанса SSL) можно избежать, очистив состояние SSL с помощью диалогового окна Свойств обозревателя.В других средах может потребоваться перезапуск браузера или даже перезагрузка системы (чтобы избежать повторного использования сеанса SSL).

Другим ключевым ограничением является то, что должен использоваться шифр RSA.Wireshark не может декодировать поток TLS / SSL, использующий DFH (Диффи-Хеллман).

Предполагая, что вы можете удовлетворить вышеуказанным ограничениям, команда "Следовать за потоком SSL", вызываемая правой кнопкой мыши, работает довольно хорошо.

Вам необходимо настроить прокси-сервер для вашего локального приложения, и если он не соблюдает настройки прокси-сервера, установите прозрачный прокси-сервер и перенаправьте на него весь https-трафик, прежде чем выходить на улицу.Чем-то подобным этому может быть "человек" посередине: http://crypto.stanford.edu/ssl-mitm

Кроме того, вот краткие инструкции о том, как заархивировать это с помощью wireshark: http://predev.wikidot.com/decrypt-ssl-traffic

Вам также следует подумать Чарльз.Из описания продукта на момент написания этого ответа:

Charles - это HTTP-прокси / HTTP monitor / Обратный прокси, который позволяет разработчику просматривать весь HTTP- и SSL / HTTPS-трафик между своим компьютером и Интернетом.Сюда входят запросы, ответы и HTTP-заголовки (которые содержат файлы cookie и информацию о кэшировании).

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

<Ол>
  • При использовании HTTPS прокси для мониторинга, это зависит от типа рукопожатия. Если локальное приложение не проверяет сертификат сервера подписи CA, который вы не можете подделать, и сервер не проверяет сертификат вашего локального приложения (или если у вас есть один настроить на HTTPS-прокси), то вы можете настроить HTTPS прокси для следить за HTTPS-трафика. В противном случае, я думаю, что это невозможно контролировать трафик с HTTPS-прокси.

  • Еще один способ, вы можете попробовать, чтобы добавить приборный зонд в рутине клиентской программы, где отправлять и получать сообщения из своей библиотеки HTTPS. Она нуждается в некоторой обратной инженерной работы, но он должен работать для вас для всех ситуаций.

  • Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top