Есть узкоспециализированное ПО под Windows, которое запрашивает данные с удаленного сервера по HTTPS. Сервер давно помер и нужно понять, какие запросы на него улетали из приложухи. Планируется организовать подменный сервер с ответными данными (что отправлять в ответ - как раз таки понятно).
ПО штатно не поддерживает проксирования трафика.
Как и чем перехватить HTTPS трафик из ПО на винде для анализа? Charles не совсем понял как настроить для этого дела, а все рецепты в сети сводятся к тому, чтобы перехватывать трафик с андроида.
Леха, Если используется штатная подсистема windows, то как обычно. Поднимаете центр сертификации (CA), его коренной сертификат регистрируете в системе как доверенный. Поднимаете свой HTTPS-сервер, на клиенте IP-адрес этого сервера закрепляете за нужным доменным именем через файл hosts. Выпускаете для HTTPS-сервера сертификат на это доменное имя, прописываете сертификат на сервере.
Вуаля, клиент идёт на DNS, получает IP-адрес вашего сервера, соединяется с сервером, получает сертификат, убеждается, что сертификат выдан доверенным CA и спокойно общается.
Хуже, если используется какая-то HTTPS-библиотека со своим списком доверенных CA или SSL-pinning. Тогда MITM может и не получиться.
В случае, если предполагаемые ответы сервера известны, Вам может подойти такой вариант:
Предположим обращение идет на сервер someserver.ru который DNS резолвит в 123.45.67.89
в Windows добавляете IP адрес 123.45.67.89, запускаете nginx для windows на адресе 123.45.67.89 выполняете минимальную настройку для someserver.ru
Запускаете программу - смотрите логи - профит.
В случае если используется сертификат - Выпускаете себе само подписанный или через свой центр сертификации сертификат для someserver.ru и добавляете его в nginx. А сам сертификат или корневой (в случае своего центра) в доверенные - смотрите логи - профит.
P.S. Зная правильные ответы сервера, сможете их и отправлять ;)
Нечто похожее уже городил. Был под руками Open Server. С помощью https://github.com/FiloSottile/mkcert поднял локальный СА сервер, сгенерил сертификат, создал "поддельный" домен, который исправно начал резолвится... и все. Входящих запросов на сервер не прилетает. Charles Proxy показывает факт отправки данных, но оно все криптованное.
Как минимум должна быть попытка установить соединение и договорится о протоколах и сертификатах. Банально может быть выключен нужный программе протокол шифрования на сервере...
Ко всему выше написанному могу предложить добавить проксирование трафика отдельного приложения при помощи древней программулины Netch или ее производных. https://github.com/netchx/netch
Можно завернуть куда-нибудь трафик отдельного процесса и пособирать дампы тем же ваершарком без посторонних подключений.