Free Wi-Fi. Вопросы безопасности


Предупреждение: статья не для гуру компьютерной безопасности, а для тех, кто не до конца понимает, как работает авторизация на различных сайтах и какие дополнительные моменты появляются при работе в wifi сетях. Попытаюсь объяснить «на пальцах».
Начнём с мат части.
Как обычно происходит авторизация на различных вёб ресурсах? Точнее как это происходит чаще всего.
Вы вводите логин и пароль в форме логина, нажимаете кнопку и данные отправляется по каналу с безопасностью A, после чего сервер присылает ответ с сеансовым ключом, и этот сеансовый ключ в дальнейшем используется для обмена сообщениями по каналу с безопасностью B.
И если:

  • A и B — оба https. В этом случае всё хорошо, ну или почти всё. Практически спокойно можно пользоваться сервисом в любой сети. Хотя некоторые ограничения остаются, которые не будет рассматриваться сейчас.
  • A и B — https и http. Самое интересное.
  • A и B — обычный http. Очень грустно. Можно надеятся только на недоступность сети другим. Не интересно.

Так когда и в каком случае ваша личная информация может стать доступной ещё кому-либо? Об этом читайте далее.
https+http самая распространённая схема, которая как раз применяется во вконтактике.
Итак. Безопасность https обеспечивается системой сертификатов. Там много своих тонкостей, но если в них не вдаваться, то если ваш браузер НЕ показывает картинку вроде:
то всё хорошо, и данные передаваемые по такому каналу хорошо защищены. Итого: пароль от vk.com спереть довольно трудно.

Полученный по безопасному каналу сеансовый ключ далее передаётся в незашифрованном виде по обычному http. И как он позволяет совершать какие-либо действия с вашим профилем вам, также и всем остальным, кто его знает.
Что же он из себя представляет? Посмотрим на http запрос картинки подарка(да, некоторые параметры изменены):

Здесь ключом является «remixsid». И чтобы «залогинится» достаточно выполнить команды в javascript консоле Chrome.

Обновить страничку и можно считать себя полноправным владельцем профиля.

Так как же его получить? Поснифать сеть.
Инструменты:
1) wireshark

Но! Он может показать только те пакеты, которые пришли вам. Вот не знаю как это объяснить это нормально. Но суть в том, что скорее всего удасться поймать ответы, но не запросы с куками.
Для решения этой проблемы может использоваться утилита airmon-ng. Она переключает адаптер в monitoring mode, который позволяет собирать все пакеты на определённом канале даже не зависимо от точки доступа(ну видимо только для не шифрованных сетей).

Запасаемся терпением и ждём запросов. Как они выглядит вы уже видели выше. Дальше остаётся ввести 1 команду.

Практические реультаты:
За 1 пару было наснифано куков с 6 аккаунтов. Было написано предупреждение на стене И НИЧЕГО БОЛЬШЕ.

Так кто виноват? Админы(которые построили такую сеть) да и мы(те кто пользуется такими ресурсами в открытых сетях).
Что делать? Возможно скоро напишу.

Планируемые статьи:

  • Spoofing и Men-in-the-middle атаки.
  • Как защититься от атак в wifi сетях.

p.s. это не рецепт как атаковать, а всего лишь попытка показать как это просто и доступно, и расшевелить тех, кто думает, что это никто никогда не сделает.
p.p.s. ну если сразу наспавниться много Скрипт-кидди, то я предупредил, что нужно быть осторожнее.
p.p.p.s. да, у меня не всё хорошо с русский языком.

Yuriy Nazarov on GithubYuriy Nazarov on Twitter
Yuriy Nazarov
Software engineer
Люблю machine learning