Дисклеймер
Данная статья написана в ознакомительных целях. Автор ни в коем случае не призывает читателей к нарушению законодательства РФ. Пожалуйста, не повторяйте действия, описанные в данной статье, предварительно не ознакомившись с главой 28 УК РФ. Все торговые марки и названия Wi-Fi сетей в данной статье являются выдуманными, а все совпадения — случайными.
К делу...
Для поиска подходящей жертвы я взял ноутбук с Debian'ом на борту и направился в ближайшую пиццерию. Рядом было пара торговых центров, и еще несколько забегаловок, что гарантировало мне найти подходящую «жертву». Я подключился к одной из доступных мне сетей, затем открыл браузер, чтобы зайти на заветный habr.com и вот что я увидел:
Эта точка доступа оказалась подконтрольна одному из российских провайдеров. Мне предлагалось воспользоваться данной сетью в качестве гостя на минимальной скорости, получить премиум за 99 рублей или (если я являюсь клиентом данного провайдера) войти через личный кабинет. И, конечно же, я пошел путем, не входящим в этот список (иначе зачем бы я начал писать эту статью).
На своем опыте я знал, если пройти идентификацию на одной точке доступа этого провайдера, то при подключении того-же устройства к другой точке идентификацию проходить не требовалось (потом оказалось, что так у всех провайдеров, предоставляющих 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
Мы видим, что появился новый сетевой интерфейс — wlan0mon. Запускаем его
airodump-ng wlan0mon
Ждем пару минут, и получаем такую табличку
Нас интересуют поля BSSID (mac-адрес точки доступа), CH (канал) и ESSID (название сети). По полю ESSID я нашел интересующую сеть (она шестая по счету). Берем из таблицы mac-адрес точки доступа (CC:B2:**:**:**:FC), канал (4 канал), на котором она работает и передаем их в airodump-ng:
airodump-ng wlan0mon -c 4 --bssid CC:B2:**:**:**:FC
Ждем некоторое время, и теперь получаем такой вывод:
В первой таблице всего одна строка. Это наша атакуемая сеть. Во второй таблице мы видим список клиентов этой сети. Нас интересует поле STATION. Это mac-адреса клиентов, сохраняем их в текстовый файл. Нам необходимо заменить свой mac-адрес на один из них. Я выбрал mac предпоследнего клиента (1C:CD:**:**:**:43), так как этот клиент самый активный в сети, а следовательно, он наверняка прошел идентификацию.
Как всем известно (а я надеюсь, что вам известно), двум устройствам с одинаковыми 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-адрес указан, теперь мы можем подключиться к точке, и проверить доступ к интернету командой ping.
Попробовал зайти в гугл, и еще на несколько сайтов — успешно.
Заключение
Таким образом удалось выяснить, что SMS-авторизацию легко обойти заменив свой mac-адрес на mac-адрес клиента, который уже прошел идентификацию. В заключении хочу еще раз сказать: «Данная статья написана в ознакомительных целях, автор ни в коем случае не призывает читателей к нарушению законодательства РФ».
Комментарии (116)
Tarson
20.09.2018 19:57+1Вроде что-то похожее в «Хакере» было, но деталей вообще не помню. Про МАС адрес клиента только помню было.
DVoropaev Автор
20.09.2018 23:06А не напомните, какой выпуск был? хотел бы почитать
Tarson
21.09.2018 12:47Офигеть, вот это у меня память! Аж 17 лет назад читал!
xakep.ru/2002/01/24/14341
а тут свежее
helpugroup.ru/vzlom-otkrytyh-wi-fi-setej-gostinits-samoletov-kofeen-putem-spufinga-mac-adresa
Tolsi
20.09.2018 19:58-1«легко», ага
strelkan
21.09.2018 03:30это и правда легко, даже взламывать ничего не надо
hokum13
21.09.2018 10:32Ну речь наверное про то, что нужен linux, а это большинству на самом деле сложно (или точнее говоря страшно, т.к. ничего сложного в копипасте команд из статей нет).
p_fox
21.09.2018 10:37"нужен linux"
Или Андроид.hokum13
21.09.2018 11:16+1А есть aircrack на андройд? Я видимо многое пропустил. Ну и сменить mac на мобиле (опять же, может я чего пропустил?) вроде не так просто, как через ifconfig.
force
21.09.2018 13:23Берёте Mikrotik map lite, роутер питается от micro usb, размером с коробок спичек. Поднимаете на нём WiFi сеть, после этого с телефона по Tik App или компьютера по WinBox сканируете устройства, поднимаете вторую точку доступа, ей пишете нужный мак и делаете ретрансляцию. После первой настройки — дел на 2 минуты.
hokum13
21.09.2018 13:44Ну тогда: берете raspberryPi, раскатываете на него kali, а с телефона подключаетесь с помощью терминала (их для android хватает). Дальше эта инструкция делает половину работы, вторую половину нужно искать в инструкциях по созданию роутера из raspberry…
Больше ада?force
21.09.2018 13:47Да. тут больше. Я тупо предложил самый простой вариант. При этом, т.к. роутер отдельный, можно всех друзей через него пускать.
hokum13
21.09.2018 14:24Ну просто знаю людей, которые могут настроить роутер на линуксе, но не трогали микротик ни разу. Им будет проще.
Вы мне кстати интересную бизнес-идею подкинули…
Tolsi
21.09.2018 19:11+1Он есть, но не работает с большинством чипсетов. Видел, что втыкали через переходник usb wifi карты и через неё использовали.
balamutang
21.09.2018 15:19я «давненько не брал в руки шашек», но под винду был софт AeroPeek он же после OmniPeek c соответствующими драйверами.
Там правда только снифферить можно было, но этого достаточно чтоб посмотреть трафик, собрать маки и подключиться к точке после ухода клиентов.
Tolsi
21.09.2018 19:21Я не отрицаю, что это технически просто, но чаще всего такими точками пользуются на ходу с телефона, без доступа к сниферу и возможности подменить мак. Чтобы доказать уязвимость (достаточно очевидную) — окей, но это не на каждый день.
vilgeforce
20.09.2018 20:00+1Когда смотрите клиентов сети, добавляйте для airodump ключик -a, чтобы показывались только ассоциированные с точкой клиенты. А деаутентификация не поможет ужиться в той же сети второй машине с тем же MAC-адресом: клиент постоянно будет пытаться подключиться вновь (и довольно успешно), а атака будет успешно отключать и атакующего ;-)
DVoropaev Автор
20.09.2018 23:09+1Про параметр вы верно заметили, тогда еще можно добавить "--berlin 9999(большое число)", чтобы из списка не выпадали клиенты. А на счет деаутентификации, она клиента не отрубит полностью, а вот заставить его побыстрее уйти в поисках «рабочей» точки она может
Sabubu
20.09.2018 20:03+1А в метро или общ. транспорте это не работает? Там легко можно насобирать десятки тысяч маков, и можно даже выложить их в сеть для всех желающих.
pyrk2142
20.09.2018 22:41+1Насколько я помню, даже когда-то было приложение, которое все это делало почти автоматически. Принципы похожие.
Eeegrek
21.09.2018 09:10Оно называется WiFi в метро из Play Маркета оно изгнано, но автор продолжает над ним успешно работать.
namikiri
21.09.2018 10:06Нет, «Wi-Fi в метро» занимается немного не тем. Это приложение за пользователя ходит по ссылкам и «смотрит» рекламу, MAC-адреса она не сканирует и не подменяет.
sartorius9
21.09.2018 15:39насколько я знаю — WiFi в метро лишь имитирует просмотр рекламы и нажатие кнопки в браузере, чтобы войти в интернет, скрывая от пользователя все редиректы, которые делает Максима в процессе подключения.
4pda.ru/forum/index.php?showtopic=723222&st=2300
хотя её дествительно на этом основании изгнали из Маркета. однако ночью в пустом вагоне она успешно позволяет подключится, чего не случилось бы если бы она лишь угоняла чужие MAC-адреса.
Вы просто наугад её назвали?
MEJIOMAH
21.09.2018 09:15В метро так можно с себя снимать блокировку за использование adblock. Получил бан, сменил мак, пошел жить дальше
LevOrdabesov
20.09.2018 20:09Для умеющих в пакет air* всё описанное очевидно, ИМХО.
Автор, вы не думали написать софт или хотя бы скрипты для автоматизации этого рутинного, в общем-то, процесса?
Вот об этом была б интересная статья.chupasaurus
21.09.2018 15:49Автор, у которого все действия в консоли, не знает как в консоли поменять MAC-адрес и то, что ifconfig deprecated уже давно.
#Список LL и IP адресов ip addr sh #Смена MAC-адреса устройства ip link set dev_name address NU:MA:CA:DD:RE:SS
DVoropaev Автор
21.09.2018 16:22в консоли надо каждый раз менять, а в настройках один раз указал, и комп уже знает. к какому сети какой мак-адрес подходит.
chupasaurus
21.09.2018 17:14В той же консоли правится /etc/network/interfaces, параметр hwaddress.
комп уже знает. к какому сети какой мак-адрес подходит
Привязать использование определённого MAC-адреса к определённой Wi-Fi сети без скриптов не получится.
P.S. Ходить с чужим MAC-адресом на постоянке ещё хуже, чем с заводским.
lxl
20.09.2018 20:28Ещё краем уха видел, что туннелирование в DNS хорошо работает с captive portal'ами.
github.com/yarrick/iodineKoppeKTop
21.09.2018 00:27DNS чаще всего открыты на вполне определённые IP адреса (которые выдаются в DHCP).
Остальные соединения чаще всего просто дропаются, а соединения на 80 порт редиректятся на кэптив.
Так чтобы были просто разрешены все запросы на 53 порт — с таким не сталкивался у вендоров WiFi оборудования.darkk
21.09.2018 01:04Почитайте подробнее, как работает туннелирование в DNS. Ему не требуется доступ до "остальных" IP адресов, только до DNS-сервера провайдера.
skystart
21.09.2018 11:32DNS, обслуживающий хотспот, может быть с «белым списком» доменов для резолва.
hokum13
21.09.2018 11:46Вы хотели сказать с «белым списком dns-серверов»? Так это не поможет (условные «восьмерки» не увидев у себя кэша запроса, а его нет, обратятся dns серверу «хакера»). Или Вы реально считаете, что на микротик (или любой другой небольшой хотспот-роутер, какие обычно втыкают в кафешках) можно впилить белый список, которого хватит хотя-бы 90% посетителей?
Тогда уж лучше ограничить скорость по 53-му порту 5-10kbps на устройство. Большинству запросов хватит, а туннелирование сделает невозможным.
darkk
21.09.2018 12:33Конечно, может. И может как минимум ещё ограничивать число запросов в единицу времени.
peter23
21.09.2018 01:06Так iodine не просто туннель на 53 порту поднимает.
Он гоняет трафик именно внутри запросов-ответов DNS.XanKraegor
21.09.2018 03:14Боюсь себе даже представить, с какой производительностью он гоняет трафик TCP, инкапсулированный в тоннель в DNS UDP пакеты.
Но как proof of concept очень круто :)
smb_z
20.09.2018 20:36Возможно, коммент из серии капитана Очевидность, но все же, вдруг кому пригодится:
При поездках по Европе регулярно встречал открытые сети с captive-порталом, который требует ввести телефон ИЛИ e-mail. В этом случае выбираем e-mail и вводим рандомный и вуаля, в 100% случаев (по моему опыту) вы оказываетесь в сети (возможно, будет работать ограничение по времени сессии).
Очевидно, что в отличие от SMS, для верификации почты вам необходим доступ в интернет, который и ограничивает данный captive.SandroSmith
21.09.2018 01:00Отвечу комментом такого-же Капитана — там номер или e-mail спрашивают не для того что бы проверить оплачено ли, а из принципа «если что-то бесплатно, то товар — это вы»
pyrk2142
20.09.2018 22:48+1Вообще, все это следствие того, что подобная авторизация в сети изначально не планировалась как безопасная. Ее цель — как можно дешевле соблюсти различные требования. Поэтому для более-менее разумного специалиста обойти авторизацию не составит особых проблем.
Более того, в ряде случаев можно авторизоваться в сетях с использованием любого номера.
И вот тут уже возникают самые интересные вопросы: если условный хакер авторизовался в сети от имени какого-то левого номера мобильного телефона, совершил что-то достаточно серьезное, чтобы его захотели найти, то как быстро найдут владельца этого левого номера? И сколько нервных клеток он потеряет в попытках доказать, что это не он совершил что-то противозаконное?hippohood
21.09.2018 08:48-1Найдут очень быстро. Владельца левого телефона. Нервные клетки и здоровье он будет терять только если проявит неуместное упрямство и откажется сразу подписать протокол. Отбитые почки и государственный адвокат помогут. Так что это требование сильно помогает сохранить ресурсы налогоплательщиков: операм не надо бегать по улицам и хватать кого попало, козел отпущения уже
mikeee1
21.09.2018 09:56Скорее всего этого горе хакера вычислят по записям камер наблюдения, просто просмотрев посетителей во время вифи сессии.
fpir
21.09.2018 10:23Не видели Вы записей этих «камер наблюдения» и судите по сериалу «След», или как-то так. На FullHD камере с 10 метров, Вы возможно, узнаете знакомого, если видели его в этой одежде. А вот опера это знают прекрасно, впрочем, как и их оппоненты. Найти незнакомого человека по картинке с хорошей камеры-1 шанс на 1000. А камеры сильно не всегда хорошие. Иногда они бывают и 480р, и там с 3х метров проблематично определить — официантка Маша или Люся разбила бокал.
mikeee1
21.09.2018 12:35Тем не менее, я бы не стал так рисковать и палиться. Может там на столбе у перекреска висит камера с высоким разрешением. Для профессионального хакера найдется дюжина более надежных путей, чем светиться в кафешках.
Вобщем не суть, вы меня поняли
el_kornholio
20.09.2018 23:03+2Совсем недавно на хабре постили статью про ровно тот же вектор атаки на ВайФай в московском метро и транспорте (только там еще и персональные данные навыдирали в огромном количестве скриптом). Интересно, когда начнут использовать это во всяких криминальных целях — подставить кого-то и т.д. Может тогда что-то предпримут, хотя бы в муниципальных сетях.
XanKraegor
21.09.2018 03:09Тоже часто задаюсь этим вопросом. Причем от спуфинга мак-адреса с последующими публикациями под видом жертвы всякого экстремизма в контакте никакой защиты, кроме собственно выключения вайфая (или подмены своего адреса там, где есть рут) нет. Даже если с хорошим адвокатом можно будет убедить суд, что мак-адрес != владелец, потраченные нервы и время никто не вернет. А искать злоумышленника уж не будут точно
DVoropaev Автор
21.09.2018 09:30Интересно, а как же фингерпринты? Если человек пользовался андроидом, а я поставил его мак-адрес на ноут с линуксом, то фингерпринт все равно будет отличаться. Будет ли это как-то учитываться в суде?
XanKraegor
21.09.2018 13:27Тут две тонкости есть: во-первых, если для авторизации используется мак адрес, то отпечатки могут никого не интересовать. Во-вторых, фингерпринт можно также подделать. Ну или может быть вы к вайфаю подключились с помощью внешнего вайфай адаптера, который подключали сначала к андройду, в потом к ноутбуку с линуксом.
hokum13
21.09.2018 14:09Фингерпринт будет на стороне сервера, а мак на стороне хотспота. А вот теперь Вам кейс:
1.1. Какой-то придурок написал на сайте администрации города %cityName% сообщение, что в её здании заложена бомба (реальный случай из моей практики до введения обязательной авторизации).
1.2. Пусть симку он использовал зарегистрированную на «таджика» (я не нацист, просто для определенности).
1.3. Чуть позже (в пределах минут) Вы взяли его mac и залезли на хабр под «анонимом», понаписали гадостей в этой статье и с чувством выполненного долга пошли домой.
1.4. Дома, поменяв mac на свой Вы вылезли на хабр и под своей учеткой (привязанной к vk) возмутились словами «анонима».
2.1. На этой минуте появляются маскишоу и просят логи авторизации у владельца хотспота.
2.2. Поняв что телефон дохлый, маскишоу смотрят историю просмотров и идут к НЛО.
2.3. НЛО законопослушный гражданин, не любящий террористов, по фингерпринту устанавливает связь между анонимом и Вашей учеткой ВК (или это делают маскишоу, запрашивая нужные сведения у НЛО — не принципиально).
3.1. О дальнейшей деятельности маскишоу Вы узнаете из первых рук.
Финиш…
Вывод: анонимность должна быть анонимной. Размер экрана, как и другие сведения позволяющие Вас аутентифицировать нужно беречь, если Вы дорожите анонимностью.XanKraegor
21.09.2018 15:00С этим я полностью согласен. И все же здесь опять ситуация, в которой сначала «вы взяли его mac» и мак, к сожалению, приравнивается к пользователю. Чего быть не должно, ведь спуфинг мака — вещь доступная. К тому же не является правонарушением сама по себе.
hokum13
21.09.2018 15:43Мнения о том, как должен быть устроен мир (и в частности доказательная база в рамках it-безопасности) очень часто расходится у нас (граждан) и правительства. Проблема в том, что мы их посадить за терроризм (поставьте любой проступок/преступление) не можем, а они нас да. А значит можно конечно давить на них для отмены «закона Яровой», но нужно соблюдать правила it-гигиены.
Seven-ov
20.09.2018 23:10+1А ведь таким способом можно и подставить человека… Что-то противозаконное сделав под чужим маком… Наши доблестные полицаи ведь разбираться не будут. И авторизация и записи с камер — все доказательства причастности!
ainoneko
21.09.2018 10:52А ведь таким способом можно и подставить человека…
Да, об этом уже было: И еще раз: не пользуйтесь публичным WiFi.
saintbyte
20.09.2018 23:40А что делать если авторизированный клиент ближе к точке и деавторизировать его не получается?
XanKraegor
21.09.2018 03:11Есть еще такие вещи как txpower — мощность передатчика и направленные антенны, так что в теории деавторизовать можно любого
bugdesigner
21.09.2018 05:59А как происходит подключение к wifi иностранцев? Допустим, некий турист в кафе захотел воспользоваться Интернет?
roboter
21.09.2018 11:17SMS ключ приходит без проблем.
bugdesigner
21.09.2018 17:54То есть достаточно купить SIM карту любой страны, где они продаются без паспорта и без проблем получить доступ в Интернет? Тогда какой смысл всей этой затеи?
tvr
21.09.2018 18:01+2То есть достаточно купить SIM карту любой страны, где они продаются без паспорта и без проблем получить доступ в Интернет?
Это будет работать ровно до тех пор, пока вы не наткнётесь на прибитый гвоздями намертво в поле ввода номера префикс +7, ну или SMS-гейт не откажется слать SMS на нероссийские номера, ну или SMS будет, гхм, очень неспешно доставляться.
MacIn
21.09.2018 23:18+2Как иностранец говорю — хреново.
В половине мест, где авторизация по SMS, ввести можно только номер с +7 (оно и понятно — за границу слать дороже). И все, ходи-ищи другое место.
bykvaadm
21.09.2018 09:46-1Интересно, когда уже люди перестанут на этот технический ресурс постить статьи с использованием ifconfig? Вы его в debian сами что-ли руками ставите? Ведь ну выпилили же его из поставки в stretch, ан нет, все равно люди несут. Смиритесь уже что на дворе 2018 год и инструмент для настройки сети теперь iproute.
namikiri
21.09.2018 10:10+2Он удобный, привычный, с понятным выводом. Да, устанавливаю. Да, и в Debian, и в CentOS. И даже в Android в составе Busybox. Отстаньте.
Anthony_K
21.09.2018 10:08Всё здорово, но суть статьи можно выразить одним предложением: используйте чужой мак-адрес от уже авторизованного устройства. Всё остальное — мануал по снифферу.
ded_Sergei
21.09.2018 10:20+1Не все сетевые адаптеры позволяют работать в режиме мониторинга. И не забывайте сменить Мак адрес после того как вы отключились, возможно стоит почистить системные логи.
Так же было бы неплохо помнить, что ваши сессии записываются (Закон Яровой привет!). При желании (шанс ничтожен, но есть, зависит от последствий вашей деятельности под чужим маком) можно идентифицировать момент нового подключения и с этого момента попробовать составить цифровой отпечаток вашего компьютера и сетевой активности. И не разворачивайте браузер на 100% экранаETman
21.09.2018 10:54И не разворачивайте браузер на 100% экрана
Просто интересно почему??namikiri
21.09.2018 11:05Это ещё одна характеристика Вашего компьютера — разрешение экрана.
ded_Sergei
21.09.2018 11:28Совершенно верно. Можете посмотреть в расширенной версии данные о своем компьютере. Например вот тут Whoer.net
staticmain
21.09.2018 11:47Потому что браузер передает серверам размер окна браузера. И если у вас панелька слева 48 пкс и панелька сверху 24 пкс (1920 — 48 х 1080 — 24), то вас намного легче найти по этому паттерну, чем по постоянно меняющейся геометрии окна.
Vilgelm
21.09.2018 12:35Еще можно воспользоваться Tor Browser, который передает в качестве разрешения экрана текущие размеры окна.
sha4
21.09.2018 11:13Статья должна называться "Как поменять себе mac, чтобы подключиться к общественному wifi". Все и так знают что там авторизация по маку. Как и у некоторых проводных провайдеров.
mtex
21.09.2018 11:56В принципе, airmon не обязателен. Достаточно подключиться к сети и просканировать ее посредством nmap, чтобы утянуть чужой mac-адресс.
Psionic
21.09.2018 16:03Как просто-то, я то думал тут будет гикпорно, но все оказалось куда прозаичнее. Кстати, а никто не знает как быть туристам иностранными сим-картами? Я в одном кафе СПБ даже официантку двойными чаевыми наградил за то что позволила мне аутентифицировать мой телефон с ее симкартой.
Ololot
21.09.2018 17:09Интересно возможно ли обойти защиту в этой точке доступа?
balamutang
21.09.2018 18:10+1это даже не классический вайфай, а 24ггц диапазон
не говоря о том что статья о косяках в подходе к настройка каптив-портала, а не о проблемах железа/протоколов.
Zloy_tarakan
21.09.2018 17:09Таким образом можно замаскировать себя под другого и качать нелегальный контент?
appletesta
21.09.2018 17:44А для айфонов с их динамическим МАС-адресом что запоминается?
Goodkat
21.09.2018 17:58+1Динамический он только на время сканирования эфира, при коннекте адрес всегда один и тот же.
Goodkat
21.09.2018 18:07+1Ну тут хотя бы мак-адрес проверяют.
Часто эти каптив-порталы тяп-ляп сделаны.
В США их много, в гостинницах, на кораблях и самолётах, в кафешках и т.п. Где-то платные, где-то вход только для клиентов и т.д.
Примерно к каждому третьему мне удавалось подключиться тупо с айфона без всякой подмены макадресов или каких-либо хаков, просто подключался-отключался несколько раз, и интернет вдруг появлялся. Иногда блокировались только порты 80 и 443, иногда достаточно было вручную прописать DNS-сервер и т.п.
Badum
21.09.2018 21:31Эх где мои 15 лет, менял менял свой мак соседа чтобы пользоваться локалкой, когда деньги заканчивались в 2004м, прошло 14 лет ничего не поменялось.
eri
У меня на точках надо ещё повторить номер телефона. Так что перехватывайте процесс ввода номера у соседа по столику. Местами включаю хттпс. Но не везде можно оставить админа чтоб следил за сертификатами и продлением.
DVoropaev Автор
То есть у вас нужно каждый раз при подключении номер вводить, я правильно понял?
eri
да, если истекла сессия повторяешь номер телефона. Смс получать повторно не нужно. Конечно у меня там можно перехватить сессию, но она в пределах роутера.
sirocco
Да, есть два места где именно так. Каждые сутки необходимо заново авторизоваться, и пароль действует неделю, после чего высылается новый при попытке залогиниться. Логин — номер телефона.
XanKraegor
А как насчет Let’s Encrypt с их автоматическим перевыпуском сертификатов (они еще и бесплатные :)?
Stanislavvv
Автоматический перевыпуск != автоматическая установка в какую-нибудь яву или вообще железку.
Вот для того, чтобы всё делалось автоматически, нужен нормальный админ, а не запускатель чужих скриптов.
easyman
Берешь, запускаешь какой-нибудь https://github.com/nyarla/h2o-proxy-letsencrypt и готово, не?
Stanislavvv
Запустите-ка его так, чтоб в каком-нибудь IIS обновил, а?
Ну или что у нас там на яве модного есть?
Или на циску, работающую фронтендом хз с какого года и которую ещё несколько лет трогать не будут?
Сей скрипт имеет ограниченное применение и потому требует допиливания при изменении условий задачи.
Допиливание — требует квалификации. Например, умения читать хотя бы комменты, а не предлагать сразу решение ограниченного применения.
xMushroom
Безотносительно к общему смыслу поста, хочу отметить, что с IIS пример неудачный: letsencrypt.org/docs/client-options/#windows-iis
Stanislavvv
О как… Ну ок, IIS вычёркиваем :-)
Но всё равно, требование админа, а не скриптодёргателя не отменяется ;-)
eri
Как-то стремно гонять сертификаты через чужой прокси… А основная проблема в том что домен нужен не только на сервер аутентификации, но и на сервер доступа.
Сервер аутентификации выдает клиенту логин и токен, далее клиентский яваскрипт передает логин-токен на сервер доступа для авторизации, сервер доступа чекает его по радиусу и стартует сессию.
Передать яваскриптом кроссайтовый запрост с хттпс страницы на хттп нельзя. Поэтому делается второй домен и устанавливается сертификат на сервер доступа…
Сертификат для сервера доступа может делать сервер аутентификации и передавать его по крону туда, но тут возникает проблема с кешем днс. Проверки летсэнкрипта нужна днс запись A/CNAME, которая может попасть в кеш клиента и получится такой момент что не получится получить правильный редиркект.
Чтоб сделать всё круто ещё месяц надо копаться в скриптах летсэнкрипта… В следующем проекте все будет обязательно ;)
eri
Автоматику сложно внедрить на микротик за натом. Домен то требуется подтверждать, а сам домен указывает на 192.168… Да и сам сервер в 70% случаев у меня за натом гдето. Лоу-кост сегмент)
Evengard
Можно через txt запись подтверждать. И дёргать для этого какой-нибудь api хостера домена.
eri
так днс хостингов разные апи… у некоторых клиентов «свой» ДНС-сервер — как его дергать не понятно. Вообщем делать надо — главное начать!
hokum13
Покупаете vps на арубе (не реклама) за 1 евро, привязываете домен к нему, получаете letsencrypt серт. Потом со стороны микротика скриптом через ссш по шедулу забираете сертификат с этого сервака и подпихиваете его микротиковскому хотспоту. Работы на пару минут, если масштабировать до десятков хотспотов или на пару дней, если делать единственный раз.
Могу сделать такое.
eri
кеш днс..) если клиент видел этот домен во внешке, то он может пытаться пойти на хостинг вместо сервера авторизации… микротик конечно перебивает это все, но не стабильно. вчера только «чинил» это жестким натом
Evengard
В качестве решения есть два варианта:
1. Сделать captive portal на адресе третьего уровня (да хотя бы www.example.com), а на VPS-ке получать wildcard сертификат (правда, опять таки, нужен будет доступ к txt, но это в принципе решаемо)
2. Просто перехватывать на уровне фаерволла роутера IPшник и насильно его направлять куда нужно. В iptables это делается легко, на микротиках — не знаю, не имел с ними дела, но тоже наверняка можно сделать.
hokum13
Только не www, а kafe1.example.com, kafe2.example.com… Ну чтобы не зависеть от адреса сети хотспота.
На микротиковском хотспоте это есть из коробки (собственно за счет этого он не пускает неавторизованных пользователей в сеть вообще).
habr.com/post/423931/#comment_19141035
kuraga333
А поясните, пожалуйста, — что именно имеется ввиду, и как это поможет?
XanKraegor
Ну Let’s Encrypt дает бесплатные сертификаты SSL. Если серьификат получается только на один домен, то его перевыпуск легко автоматизировать, достаточно настроить вебсервер (подроьное описание на сайте самого Let’s Encrypt). Если сертификат wildcard, то есть на домен и все поддомены, автоматизировать сложнее: аутентикация по TXT-записям в DNS, соответственно нужно иметь API или прямой доступ к DNS-хостингу.
Поможет это тем, что можно будет сделать https и при истечении сессии, допустим как в примере, переспрашивать номер телефона, на который осуществлялась регистрация через captive-портал, при этом ответ нельзя будет засниффить, то есть получить ранее введенный телефон.
Не спорю, это не замена авторизации через SMS.
Но тогда уж надо отметить что и авторизация через SMS — тоже далеко не гарантия безопасности…