Categories: Hacking

Как обойти HTTPS с помощью proxy.

Сегодня мы раскажем вам о относительно  старой атаке — возможности «Обхода» НТТРS в браузере. Если точнее, возможности внедрить свой JavaScript-кoд в любой сайт, защищенный НТТРS, при условии, что злоумышленник может «вставить» свой прокси в настройках браузера жертвы. Да, эта атака не работает на современных топовых браузерах. Но, во-первых, еще шесть лет назад ей были подвержены все они, а во-вторых, она служит отличным примером основных проблем с НТТРS  (SSL). Да и с технологической точки зрения интересна.

Как обойти HTTPS с помощью proxy.

Давай представим себе ситуацию, что атакующий может провести на пользователя man-in-the-middle атаку. Причем не просто « находиться » гдето посередине между сервером и  пользователем, а быть прокси-сервером для подключения между ними. То есть в настройках браузера/ОС пользователя должен быть указан прокси атакующего. Хотя это может показаться невыполнимым, но на практике есть ряд ситуаций , когда это происходит. Вот самые типовые.

Корпоративная сеть, все пользователи ходят через корпоративный прокси . Мы производим DNS- или АRР-спуфинг и подменяем официальный прокси на свой. Также есть автоматическое включение прокси с использованием технологии WPAD (Web Proxy Autodiscovery Protocol), которая по умолчанию активирована в Windows-cиcтeмax ( «Автоматическое определение настроек» в IE).

Далее. Почему нам так важно именно стать прокси-сервером? Дело заключается в уникальности работы через них. Если при обычном подключении по SSL данные идут напрямую и, не считая первых SSL-пакетов, там все зашифровано, то с прокси добавляется еще один шаг, который не зашифрован.

Итак, по RFC, для работы по НТТРS через прокси был придуман дополнительный метод — CONNECТ. Когда пользователь пытается подключиться по НТТРS к серверу, его браузер сначала посылает запрос плейн-текстом на прокси такого вида:

CONNECT defcon-russia:443 НТТР/1.1
Host: defcon-russia

 Прокси же пытается подключиться по указанному IP и порту и, если все хорошо, отвечает:

НТТР/1.0 200 Connection estabished

 При этом он не обрывает подключение (ТСР) , а начинает просто пересылать весь трафик от пользователя на сервер . То есть отсюда и далее идет обычное подключение по SSL. Теория, я думаю, ясна. Перейдем к самой уязвимости, которая была в браузерах.

Подключение по HTTPS через proxy

Проблема была в том, что браузер обрабатывал ответ прокси (например, ошибку при подключении) в контексте домена сайта , к которому он подключался. И что еще круче — JavaScript тоже работал! Прокси-серверу ничего не стоило вернуть браузеру ошибку со своим JS и из него получить те же куки, например.

Атака HTTPS с proxy

Хотелось бы подчеркнуть здесь, что фактически ничто не нарушало само НТТРS-соединение. Оно как было зашифровано и нетронуто , так и осталось. Проблема была уровнями выше — в same origin policy (SOP) браузера, по которому все было вполне корректно : вне зависимости от того , откуда пришли данные, если origin тот же, значит, и доступ есть. Причем разработчики разрешали вывод ошибок от proxy из хороших побуждений — чтобы у пользователя была возможность видеть кастомную информацию о причинах ошибки подключения.

Click to rate this post!
[Total: 3 Average: 5]
cryptoworld

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

View Comments

Recent Posts

Лучший адаптер беспроводной сети для взлома Wi-Fi

Чтобы взломать сеть Wi-Fi с помощью Kali Linux, вам нужна беспроводная карта, поддерживающая режим мониторинга…

1 год ago

Как пользоваться инструментом FFmpeg

Работа с консолью считается более эффективной, чем работа с графическим интерфейсом по нескольким причинам.Во-первых, ввод…

1 год ago

Как создать собственный VPN-сервис

Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с…

1 год ago

ChatGPT против HIX Chat: какой чат-бот с искусственным интеллектом лучше?

С тех пор как ChatGPT вышел на арену, возросла потребность в поддержке чата на базе…

1 год ago

Разведка по Wi-Fi и GPS с помощью Sparrow-wifi

Если вы когда-нибудь окажетесь в ситуации, когда вам нужно взглянуть на спектр беспроводной связи, будь…

1 год ago

Как обнаружить угрозы в памяти

Elastic Security стремится превзойти противников в инновациях и обеспечить защиту от новейших технологий злоумышленников. В…

1 год ago