Содержание статьи
"Беспроводной Интернет в каждый дом" – весьма заманчивый лозунг. Согласись,
приятно, когда твой провайдер, еще каких-то 5 лет назад предоставлявший модемный
доступ, за считанные дни развертывает в массы WiFi-инфраструктуру по всему
городу (ну или хотя бы в его центре). Казалось бы, сбылась мечта идиота, и
теперь ты, сидя в Макдональдсе и вкушая третий макфреш, сможешь насладиться
быстрым интернетом. Но, присмотревшись внимательно, ты понимаешь, что так не
бывает – безопасность провайдера, а значит и всех его клиентов, оставляет желать
лучшего. Чтобы не быть голословной, предлагаю твоему вниманию случай
неформального аудита недавно родившейся сети. И, кто знает, может быть ты
убедишься в его правдивости на своем горе-провайдере.
Давай заранее договоримся: дабы соблюсти этикет и не ставить в неловкое
положение моего провайдера, я не буду называть конкретные сайты и бренды (кому
надо, тот все поймет сам). Тем более, по закону ничего нарушено не было – аудит
выполнялся исключительно под своими, честно купленными аккаунтами. Да и цель
этой статьи – не опорочить честь какой-то компании, а лишь указать на общие
недостатки WiFi-инфраструктуры, которые, наверняка, присутствуют у крупнейших
провайдеров.
Первые разочарования
Итак, вернемся к маркетингу. Представь себе крупный российский
город-миллионник, в котором рекламщики затрубили лозунгами: "Беспроводной,
быстрый и удобный Интернет!", "Насладись Сетью в любимом кафе" и т.д. и т.п.
Когда у тебя в городе появляется такая возможность, то сразу хочется ее
реализовать. Ведь, согласись, удобно (а для москвичей и петербуржцев уже давно
привычно – прим. ред.) сидеть в каком-нибудь кафе со своим верным
другом-ноутбуком и общаться по аське о делах насущных.
Но, немного пообщавшись, испытав серию разрывов и дисконнектов, я
почувствовала нотки первых разочарований. И даже не потому, что канал слабоват,
а потому что при повторном коннекте (даже через 10 минут) не требовалось
повторной авторизации.
Это что еще такое? Значит, я плачу за доступ, а провайдер совсем не заботится
о моей безопасности (ведь все сессии после моего ухода теоретически могут быть
доступны другим людям!). После такого удивления мне захотелось чуть-чуть
поснифать сетку, а затем проверить предположения.
Как законопослушная девушка, я не стала снифать компы посетителей крупного
кафе (сидящих на том же беспроводном интернете). Вместо этого я пригласила друга
с ноутбуком :). Он угостил меня чашечкой кофе и стал имитировать бурную
деятельность в Сети (запустил аську, контакт, проверил почту и т.п.).
Нюхаем и... задыхаемся!
Я же, не теряя времени, запустила WireShark и стала мониторить периметр.
Среди пакетов я сразу увидела SSL-рукопожатие на сайте провайдера...
К слову, как происходит авторизация соединения: сначала клиент коннектится к
незащищенной WEP/WPA-точке, затем обращается браузером на любой сайт в Сети и
редиректится на страницу авторизации. Там он вводит логин и пароль личного счета
(пополняемого путем отправки SMS-сообщения на специальный номер), и после этого,
по всей видимости, на роутере создается правило, позволяющее юзать интернет.
Так вот, после зашифрованной SSL-авторизации я увидела совершенно
незакриптованные пароли от ВКонтакте и почты, слегка заXOR’енные пассворды от
Аськи (которые легко вскрываются тем же Ufasoft Sniffer или InterCepter’ом) и
неприличные ссылки, ведущие на порносайты (совсем уже никого не стесняется...
:). Я не упоминаю про других клиентов этой сети (их я не анализировала,
поскольку специально поставила фильтр на IP-адрес друга, чтобы не нарушать
закон).
Но, как говорится, если совсем хочется, то можно (и даже нужно!) чуть-чуть
нарушить (но только для расширения кругозора :). Зная IP и MAC-адреса,
фигурирующие в периметре (а они узнаются анализом ARP-сообщений), можно легко их
проспуфить.
На сайте провайдера написано, что перед отключением от Сети необходимо
завершить сессию путем нажатия кнопки "Выход" на авторизационном сайте, иначе
аккаунт будет доступен еще некоторое время после отключения. Это нам только на
руку, поскольку далеко не каждый клиент будет этим заморачиваться :).
Итак, с помощью хорошей программы по смене МАС-адресов "MACChange" (или
вручную, кто как любит) изменим адрес своего беспроводного адаптера на известный
нам МАС соседа.
Не забудем присвоить себе его IP. Затем попробуем подключиться к сети. О
чудо, оказывается, провайдер допускает как DHCP-, так и Static-адресацию. И,
таким образом, можно наслаждаться прелестями беспроводного интернета бесплатно.
А точнее, за чужой счет!
А что, если?..
Ну, раз уж мы нарушили закон ради эксперимента, попробуем углубить и
расширить наш опыт. Что бы еще такого придумать, чтобы показать все недостатки
нашей беспроводной сети? Сразу же приходит мысль об организации MitM-атаки,
путем инсталляции подставной точки. Но здесь уже в кафе не расположишься.
Для проведения такого опыта нам необходимо иметь несколько компонентов:
веб-сервер, точку доступа и ноутбук для тестирования.
Мне пришлось идти домой, искать на антресолях завалявшийся DIR-300 и
настроить на нем DHCP-сервер. SSID точки я определила аналогичным идентификатору
оператора.
В качестве веб-сервера я выбрала компактный и удобный "Small HTTP Server".
Много слов уже было сказано об этом малыше. Мне лично нравится его удобный
интерфейс и, несмотря на весьма небольшие размеры, широкий функционал.
Поднимем на нем WEB- и DNS-серверы, чтобы при попытке зайти на какую-нибудь
веб-страницу пользователя направляло на HTML-страницу, напоминающую упомянутый
сайт регистрации в сети оператора. Теперь создадим PHP-скриптик, сохраняющий
вводимую на сайте информацию в отдельный txt-файл.
<?php
$filename = 'S:\home\localhost\www\info.txt';
$a = $_GET['login'];
$b = $_GET['password'];
$somecontent = " -- Логин - \n".$a." --Пароль - \n".$b." -- \n";
// Проверка существования и доступа для записи файла.
if (is_writable($filename))
if (!$handle = fopen($filename, 'r+')) {
echo "Не могу открыть файл ($filename)";
exit;
}
if (!fwrite($handle, $somecontent)) {
echo "Не могу произвести запись в файл ($filename)";
exit;
}
else{echo " ";}
echo "Записано ($somecontent) в файл ($filename)";
fclose($handle);
} else {
echo "Файл $filename недоступен для записи";
}
?>
Подстава готова, запускаем!
MitM в действии
План кражи логина и пароля от сети таков: пользователь активирует свой
беспроводной адаптер и пытается подключиться к сети. При этом в списке доступных
сетей он видит подставную точку доступа с тем же SSID, что и у коммерческого
оператора. Система выносит ее на первый порядок, поскольку сигнал от нее сильнее
операторского. Далее клиент подключается к этой точке, заходит в свой браузер и
попадает на страницу авторизации. Эта страница также имеет схожий со страницей
оператора интерфейс. Пользователь, ничего не подозревая, вводит свои реквизиты в
соответствующие поля. При нажатии на кнопку "войти", введенные им данные
сохраняются посредством PHP-скрипта в текстовый файл на сервере. А клиент
остается без интернета (и, конечно же, без логина с паролем 🙂 – прим. ред.).
Чтобы ничего не упустить из виду, пробуем авторизоваться на подставной точке
доступа: вводим реквизиты, жмем "войти"… далее ничего не происходит, как кажется
обычному юзеру, но скрипт уже сделал свое грязное дельце и данные сохранены на
сервере. Откроем этот файл и посмотрим его содержимое. Вуаля! Вот данные,
которые мы ввели, и сюрприз: кто-то уже подключился к нашей точке доступа и
теперь есть еще пара логинов и паролей для входа в сеть. В такой ситуации даже
SSL-авторизация не спасает от кражи реквизитов.
Пациент скорее жив, чем мертв
Что можно тут сказать? Самое страшное, что таких сетей больше половины по
всей стране (только мне известны четыре крупных города-миллионника с подобной
схемой авторизации). И никто не может гарантировать легитимность входящих
пользователей. При этом владельцы сервисов практически никогда не предупреждают
своих клиентов об уязвимости их данных, о рисках кражи информации. Все жаждут
увеличения прибыли, пренебрегая при этом всеми методами обеспечения
безопасности, поскольку это приводит к снижению скорости передачи данных и
усложняет процесс настройки клиентского оборудования (и, соответственно,
получения доступа к сети).
Поэтому хочу напоследок дать хороший совет: обращай внимание на точки
доступа, к которым ты подключаешься, и не передавай важную информацию в
незащищенных сетях (либо используй при этом VPN-соединение), поскольку это может
привести к фатальным последствиям.
Warning
Внимание! Информация представлена исключительно с целью ознакомления! Ни
автор, ни редакция за твои действия ответственности не несут!
DVD
На диске ты найдешь программы, оказавшие
мне посильную помощь в экспериментах (MACChange, Small HTTP Server, WireShark со
всеми утилитами, Ufasoft Sniffer, InterCepter), а также PHP-скрипт,
перехватывающий авторизационные сведения.