Как расшифровать HTTPS ?
От: gribodemon  
Дата: 29.08.09 17:18
Оценка:
Доброго времени суток!
Я поставил хук на функцию send() библиотеки wsock32.dll в процессе iexplore.exe
Таким образом, можно "прослушивать" исходящие запросы клиента.

Функция-перехватчик выглядит так:

LPVOID lpsend = NULL; // адрес оригинальной функции send()
BYTE bufsend[5] = {0}; // первые 5 байт оригинальной функции send() 
// функция-перехватчик
int WINAPI xsend(
  SOCKET s,
  char* buf,
  int len,
  int flags
)
{
// запись запроса клиента в файл
    CHAR rep[10000] = {0};
    sprintf(rep, "\n\n send report:\n", buf);
    CopyMemory(rep + strlen(rep), buf, len);
    __WriteFile("C:\\http.txt", (PBYTE)rep, strlen(rep), MAX_INT);

// снятие хука
    UnsetSplicingHook(lpsend, bufsend);

// вызов оригинальной функции
    int res = send(s, buf, len, flags);
    
// установка хука обратно
    SetSplicingHook(lpsend, xsend, bufsend);

    return res;
}

В общем, всё так и должно быть?

У меня неск. вопросов:
1.) В отчёте очень часто встречаются такие вещи:

 send report:
!

 send report:
!

 send report:
!

 send report:
!


Что за? =)

2.) Когда используется HTTPS-протокол, то вместо понятных HTTP-заголовков, мы получаем нечто вроде:

 send report:
jфY60Hш“RЉЈmП@д(v‡iw6YшЌt¤Шџ$UФвY2·:nЭ0«lD%яЩі"“§l a„г‡nУИрЮaСммыV"#\э,RR‡ђ!‘7zш‰e~W†ТјХ&SО‚.Idэh?чA’
•сж™®Kܘ/и1[эіає\Ц›доРЃФхдiґu$dBчвНзg—B?~mЧз!,n›™5    ТЏБе


Т.е. шифрованный HTTP-заголовок.

Вопрос: как расшифровать?
Какие функции отвечают за расшифровку? Имеет ли смысл перехватывать не на уровне сокетов, а на уровне wininet? Там данные уже будут расшифрованы?
Если да, то как дела обстоят в других браузерах? (FireFox, Opera, Safari) Какие там функции нужно перехватывать?
Или, может вообще, просто взять сертификат, дампить шифрованные данные как они есть, а потом, с помощью private-части SSL-сертификата вручную расшифровывать? Так прокатит?
https uncrypt расшифровать https wininet socket
Re: Как расшифровать HTTPS ?
От: gribodemon  
Дата: 30.08.09 03:45
Оценка:
Вроде, разобрался немного.
С IE дела обстоят понятно: Нужно перехватить HttpOpenRequest() и HttpSendReqest(). После этого все HTTPS-заголовки как на ладони. =)
Что делать с другими браузерами?
Вроде, Zeus хукает либу nspr4.dll (это в дистре FireFox'а). Какие конкретно функции? Кто-нибудь вкурсе?
И вообще — есть ли какие-нибудь отладочные ср-ва, которые отслеживают какие функции вызываются в приложениях из DLL? (ну, чтобы там можно было просматривать параметры функций, возвр. значения и пр.)
Re: Как расшифровать HTTPS ?
От: Sinclair Россия https://github.com/evilguest/
Дата: 31.08.09 07:46
Оценка:
Здравствуйте, gribodemon, Вы писали:

G>Доброго времени суток!

G>Я поставил хук на функцию send() библиотеки wsock32.dll в процессе iexplore.exe
G>Таким образом, можно "прослушивать" исходящие запросы клиента.
Внезапный вопрос: это всё — зачем?
Второй вопрос: fiddler2.com уже смотрел?
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Как расшифровать HTTPS ?
От: gribodemon  
Дата: 31.08.09 12:22
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Внезапный вопрос: это всё — зачем?

Это чтобы просматривать все HTTP/HTTPS данные, который юзер отправляет на своём PC.
Вообще, с IE я разобрался. Чтобы просматривать HTTPS-инфу, нужно перехватить InternetConnectA(), HttpOpenRequestA() и HttpSendRequestW() из wininet.dll
(по крайней мере, для IE8 всё перехватывает).
А теперь меня интересует что нужно перехватить, чтобы снифать на браузерах Opera и Safari.

S>Второй вопрос: fiddler2.com уже смотрел?

Нет, сейчас посмотрю.
Re: Hypertext Transfer Protocol Secure
От: TimurSPB Интернет  
Дата: 31.08.09 13:05
Оценка:
Make flame.politics Great Again!
Re[3]: Как расшифровать HTTPS ?
От: Sinclair Россия https://github.com/evilguest/
Дата: 31.08.09 13:59
Оценка:
Здравствуйте, gribodemon, Вы писали:

G>А теперь меня интересует что нужно перехватить, чтобы снифать на браузерах Opera и Safari.

Ок. Тогда нужно просто скачать fiddler2.com и волосы станут мягкими и шелковистыми.
S>>Второй вопрос: fiddler2.com уже смотрел?
G>Нет, сейчас посмотрю.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.