Возникла необходимость перехватывать HTTPS. Нужен полный контроль над HTTPS. Есть одна очень интересная тулзень - HTTP Analyzer, которая умеет это делать как для ИЕ, так и для ФФ. Кто-нибудь знает как она это делает? С ИЕ вроди бы никаких сложностей, но как она это делает с ФФ? Вроди бы никаких екстеншнов не ставит и грузит в ФФ HTTPS HookWinSockV3.dll. Неужели они винсок хукают? Кто-нить изучал прожку?
Для ФФ можно PR_Read/PR_Write из nspr4.dll хукнуть, там если я не ошибаюсь трафик до шифрования идет.
bitseer ошибаешся, HTTPAnalyzer не умеет хавать шифрованный трафик. Даже для ИЕ, по крайней мере моя версия этого делать не умеет. Да что там изучать запусти gmer и увидишь что и где она хукает... blast интересная инфа, спасибо, надо будет проверить.
У тебя видно очень старая версия... Поставь все, что выше 2ой версии и будет хавать шифрованый как для ИЕ, так и для ФФ.
Немного почитал про эти ф-ции - это аналог сокетов. То есть более низкоуровневое API, чем вининет, поэтому очевидно там уже шифрованные данные проходят от HTTPS.
Может в HTTPAnalyzer-е MITM реализовано. По перехвату и подмене думаю что стоит копать в сторону расширений/плагинов. Обрати внимание на TamperData, AdBlock.
про перехват траффика(http(s)) в ишаке раписано очень много,есть статья хорошая в hc ezine. к фф есть плагин называется live http headers, вроде как то так, переделать его под свои нужды особого труда не составит, в хроме перехват реализуется тоже довольно просто, если освоил ишака в хроме сделать будет не тяжело, а убить сразу всех зайцев одним разом думаю будет сложновато ...
bitseer интересно, надо будет посмотреть. Ну под ИЕ HttpSendRequest не трудно похукать... Меня интересует универсальный метод для всех браузеров, на уровне сокетных send recv, интересно реально ли это вообще? Есть инфа по этой теме ? freeq что такое ишак ? Можешь ссылки дать или хотябы полное название статьей?
Анализ хукаемых АПИ показал, что HTTPAnalyzer хукает следующие АПИ в ИЕ и ФФ...то есть похоже для них методика универсальна. .text C:\Program Files\Mozilla Firefox\firefox.exe[772] kernel32.dll!LoadLibraryExW 7C801AF5 6 Bytes JMP 5F070F5A .text C:\Program Files\Mozilla Firefox\firefox.exe[772] Secur32.dll!EncryptMessage 77FEA5FB 6 Bytes JMP 5F310F5A .text C:\Program Files\Mozilla Firefox\firefox.exe[772] Secur32.dll!DecryptMessage 77FEA64A 6 Bytes JMP 5F340F5A .text C:\Program Files\Mozilla Firefox\firefox.exe[772] WS2_32.dll!getaddrinfo 71A92A6F 6 Bytes JMP 5F2E0F5A .text C:\Program Files\Mozilla Firefox\firefox.exe[772] WS2_32.dll!sendto 71A92F51 6 Bytes JMP 5F0D0F5A .text C:\Program Files\Mozilla Firefox\firefox.exe[772] WS2_32.dll!recvfrom 71A92FF7 6 Bytes JMP 5F160F5A .text C:\Program Files\Mozilla Firefox\firefox.exe[772] WS2_32.dll!connect 71A94A07 6 Bytes JMP 5F250F5A .text C:\Program Files\Mozilla Firefox\firefox.exe[772] WS2_32.dll!send 71A94C27 6 Bytes JMP 5F0A0F5A .text C:\Program Files\Mozilla Firefox\firefox.exe[772] WS2_32.dll!WSARecv 71A94CB5 6 Bytes JMP 5F190F5A .text C:\Program Files\Mozilla Firefox\firefox.exe[772] WS2_32.dll!gethostbyname 71A95355 6 Bytes JMP 5F2B0F5A .text C:\Program Files\Mozilla Firefox\firefox.exe[772] WS2_32.dll!recv 71A9676F 6 Bytes JMP 5F130F5A .text C:\Program Files\Mozilla Firefox\firefox.exe[772] WS2_32.dll!WSASend 71A968FA 6 Bytes JMP 5F1F0F5A .text C:\Program Files\Mozilla Firefox\firefox.exe[772] WS2_32.dll!WSARecvFrom 71A9F66A 6 Bytes JMP 5F1C0F5A .text C:\Program Files\Mozilla Firefox\firefox.exe[772] WS2_32.dll!WSASendTo 71AA0AAD 6 Bytes JMP 5F220F5A .text C:\Program Files\Mozilla Firefox\firefox.exe[772] WS2_32.dll!WSAConnect 71AA0C81 6 Bytes JMP 5F280F5A .text C:\Program Files\Mozilla Firefox\firefox.exe[772] wininet.dll!InternetConnectA 4332498A 6 Bytes JMP 5F370F5A Я начинаю догадываться как это сделано у них... Они перехватывают шифрующие ф-ции SSL, которые используются для шифрования HTTPS, сохраняют их в структурах данных, затем при отправке с помощью сокетов WS2_32.dll!send просто сравнивают шифрованные дынные с уже сохраненными и отображают на открытый сохраненный текст. То есть работа гигансткая! Кроме этого еще ж надо распарсить ХТТП вручную! У кого какие мысли? Реально ли?
Да, у Win32.Sinowal похожая методика только он по больше апи из Secur32.dll хучит, если интересно можешь глянуть есть семплы на vx.nutlex.
Линк там кинуть не получится идешь Collection->Trojan-PSW->Win32->Sinowal версия m если не ошибаюсь дллка.
Мда почитал про этот Sinowal - это трой нового поколения....такие вещи пишутся год и больше! Респект авторам, написавшим МБР руткит... А вот как они работают со всеми браузерами я не понял точно...у них там свой NDIS и стек ТСП\ИП насколько я понял... А потом они подгружают логический модуль, который и хукает браузеры...метод не знаю - не изучал. может кто интересовался? По ФФ провел резерч. Взял Detours и их сэмпл - tracessl, там они хучат все сокет ф-ции + EncryptMessage/DecryptMessage. Отлично хукает и трейсит в ИЕ, но в ФФ обламуется...Блин, тогда загадка как HTTPAnalyzer их хучит и не обламуется. Есть мысли?
А почему в мысль не приходит, что они просто разбирают HTTPS трафик на лету ? То есть хукнуть достаточно send\recv..
Ну так, на сколько я понимаю, сертификаты передаются сторонами при первом подключение.. А если было уже подключение, серт из хранилища берется, но можно ведь фейковый запрос сделать, чтобы браузер подумал, что сертификат сервера изменился, чтобы загрузить снова... Это в теории, сейчас то же занят этим вопросом, нужно сделать универсальный перехват трафика, копаю в эту сторону как раз..
wertyman всё не так просто, сертификат сервера содержит открытый ключ с помошью которого будет зашифрован ключь сессии который передастся серверу который расшифрует его своим закрытым ключем, почитай про https протокол.
Запусти под отладчиком, поставь бряки на те перехваченные функции и смотри. Еще раз повторяю, что это тупиковый вариант. Вы забываете что HTTPAnalyzer предназначен только для просмотра, а не модификации https контента.