скрывать ssid что это
Hide SSID: как скрыть Wi-Fi и подключиться к скрытой сети?
Wi-Fi – самый распространенный на сегодня стандарт беспроводной связи. Но он достаточно уязвим ко многим вариантам атак – от DDoS до компрометации ключа или PIN-кода. А если крайне важно защитить созданную беспроводную сеть от взлома, то самый лучший вариант – это сделать её скрытой.
В списке беспроводных точек доступа она при этом не отображается, но вручную подключиться все же можно (потребуется ввести и логин, и пароль). А как же скрыть SSID и какие настройки для роутера необходимо задать в таком случае?
Общая информация
Обычная Wi-Fi точка доступа имеет 2 параметра: SSID и BSSID. Первое – это название сети, например, «роутер Андрея». Когда роутер включен, то SSID «вещается» в общий эфир.
BSSID – это технический адрес точки доступа. Ее данные в общий эфир не передаются, а подключиться можно только вручную, задав параметры подключения (название SSID, протокол шифрования, пароль).
Соответственно, когда роутер работает в стандартном режиме, то свой SSID «вещает» всем окружающим устройствам, его можно обнаружить. Но если в его настройках включить функцию «Hide SSID», то вещание имени прекращается, окружающим устройствам будет виден только BSSID.
Обнаружить такую точку доступа можно только при использовании специального ПО (и совместимого Wi-Fi-адаптера). Но «взломать» её очень сложно, так как скомпрометировать потребуется не только пароль, но и SSID. А это практически невозможно.
По этой причине и рекомендуется скрывать SSID – это самый надежный способ защиты Wi-Fi от взлома (и несанкционированного подключения).
Как скрыть SSID?
Практически все современные роутеры (работающие со стандартом 802.11b и более современными) поддерживают создание скрытой беспроводной сети. Включается данная настройка через веб-интерфейс.
Инструкции для роутеров TP-Link доступны тут:
Примерный алгоритм настройки будет следующим:
Точный алгоритм в некоторых моделях роутеров и модемов может незначительно отличаться. Указанный вариант актуален для устройств Asus, TP-Link, Netis. Перед тем, как делать Wi-Fi точку скрытой, следует запомнить текущие настройки работы беспроводного адаптера, а именно:
Если этих данных не знать, то подключиться к сети со скрытым SSID не получится (даже для настройки роутера).
У нас есть отличная статья, где описано, как скрыть Wi-Fi на разных моделях роутеров. Посмотреть можно здесь.
Как подключиться к скрытой сети?
Как подключиться к скрытому Вай-Фай? В Windows (версий 7 – 10) это выполняется следующим образом:
Подключение доступно и со смартфона. К примеру, в Android это делается следующим образом:
Вещание BSSID работает всегда, поэтому если устройство было подключено к скрытому Wi-Fi, то повторять процедуру подключения не потребуется. То есть и ПК, и ноутбук, и телефон будут автоматически подключаться к точке доступа, которая не обнаруживается другими устройствами.
Что делать, если не удается подключиться?
Если пользователь забыл название или другие данные скрытой сети, а подключить роутер кабелем нет возможности, то единственный выход – это сброс настроек до заводских и принудительное включение трансляции (вещания) имени SSID.
В большинстве моделей роутеров это делается путем зажатия кнопки Reset на 5 – 10 секунд (в некоторых необходимо использовать кнопку WPS).
После этого устройство можно настроить как новое, а по умолчанию беспроводная связь не будет скрытой.
Что же такое режим «Hide SSID» или скрытая Wi-Fi сеть? Это режим работы точки доступа, при котором ее обнаружить нельзя. Но подключиться можно, зная три ключевых параметра: наименование сети, тип шифрования, а также ключ доступа к ней. Просто все эти настройки нужно будет ввести вручную, а не выбирать из списка доступную Wi-Fi-сеть.
Wi-Fi сети: проникновение и защита. 2) Kali. Скрытие SSID. MAC-фильтрация. WPS
Первая часть цикла была очень живо встречена хабрасообществом, что вдохновило меня на ускоренное написание следующей части. К предыдущей статье было оставлено много дельных комментариев, за что я искренне благодарен. Как говорится, хочешь найти огрехи в своих знаниях — напиши статью на Хабр.
В этой статье мы поговорим о том, как можно обнаружить «скрытые» сети, обойти MAC-фильтрацию на точке доступа и почему же WPS (QSS в терминологии TP-LINK) — это «бэкдор в каждом доме». А перед этим разберёмся, как работает беспроводной адаптер и антенна и как Kali Linux (ex. Backtrack) поможет нам в тестах на проникновение в беспроводные сети.
Всё это так или иначе уже описывалось ранее, как здесь, так и на других ресурсах, но данный цикл предназначен для сбора разрозненной теории и практики воедино, простым языком, с понятными каждому выводами.
Перед прочтением настоятельно советую ознакомиться с матчастью — она короткая, но на её основе базируются все наши дальнейшие действия и выводы.
Kali… Kali Linux
Узнав о существующих на сегодня механизмах защиты беспроводных сетей в первой части самое время использовать эти знания на практике и попытаться что-нибудь взломать (естественно, принадлежащее нам самим). Если получится — наша защита никуда не годится.
Все манипуляции будем проводить с использованием Kali Linux — kali.org. Это сборка на основе Debian, которая до этого была известна под именем Backtrack. Если вы впервые знакомитесь с этой системой, то советую начать сразу с Kali, так как там есть всё то, что было в Backtrack, но в более свежем виде.
(Читатели подсказывают, что есть и другие подобные сборки — например, wifiway.org. Однако я с ними не работал.)
Под Windows тоже можно делать многое из описанного, но основная проблема в отсутствии/плохой поддержке режима монитора беспроводных адаптеров, из-за чего ловить пакеты проблематично. Кому интересно — обратите внимание на CommView и утилиты Elcomsoft. Все они требуют специальных драйверов.
Kali очень удобно использовать с флешки — у неё по наследству от Debian Wheezy (у меня одного закладывает нос от такого названия?) есть persistence mode, который позволяет загружаться в трёх режимах: работы без сохранения данных (read only), работы с их сохранением на отдельный раздел на флешке, так называемом persistence, или работы без сохранения в live/vanilla mode (то есть read only и без использования данных в persistence — изначальная чистая версия дистрибутива).
Но, естественно, кто хочет установить её на жёсткий диск может легко сделать это и из загрузчика, и из уже запущенной оболочки. ОС (LVM) поддерживает шифрованные разделы. Кроме этого, можно сделать собственную сборку Kali — добавить пакеты, настроить загрузчик и прочее. Всё это подробно описано в документации и проблем не вызывает, хотя сборка требует пары часов времени.
Режим persistence
Эта статья — не руководство по Linux, однако у меня самого были проблемы с запуском этого режима, поэтому решил специально описать его работу.
Пользоваться Kali вполне можно и в режиме Live CD, но если вы хотите иметь возможность сохранять состояние системы между перезагрузками (данные и настройки) — нужно создать отдельный ext2-раздел на флешке с именем persistence, для чего можно использовать GParted в составе самой Kali и разбить флешку прямо во время работы с неё. Когда раздел создан — смонтируйте его и запишите туда единственный файл с именем persistence.conf и таким содержимым:
Далее при каждой загрузке Kali нужно указать, в каком режиме запускать систему. Для этого в загрузчике при выделенном первом пункте Live (i686-pae) (аналогично с x64) нажимаем Tab — появляется строка загрузки ядра. Туда в конец добавляем пробел и тип загрузки:
Чтобы не вбивать эти режимы при каждой загрузке можно создать свою сборку Kali (см. инструкции на сайте) — там есть настройка загрузчика, куда можно вписать нужные режимы так, чтобы изначально загружаться в persistence persistence-read-only — на мой взгляд, это самое удобное, так как изначально настроил всё, что нужно, а затем каждая сессия начинается с чистого листа.
Use the tools, Luke
Собрание окончено, расходимся, расходимся.
Ну, вот и добрались до терминала. Посмотрим, кто вокруг нас светит ультраволнами.
Режимы работы Wi-Fi адаптера
Но для начала нужно перевести наш беспроводной адаптер (сетевую карту) в «хакерский режим» — monitor mode.
Дело в том, что каждый Wi-Fi адаптер, а точнее, антенна, на физическом уровне улавливает любые сигналы, пересылаемые устройствами в радиусе действия. Антенна не может «не принимать» посторонние пакеты. А вот драйвер может работать в трёх режимах (на самом деле 6, но это за рамками данной статьи):
На картинке выше жирные линии показывают пакеты, которые мы перехватываем в разных режимах, а прерывистые линии — это пакеты, улавливаемые нашей антенной, но отбрасываемые драйвером из-за выбранного режима.
Открываем терминал и выполняем:
wlan0 — идентификатор устройства-адаптера. В *nix это wlan + порядковый номер (wlan0, wlan1, wlan2 и т.д.). Номер адаптера можно узнать, выполнив ifconfig или iwconfig (эта выведет только устройства беспроводных адаптеров и специфичную для них информацию).
Если airmon-ng выведет сообщение (monitor mode enabled on mon0) — значит, адаптер успешно переведён в режим наблюдения.
Беспроводные каналы
Wi-Fi — технология передачи данных по радиоканалу, то есть даром с использованием того же механизма, что и в радиостанциях. И точно так же, как в радиостанциях, если передавать слишком много данных на одной частоте (обычно 2.4 ГГц), то нельзя будет разобрать, что к чему относится. Для этого существует разделение на каналы.
Всего каналов 13, хотя последний канал — тринадцатый — несчастливый и в некоторых странах запрещён, поэтому чаще всего используются 1-12. Однако 13-й можно включить, выбрав для беспроводного адаптера такую страну, как Боливия (BO) — или любую другую, где данная частота разрешена. Да, техническая возможность, как это часто бывает, есть в любом адаптере, но заблокирована по этическим предпочтениям.
Кроме этого есть и 14-й канал (японцы, как всегда, отличились) и частота 5 ГГц с ещё 23 каналами. Вообще, каналы 2.4 ГГц частично пересекаются, плюс их ширина может быть 20 и 40 МГц. Эта тема запутанная из-за наличия разных версий стандарта — кому интересно могут почитать в Википедии. Нам хватит и того, что уже сказано. Пока ещё 5 ГГц применяются реже, но описанные далее приёмы применимы и к этой частоте.
Некоторые используют 13-й канал для скрытия своих сетей, но этот способ здесь даже не рассматривается, так как достаточно перевести адаптер в нужный регион, как он сам их увидит. Например:
Любой беспроводной адаптер может принимать и передавать данные только на одном канале за раз. Однако текущий канал можно менять сколь угодно часто — для получения полной информации о беспроводных передачах вокруг airodump-ng (после рекламы ниже) переключает канал несколько раз в секунду и ловят всё, что попадается. Это называется channel hopping («прыжки по каналам»). Это делают и системные программы — например, NetworkManager для GNOME, который показывает список беспроводных сетей в правом верхнем углу.
Если канал не зафиксирован, то некоторые пакеты могут быть потеряны — адаптер переключился на соседний канал, а в это время по предыдущему каналу прошёл новый пакет, но его антенна уже не уловила. Это критично, когда вы пытаетесь перехватить handshake, поэтому для отключения всех программ, которые используют беспроводной адаптер и не дают зафиксировать канал, используется эта команда:
Без kill будет выведен список всех подозрительных процессов, а с kill они будут завершены. После этого адаптер останется целиком в вашем распоряжении. Команду выше рекомендуется выполнять перед любыми действиями, кроме простого обзора сети, так как беспроводной адаптер — общий ресурс; несколько программ могут использовать его одновременно (например, можно ловить список сетей в airodump-ng и одновременно подбирать WPS в reaver), но любая из них может переключить канал, поэтому важно зафиксировать его и при её запуске (обычно параметр называется -c или —channel).
Antenna overclock
Они среди нас
airodump-ng — команда для сбора пакетов в радиоэфире. Она выводит в консоль две таблицы. В верхней выводятся найденные беспроводные сети, в нижней — клиенты, подключенные к ним, или не подключенные, но с активным беспроводным адаптером, транслирующем какие-то пакеты (например, о поиске сети с определённым именем).
Последнее, кстати, особенно интересно, так как мы можем любезно предоставить им искомую сеть и посмотреть, что нынче модно в «Одноклассниках»? На эту тему на днях комрадом KarasikovSergey была опубликована статья с использованием Karma — но так как это уже на гране вредительского проникновения в этом цикле мы эту тему затрагивать не будем. Но это действительно проблема и стоит позаботиться о том, чтобы ваше устройство не цеплялось за все сети без вашего разрешения, в том числе за известные — аутентичность точек доступа не проверяется и вы вполне можете оказаться в сети злоумышленника. Во всех смыслах.
Однако вернёмся к нашим волнам. Ниже пример вывода airodump-ng:
Столбцы первой таблицы с доступными беспроводными сетями:
Столбцы второй таблицы с беспроводными клиентами:
Скрытые сети… такие скрытые
Часто в быту можно услышать, что скрытые сети очень сложно обнаружить/подключиться/взломать/унести (нужное подчеркнуть). Однако как уже было показано, «скрытая» сеть — не что иное, как сеть, не передающая маячки о своём существовании 10 раз в секунду, либо передающие их, но с пустым ESSID и другими полями. На этом разница заканчивается.
Как только к такой сети подключается клиент, он передаёт её ESSID и пароль, и если такая сеть существует в радиусе действия — точка доступа отвечает на запрос и проводит все обычные процедуры по авторизации и передаче данных. А если клиент уже был подключен ранее — его можно увидеть в списке активных адаптеров… и отключить.
Каждый подключенный клиент общается с базовой станцией по её BSSID — и это именно то, что мы видим в обеих таблицах airodump-ng. Мы можем «отключить» клиента от сети, после чего он должен будет подключиться вновь — и в этот момент airodump-ng перехватит рукопожатие со всеми идентификаторами и ключами. Либо мы можем просто оставить ноутбук включенным на пару часов с airodump-ng на нужном канале и подождать. Кстати, при успешном «вскрытии» в правом верхнем углу появится сообщение вида [ Decloak: 00:00:11:11:22:22 ] с BSSID точки доступа, конспирацию которой мы раскрыли.
Отключение клиентов предусмотрено во всех беспроводных стандартах и делается с помощью aireplay-ng (все три уже знакомые нам утилиты — часть проекта Aircrack-ng, который содержит в своём наборе всевозможные инструменты для работы с тонкими материями):
Внимание: эта команда — исключение и принимает идентификатор реального беспроводного адаптера, а не mon0, созданного с помощью airmon-ng.
Команда выше имитирует ситуацию, когда точка доступа сообщает клиенту, что старый ключ недействительный (и что его следует обновить, повторив handshake, то есть передав пароль и имя сети заново). На адрес клиента отправляются сообщения якобы от точки доступа о том, что следует отключиться от сети и обновить данные сессии. Так как этот тип пакетов не защищён шифрованием (то есть команда может быть выполнена ещё до аутентификации), то противодействовать ему невозможно по той простой причине, что невозможно установить «личность» того, кто это рассылает — MAC-адреса в пакетах поддельные и установлены в те значения, которые мы передали после -a и -c. Можно только отслеживать слишком частые отключения и принимать какие-то меры.
Итак, допустим во второй таблице airodump-ng мы видим следующую строчку:
Первый столбец — значение для -a (MAC базовой станции), второй — для -c (MAC клиента). Перезапустим airodump-ng и зафиксируем его на канале 5 (это канал нашей атакуемой станции), после чего выполним отключение клиента в соседнем окне терминала:
Как видим, данный трюк со скрытием маячков можно использовать для домашних сетей, к которой кто-то подключается пару раз в день, да и то не всегда — но для корпоративных сетей он точно не подходит, так как раскрывается буквально одной командой и защиты от неё нет. На мой взгляд даже для частных сетей это скорее неудобство, чем польза — вводить-то имя надо вручную, да и не понятно, активна ли вообще базовая станция или нет.
Также, -c (клиентский MAC) можно не указывать — тогда от имени точки доступа будут разосланы широковещательные (broadcast) пакеты об отключении всех клиентов. Однако сегодня это редко работает — драйвера игнорируют такие пакеты, так как правомерно считают, что дело нечисто — точка доступа всегда знает, кто к ней подключен, и рассылает направленные пакеты для конкретного клиента.
Фильтрация по MAC — ведь это так просто
Очень часто я слышу рекомендации, что первым делом после создания сети нужно ограничить список её клиентов определённым набором MAC-адресов, и тогда-де пароль вообще ни к чему. Однако это ограничение обходится так же легко, как и обнаруживаются скрытые сети.
В самом деле, каждый клиент — подключенный к сети или нет — раскрывает свой MAC-адрес при передаче любого пакета. В таблице airodump-ng эти адреса видны в столбце STATION. Соответственно, как только мы увидели сеть, куда нам почему-то не попасть (Linux обычно рапортует об Unspecified failure на этапе подключения, а Windows долго думает, после чего сообщает о неизвестной ошибке), и тут же в списке видим связанного с этой сетью клиента — мы можем взять его MAC-адрес и поменять свой на него. Последствия могут быть разными и может даже стукнуть. Если сделаем это при активном клиенте — в сети появится клон и клиента может «заглючить», так как он будет получать ответы на пакеты, которые он не отправлял. В итоге может отключиться, а может продолжать работать, предупредив о проблеме пользователя — или нет. Но вариант лучше — записать его MAC и подключится, когда он уйдёт.
В Linux изменить MAC своего адаптера можно следующим образом (работает как для проводных сетей, так и для беспроводных):
Предварительно нужно отключить любые mon-интерфейсы. Проверить, заработала ли подмена, можно вызвав ifconfig wlan0 — в строке Hwaddr должен быть указанный выше MAC.
Кроме того, в *nix есть macchanger — с его помощью можно выставить себе случайный MAC. Если поставить его в init.d, то неприятель будет совершенно сбит с толку, так как при каждой загрузке наш MAC будет другим (работает для любых проводных и беспроводных адаптеров, как и ifconfig).
В Windows нужно провести кое-какие манипуляции с реестром, но по этой теме лучше проконсультироваться с Google. (Читатели в лице alexeywolf подсказывают инструмент TMAC, который делает это в автоматическом режиме.)
WhooPS
Диаграмма выше описывает процесс подключения клиента к точке доступа с помощью PIN-кода. PIN — 8 цифр, которые обычно наклеены на самом роутере. Клиенты, поддерживающие WPS, могут подключиться к сети либо по обычному паролю WEP/WPA, либо с помощью PIN, причём введя последний клиент получает пароль сети в чистом виде.
По стандарту, последняя цифра в PIN — это контрольная сумма, то есть её можно вычислить исходя из остальных цифр. Таким образом, если бы мы хотели перебрать все возможные комбинации, то это потребовало бы 10 7 попыток (в основании — число возможных символов (0-9 — десять), в степени — длина строки) — 10 миллионов, что есть около 116 дней, если мы пробуем один код в секунду. Обычно скорость в несколько раз ниже, поэтому на подбор бы ушло больше года.
Однако в стандарте допущена ошибка. Процесс авторизации проходит в несколько этапов. Если переданный нами PIN — верный, то точка доступа сообщает об успехе. Если первые четыре цифры PIN — верные, а цифры 4-7 — нет, то точка доступа сообщит об этом после передачи нами пакета M6. В случае же ошибки в первых четырёх цифрах мы узнаем об этом раньше — после пакета M4. Эта проблема была найдена в конце 2011 и описана здесь. По горячим следам авторами исследования был создан reaver-wps, опубликованный затем на Google Code. Там же можно найти документ оригинального описания уязвимости.
Итак, допустим наш PIN — 99741624. Мы пытаемся подключиться, используя PIN 99740000 — получаем отказ в авторизации после передачи пакета M6 (так как первая половина кода верна). Если же мы подключимся с 00001624 — отказ будет после M4.
Как видим, основная проблема в том, что мы можем узнать о правильности одной части кода даже при том, что во второй содержится ошибка. Что это даёт? Теперь вместо 10 миллионов комбинаций нам нужно попробовать всего лишь 10 4 + 10 3 = 11 000. Это более чем реально сделать не то что за неделю — за 15 часов, а обычно быстрее.
Обратите внимание: цифр для подбора именно 7, а не 8, так как последняя — контрольная сумма и мы её рассчитываем сами, поэтому её подбирать не нужно. В примерах ниже это #.
Посмотрим ещё раз. Мы начинаем перебор с 0000000#. Отказ после M4 (ошибка в первых 4 цифрах). Меняем на 0001000#. Отказ после M4. 0002000#. M4. Доходим до 9974000#. О! Отказ после М6. Первые 4 цифры угаданы.
Дальше — точно так же. Имея половину кода постепенно увеличиваем вторую. 9974001#. Отказ. 9974002#. Отказ. 99741624. Принято.
Вот в этом и суть Wi-Fi Unprotected Setup «Защищённой настройки Wi-Fi».
Reaver
А вот теперь мы проверим, насколько добросовестно ваша точка доступа выполняет свои обязанности. Если у вас нет роутера с WPS — всегда можно протестировать соседский вам эта атака не грозит.
Для эксплуатации уязвимости в WPS у Kali есть несколько утилит, но на мой взгляд самая наглядная и гибкая — тот самый reaver. Синтаксис вызова:
Кроме этого мы можем указать:
Прервать reaver можно с помощью Ctrl+C, при этом он сохранит текущий прогресс для этой сети и при повторном запуске начнёт с прерванного PIN. Если вы работаете в live-режиме (read only), то данные сессии можно переписать с /etc/reaver/ на постоянный носитель и при следующей загрузке записать их обратно. В этой папке хранятся текстовые файлы с именами вида AP_MAC.wpc и списком всех номеров для перебора внутри (первая строка — номер строки с PIN, с которого начать перебор при повторном запуске).
Про WPS ещё два года назад писали на Хабре и не только, так что легко можно найти больше информации.
(mailbrush посоветовал также обратить внимание на bully, который тоже есть в Kali и выполняет аналогичную задачу.)
Что делать?
На сегодняшний день единственный вариант — отключить WPS. Если у вас или ваших знакомых сложности с «настройкой» сети (во что с трудом верится) — включайте WPS только в момент подключения нового устройства. Правда, не все роутеры/прошивки вообще дают эту возможность, но будь у меня такой не глядя пошёл бы менять на другой.
Однако же не всё так плохо. Более новые прошивки ограничивают возможность подбора с помощью rate limiting — после нескольких неудачных попыток авторизации WPS автоматически отключается. Некоторые модели увеличивают время отключения ещё больше, если за короткий интервал были сделаны ещё неудачные попытки войти. Тем не менее, полагаться на это можно только после тщательной проверки в вашем конкретном случае — может получиться, что время отключения короткое или оно увеличивается недостаточно — помните, что 11 000 комбинаций это очень мало и даже делая по одной попытке в минуту на весь диапазон уйдёт максимум 8 дней. И при этом PIN меняется отдельно от пароля сети, поэтому последний вы можете обновлять сколь угодно часто, никак не усложняя перебор PIN.
Кстати, в Сети можно найти эксперименты по обходу блокировки во времени с помощью эксплоитов, заставляющих роутер перезагружаться — при этом, естественно, таймаут WPS сбрасывается и можно вновь продолжать подбор. Так что рассчитывать на «защиту от WPS» не стоит.
Перечисление сетей
Напоследок несколько слов о вечном об альтернативах reaver.
reaver будет пытаться атаковать любую сеть, которую вы ему передадите в виде параметра BSSID, но она может не поддерживать WPS — в этом случае программа зависнет над Waiting for beacon. и через полминуты сообщит о том, что сеть не обнаружена.
Проверить, какие сети в округе поддерживают WPS, можно несколькими способами.
На этом с «читерскими» методами проникновения всё. В третьей части — о перехвате рукопожатий клиентов при подключении к сети и подборе паролей к WPA(2) с помощью CPU и GPU.
Отдельное спасибо товарищу chem_ua за полезные замечания при вычитке статьи.
Диаграммы были нарисованы на gliffy.com.
Как обычно, комментарии по делу — приветствуются.