Wi-Fi в Метро без авторизации по номеру или как не слить свой номер в Метро
Всем привет! Сегодня я покажу как воспользоваться Wi-Fi в Метро (СПб, МСК), не слив при этом свой номер телефона.
Предыстория
Спустя немного времени после запуска Wi-Fi в Питерском метро мне стало интересно как это работает. Я, как интересующийся человек, решил попробовать обойти авторизацию, потому что сливать номер мне не очень-то и хотелось.
Сканер портов мне рассказал, что весь диапазон портов наружу из локальной сети был заблокирован, а 80 (http), 443 (http) и 53 (dns) успешно редиректились на страницу авторизации в сети.
Возникло еще больше желания обойти эту систему...
Теория
При подключении к сети первым делом устройство запрашивает у DHCP-сервера IP-адрес, под которым его будут понимать устройства выше (роутеры).
В DHCP-запросе содержится mac-адрес устройства, который (должен быть) у каждого устройства в сети разный. Маршрутизатор сети просматривает свою базу в поисках предоставленного ему mac-адреса, а дальше 2 сценария:
1) пользователь уже авторизован в сети, т.е. слил свой номер телефона
2) пользователь не авторизован в сети
Если пользователь уже авторизован в сети, то ему присваивается ip-адрес в сети с доступом в интернет, а если нет, то доступ в интернет (в наружу) ему блокируется и перенаправляется на страницу авторизации.
То есть авторизация в метро происходит на основании mac-адреса, как и во многих wifi сетях, но этот метод имеет недостатки. Например, mac-адреса устройств, подключенных к сети, несложно узнать и, при желании, вбить себе на устройство mac другого устройства, уже прошедшего авторизацию, тем самым получить доступ в интернет, "прикинувшись" другим человеком.
Потихоньку переходим от теории к практике...
Практика
Что нам понадобится:
1) Ноутбук или любое другое не очень старое устройство на базе OS Windows или Linux. В моем случае этим устройством выступил планшет-трансформер Teclast X5 Pro.
2) Wi-Fi-свисток, умеющий в режим монитора*. В моем случае таким устройством был свисток с самопальным охлаждением ( :D ) на базе чипа Realtek RTL8187B.
3) Устройство, которому нужно непосредственно доступ в интернет без авторизации. В моем случае это был телефон Asus Zenfone2.
4) Немного времени.
* Режим монитора - специальный режим работы сетевой карты, при котором пакеты, которые ей не предназначались не отбрасываются, а обрабатываются и передаются операционной системе.
Приступим:
1) Так как на моем устройстве стоит Windows, а нам нужен Linux, нам нужно поставить Linux дистрибутив на виртуальную машину (напр. VirtualBox). Делается это не сложно, щелканьем кнопки далее и описывать этот процесс я не буду. В моем случае дистрибутив был Ubuntu Server.
2) Заходим в терминал, поднимаем права до root:
sudo -i
теперь нужно установить пакеты, необходимые для wifi-сниффера:
apt-get install aircrack-ng -y
в результате пакеты должны установиться
3) Теперь нужно подключить Wifi-свисток к виртуальной машине, в VirtualBox это делается через ПКМ по значку usb снизу и нажатия на wifi-свисток. После этого wifi свисток должен отобразиться в Linux:
ifconfig -a
У меня он получил длинное имя wlx003061417276.
4) Теперь самое интересное: запускаем сниффер.
airodump-ng wlx003061417276 *
* в некоторых мануалах написано, что сначала нужно переводить свисток в режим монитора командой airmon-ng start wlx003061417276, потом появится устройство mon0 или wlan0mon, а только потом airodump-ng mon0. Но у меня так не заработало, а заработало сразу без mon0 или wlan0mon.
первый запуск может быть долгий, но закончится он таким окном, в котором будут дорисовываться сети и их клиенты:
Колонка CH (channel) определяет канал сети. В моем случае в метро Wi-Fi имело 11 канал, поэтому я перезапустил, со сканированием только 11 канала, а не всех подряд.
airodump-ng wlx003061417276 --channel 11
Ожидаем поезд с Wi-Fi и видим много-много клиентов и их mac-адресов и 2 штуки точек доступа. Люди ни в чем не виноваты и их mac-адреса я закрашу...
Этот список мы копируем/фотографируем/переписываем, выбираем один из mac'ов для себя.
5) Выбранный mac-адрес нам нужно прописать в наше устройство. На разных устройствах делается по разному, на Android нужен будет рут-доступ.
На Asus Zenfone2 файл с mac адресом располагается /config/wifi/mac.txt и записан в формате XXXXXXXXXXXX (без двоеточия).
На Samsung Galaxy S2 этот файл располагается /efs/wifi/.mac.info и записан в формате XX:XX:XX:XX:XX:XX (с двоеточием)
5.1) Делаем бэкап стокового mac'а, чтобы в случае если что-то пойдет не так мы смогли спастись.
5.2) Прописываем понравившийся mac себе и перезагружаем девайс. Заходим в настройки wifi -> дополнительные и смотрим:
был 30:5A (с завода)....
стал 48:5A....
Если mac не поменялся, то значит вы что-то сделали не так.
6) Проверяем. Я использовал программу Wi-Fi в метро, она же на Google Play, которая за меня посмотрит рекламу и подключит меня к интернету. Теоретически можно обойтись и без нее, тогда Wi-Fi попросит еще посмотреть рекламу, а только потом даст интернет.
Что же происходит дальше?
Подключаемся, получаем IP. Спустя пару секунд программа сообщает, что подключение успешно выполнено и мы пробуем загрузить 2ip.ru
Теоретически могут возникнуть проблемы, если в сети появятся 2 устройства с одинаковым mac-адресом, у кого-то одного не будет интернета. Но мне кажется это достаточно маловероятно, так как вам нужно будет ехать в одном вагоне метро... =)
Спасибо тем, кто дочитал до конца, жду отзывов =), ну и