Методика хука HTTP/HTTPS в ИЕ и ФФ.

Тема в разделе "WASM.WIN32", создана пользователем bitseer, 25 фев 2009.

  1. bitseer

    bitseer New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2008
    Сообщения:
    7
    Возникла необходимость перехватывать HTTPS. Нужен полный контроль над HTTPS.
    Есть одна очень интересная тулзень - HTTP Analyzer, которая умеет это делать как для ИЕ, так и для ФФ.
    Кто-нибудь знает как она это делает?
    С ИЕ вроди бы никаких сложностей, но как она это делает с ФФ? Вроди бы никаких екстеншнов не ставит и грузит в ФФ HTTPS HookWinSockV3.dll.

    Неужели они винсок хукают?
    Кто-нить изучал прожку?
     
  2. blast

    blast New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2008
    Сообщения:
    170
    Для ФФ можно PR_Read/PR_Write из nspr4.dll хукнуть, там если я не ошибаюсь трафик до шифрования идет.
     
  3. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    bitseer ошибаешся, HTTPAnalyzer не умеет хавать шифрованный трафик. Даже для ИЕ, по крайней мере моя версия этого делать не умеет. Да что там изучать запусти gmer и увидишь что и где она хукает...

    blast интересная инфа, спасибо, надо будет проверить.
     
  4. bitseer

    bitseer New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2008
    Сообщения:
    7
    У тебя видно очень старая версия...
    Поставь все, что выше 2ой версии и будет хавать шифрованый как для ИЕ, так и для ФФ.
     
  5. bitseer

    bitseer New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2008
    Сообщения:
    7
    Немного почитал про эти ф-ции - это аналог сокетов. То есть более низкоуровневое API, чем вининет, поэтому очевидно там уже шифрованные данные проходят от HTTPS.
     
  6. planet

    planet New Member

    Публикаций:
    0
    Регистрация:
    10 апр 2007
    Сообщения:
    108
    Может в HTTPAnalyzer-е MITM реализовано. По перехвату и подмене думаю что стоит копать в сторону расширений/плагинов. Обрати внимание на TamperData, AdBlock.
     
  7. freeq

    freeq New Member

    Публикаций:
    0
    Регистрация:
    2 дек 2008
    Сообщения:
    47
    про перехват траффика(http(s)) в ишаке раписано очень много,есть статья хорошая в hc ezine.
    к фф есть плагин называется live http headers, вроде как то так, переделать его под свои нужды особого труда не составит, в хроме перехват реализуется тоже довольно просто, если освоил ишака в хроме сделать будет не тяжело, а убить сразу всех зайцев одним разом думаю будет сложновато ...
     
  8. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    bitseer интересно, надо будет посмотреть. Ну под ИЕ HttpSendRequest не трудно похукать... Меня интересует универсальный метод для всех браузеров, на уровне сокетных send recv, интересно реально ли это вообще? Есть инфа по этой теме ?
    freeq что такое ишак ? Можешь ссылки дать или хотябы полное название статьей?
     
  9. freeq

    freeq New Member

    Публикаций:
    0
    Регистрация:
    2 дек 2008
    Сообщения:
    47
    ишак это ie :)
    http://lmgtfy.com/?q=hc+ezine
    http://lmgtfy.com/?q=live+http+headers+plugin
     
  10. bitseer

    bitseer New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2008
    Сообщения:
    7
    Анализ хукаемых АПИ показал, что 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 просто сравнивают шифрованные дынные с уже сохраненными и отображают на открытый сохраненный текст.
    То есть работа гигансткая! Кроме этого еще ж надо распарсить ХТТП вручную!
    У кого какие мысли? Реально ли?
     
  11. blast

    blast New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2008
    Сообщения:
    170
    Да, у Win32.Sinowal похожая методика только он по больше апи из Secur32.dll хучит, если интересно можешь глянуть есть семплы на vx.nutlex.
     
  12. bitseer

    bitseer New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2008
    Сообщения:
    7
    Можешь кинуть линк? Найти трудновато там...
     
  13. blast

    blast New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2008
    Сообщения:
    170
    Линк там кинуть не получится идешь Collection->Trojan-PSW->Win32->Sinowal версия m если не ошибаюсь дллка.
     
  14. bitseer

    bitseer New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2008
    Сообщения:
    7
    Мда почитал про этот Sinowal - это трой нового поколения....такие вещи пишутся год и больше!
    Респект авторам, написавшим МБР руткит...
    А вот как они работают со всеми браузерами я не понял точно...у них там свой NDIS и стек ТСП\ИП насколько я понял...
    А потом они подгружают логический модуль, который и хукает браузеры...метод не знаю - не изучал. может кто интересовался?


    По ФФ провел резерч. Взял Detours и их сэмпл - tracessl, там они хучат все сокет ф-ции + EncryptMessage/DecryptMessage. Отлично хукает и трейсит в ИЕ, но в ФФ обламуется...Блин, тогда загадка как HTTPAnalyzer их хучит и не обламуется. Есть мысли?
     
  15. wertyman

    wertyman Member

    Публикаций:
    0
    Регистрация:
    13 дек 2006
    Сообщения:
    74
    А почему в мысль не приходит, что они просто разбирают HTTPS трафик на лету ? :) То есть хукнуть достаточно send\recv..
     
  16. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    ага а ключь где берут?
     
  17. wertyman

    wertyman Member

    Публикаций:
    0
    Регистрация:
    13 дек 2006
    Сообщения:
    74
    Ну так, на сколько я понимаю, сертификаты передаются сторонами при первом подключение.. А если было уже подключение, серт из хранилища берется, но можно ведь фейковый запрос сделать, чтобы браузер подумал, что сертификат сервера изменился, чтобы загрузить снова... Это в теории, сейчас то же занят этим вопросом, нужно сделать универсальный перехват трафика, копаю в эту сторону как раз..
     
  18. bitseer

    bitseer New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2008
    Сообщения:
    7
    Не думаю, что там так сложно...
    Копай в исследовании хттпаналайзера или сеновала :)
    Там все ответы
     
  19. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    wertyman всё не так просто, сертификат сервера содержит открытый ключ с помошью которого будет зашифрован ключь сессии который передастся серверу который расшифрует его своим закрытым ключем, почитай про https протокол.
     
  20. planet

    planet New Member

    Публикаций:
    0
    Регистрация:
    10 апр 2007
    Сообщения:
    108
    Запусти под отладчиком, поставь бряки на те перехваченные функции и смотри.
    Еще раз повторяю, что это тупиковый вариант. Вы забываете что HTTPAnalyzer предназначен только для просмотра, а не модификации https контента.