Как обойти SMS идентификацию при подключении к публичным Wi-Fi сетям?
В 2014
году начали свое действие постановления правительства РФ №758 №801,
обязывающие владельцев публичных WiFi сетей настроить на роутерах
идентификацию пользователей через паспортные данные, sms или портал гос.
услуг. Нежелание владельцев кафе тратиться за Captive portal'ы
поспособствовало некоторым провайдерам в распространении своих точек
доступа с платной sms-авторизацией. У меня возникло желание проверить,
можно ли подобную sms-авторизацию обойти.
![image](https://habrastorage.org/webt/t0/nc/et/t0ncetc5ufoyxrjutfoz43yfgfg.jpeg)
Дисклеймер
Данная статья написана в ознакомительных целях. Автор ни в коем случае
не призывает читателей к нарушению законодательства РФ. Пожалуйста, не
повторяйте действия, описанные в данной статье, предварительно не
ознакомившись с главой 28 УК РФ. Все торговые марки и названия Wi-Fi
сетей в данной статье являются выдуманными, а все совпадения —
случайными.
К делу...
Для поиска подходящей жертвы я взял ноутбук с Debian'ом на борту и
направился в ближайшую пиццерию. Рядом было пара торговых центров, и еще
несколько забегаловок, что гарантировало мне найти подходящую «жертву».
Я подключился к одной из доступных мне сетей, затем открыл браузер,
чтобы зайти на заветный порнхаб habr.com и вот что я увидел:
![image](https://habrastorage.org/webt/pg/dq/72/pgdq7267jnmrgkwmb8njngeftti.png)
Эта точка доступа оказалась подконтрольна одному из российских
провайдеров. Мне предлагалось воспользоваться данной сетью в качестве
гостя на минимальной скорости, получить премиум за 99 рублей или (если я
являюсь клиентом данного провайдера) войти через личный кабинет. И,
конечно же, я пошел путем, не входящим в этот список (иначе зачем бы я
начал писать эту статью).
На своем опыте я знал, если пройти идентификацию на одной точке доступа этого провайдера, то при подключении того-же устройства к другой точке идентификацию проходить не требовалось (потом оказалось, что так у всех провайдеров, предоставляющих sms-авторизацию). Идентификация не требовалась даже когда использовался другой браузер. Значит, провайдер как-то запоминает наше «железо». Самое первое что мне пришло в голову — провайдер запоминает mac-адрес нашего устройства. А это значит, что если поставить себе mac-адрес того, кто уже прошел идентификацию, то мы сможем спокойно пользоваться сетью. И, как мы увидим дальше, интуиция меня не подвела.
Для атаки я решил воспользоваться утилитами из пакета aircrack-ng и WiFi-адаптером TL-WN722N с внешней антенной для большего охвата. Для начала я подключил адаптер и с помощью airodump-ng перевел его в режим монитора. Я описал этот процесс кратко, более подробно вы можете прочитать тут.
На своем опыте я знал, если пройти идентификацию на одной точке доступа этого провайдера, то при подключении того-же устройства к другой точке идентификацию проходить не требовалось (потом оказалось, что так у всех провайдеров, предоставляющих sms-авторизацию). Идентификация не требовалась даже когда использовался другой браузер. Значит, провайдер как-то запоминает наше «железо». Самое первое что мне пришло в голову — провайдер запоминает mac-адрес нашего устройства. А это значит, что если поставить себе mac-адрес того, кто уже прошел идентификацию, то мы сможем спокойно пользоваться сетью. И, как мы увидим дальше, интуиция меня не подвела.
Для атаки я решил воспользоваться утилитами из пакета aircrack-ng и WiFi-адаптером TL-WN722N с внешней антенной для большего охвата. Для начала я подключил адаптер и с помощью airodump-ng перевел его в режим монитора. Я описал этот процесс кратко, более подробно вы можете прочитать тут.
sudo -s # работать будем с правами супер пользователя
ifconfig # смотрим имя адаптера, который мы хотим использовать
Получаем вывод:
...
wlx60e32719503f: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 2a:36:62:d5:ec:63 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
...
wlx60e32719503f — это наш адаптер
Убиваем процессы, которые используют адаптер, и переводим его в режим монитора.
Убиваем процессы, которые используют адаптер, и переводим его в режим монитора.
airmon-ng check kill
airmon-ng start wlx60e32719503f
![image](https://habrastorage.org/webt/4u/ek/e1/4ueke1vtdc6v-wguaj5syk8aebu.png)
Мы видим, что появился новый сетевой интерфейс — wlan0mon. Запускаем его
airodump-ng wlan0mon
Ждем пару минут, и получаем такую табличку
![image](https://habrastorage.org/webt/hp/si/eq/hpsieqikoizhhbluad5p7uj-ns0.png)
Нас интересуют поля BSSID (mac-адрес точки доступа), CH (канал) и ESSID
(название сети). По полю ESSID я нашел интересующую сеть (она шестая по
счету). Берем из таблицы mac-адрес точки доступа (CC:B2:**:**:**:FC),
канал (4 канал), на котором она работает и передаем их в airodump-ng:
airodump-ng wlan0mon -c 4 --bssid CC:B2:**:**:**:FC
Ждем некоторое время, и теперь получаем такой вывод:
![image](https://habrastorage.org/webt/-y/qw/45/-yqw457qf7qfmn8yfxzn24sbrme.png)
В первой таблице всего одна строка. Это наша атакуемая сеть. Во второй
таблице мы видим список клиентов этой сети. Нас интересует поле STATION.
Это mac-адреса клиентов, сохраняем их в текстовый файл. Нам необходимо
заменить свой mac-адрес на один из них. Я выбрал mac предпоследнего
клиента (1C:CD:**:**:**:43), так как этот клиент самый активный в сети, а
следовательно, он наверняка прошел идентификацию.
Как всем известно (а я надеюсь, что вам известно), двум устройствам с одинаковыми mac-адресами будет трудно ужиться в одной сети. И сейчас у нас 2 варианта.
Можно воспользоваться утилитой aireplay-ng, чтобы провести деаутентификацию нашего клиента от сети
Как всем известно (а я надеюсь, что вам известно), двум устройствам с одинаковыми mac-адресами будет трудно ужиться в одной сети. И сейчас у нас 2 варианта.
Можно воспользоваться утилитой aireplay-ng, чтобы провести деаутентификацию нашего клиента от сети
aireplay-ng -0 1000 -a CC:B2:**:**:**:FC -c 1C:CD:**:**:**:43 wlan0mon
- "-a CC:B2:**:**:**:FC" — это атакуемая точка доступа
- "-c 1C:CD:**:**:**:43" — это клиент, которого мы будем отключать
- "-0 1000" — тут мы указываем тип атаки (ноль это деаутентификация) и количество пакетов деаутентификации, чтобы отключить клиента, если он опять подключится.
Но я решил не вредить человеку, а пойти более гуманным способом —
подождать, пока клиент сам уйдет (как раз есть время поесть пиццу).
К счастью, этот клиент быстро ушел. Теперь нам осталось поставить его mac-адрес себе. Есть много способов поменять mac-адрес на linux. Самый простой — указать нужный mac-адрес непосредственно в сетевых настройках.
К счастью, этот клиент быстро ушел. Теперь нам осталось поставить его mac-адрес себе. Есть много способов поменять mac-адрес на linux. Самый простой — указать нужный mac-адрес непосредственно в сетевых настройках.
![image](https://habrastorage.org/webt/fc/mv/az/fcmvazw6wkqmvh1o9yqp-zlge4c.png)
Mac-адрес указан, теперь мы можем подключиться к точке, и проверить доступ к интернету командой ping.
![image](https://habrastorage.org/webt/fu/6i/hg/fu6ihgphp5fhvtdy4sldupzj_o4.png)
Попробовал зайти в гугл, и еще на несколько сайтов — успешно.
Заключение
Таким образом удалось выяснить, что SMS-авторизацию легко обойти заменив
свой mac-адрес на mac-адрес клиента, который уже прошел идентификацию. В
заключении хочу еще раз сказать: «Данная статья написана в
ознакомительных целях, автор ни в коем случае не призывает читателей к
нарушению законодательства РФ».
Источник: