Коллеги, буду рад если тут найдутся матерые эксперты по wifi.

Меня интересует способ выявления всех находящихся поблизости устройств с включенным wifi, включая тех, которые еще не ассоциированы ни с какой сетью.

Сценарий — люди проходят сквозь некое помещение, нужно получать mac-адреса всех wifi адаптеров, которые либо уже установили связь с любой точкой доступа, либо просто находятся в поиске.

Я точно знаю, что эта задача решается, у Cisco есть продукт Cisco MSE, который именно это и делает — можно видеть, что в зону действия твоей сети попадают чужие устройства, при этом твоя сеть может быть закрыта WPA или вообще скрыта.

Небольшое расследование показало, что теоретически это возможно сделать следующими способами:

1. Для ассоциированных с сетью устройств все просто — слушаем канал нужной точки доступа, в момент обмена с сетью мы увидим это устройство.

2. Для чужих устройств вроде бы есть выход — мне удалось обнаружить, что клиенты периодически отправляют в эфир Probe Request, мол это как-то помогает им выявлять точки доступа и другие параметры.

Пруфлинк.

Но я не понимаю, зачем моему айфону общаться с чужой сетью, пароль к которой он даже не знает и просто лежит у меня в кармане.

Проясните, для чего нужны Probe Requestы и как часто устройства обязаны их отправлять?

Возможно ли отправляя в эфир некие кадры заставить все устройства откликнуться, как при поиске bluetooth?

Tagged with →  

35 Responses to способ выявления устройств с wifi

  1. Gibno:

    ключевая фраза — «разделяемая среда».

  2. Nivef:

    в смысле?

  3. Nivef:

    т.е. это намек на то, что этот канал делится между пользователями и нужен некий арбитр?

  4. NibTunes:

    1. Снифер CommView for WiFi умеет видеть все адаптеры, ведущие передачу, но не покажет где они территориально.
    2. Probe Request это злейший баг. Почерпнул отсюда.

  5. Nivef:

    я вот только что установил CommView for WiFi и с удивлением обнаружил, что оно таки работает! Я вижу все девайсы, плюс обнаружил странный глюк — у него на вкладке «узлы» появляется в несколько раз меньше устройств, чем в разделе «вид-статистика». Обнуляю ее и буквально через несколько секунд в окне появляется полторы страницы устройств, а в «узлах» — всего несколько.

    Все устройства из раздела «статистика» можно найти в разделе «пакеты», они действительно отправляю probe requestы всем подряд и получают ответы.

    Провел эксперименты с айфоном — заставляю его забыть сеть, начинаю захват, перевожу в авиарежим и обратно — в логах видны probe request, ему отвечает и моя точка доступа и соседские.

    Пока не понял, что заставляет айфон слать эти запросы — они иногда видны и каждые 10-20 секунд, а иногда — раз в пару минут.

    Вероятно, он постоянно перебирает wifi сети и как только список меняется — отправляет probe request.

    Если поднести ноутбук к окну — девайсов становится еще больше.

    Занятно…

  6. Nivef:

    но я так и не понял, зачем они отправляют эти запросы? ведь устройство знает, что тут нет открытых или знакомых ему сетей, зачем загружать эфир ненужными запросами?

  7. KcaNix:

    Надеется.

  8. NibTunes:

    мне думается, насрать эплу на твой эфир. Откуда ж мне знать, что там в головах разработчиков?

  9. Gibno:

    нет. Это намек на то, что без Probe Request’ов никак не обойтись в разделяемой среде.

  10. NibTunes:

    благодаря probe request’ам как раз и узнаёт, что нет тут знакомых сетей.

  11. NuSGSM:

    в общем случае невозможно. при поиске да, отправляют.
    но если смартфон в спящем режиме — он ничего не отправляет.
    если он в режиме экономии — он ничего не отправляет
    и т.д.

    т.е. человеку нужно идти с включенным телефоном, чтобы ты его мог засечь 100%.

  12. Lezen:

    airodump-ng тебе в помощь.

  13. Nivef:

    непонятно.

    вот, например, сотовый телефон при поиске сетей никуда ничего не передает. общение с сетью начинается только при нахождении знакомой сети или ручной регистрации.

  14. Nivef:

    зачем они нужны, если устройство не собирается в них регистрироваться?

    я могу понять какой-то обмен с сетью если устройство увидело уже известную сеть, в которой оно когда-то было зарегистрировано, но зачем просто общаться со всеми сетями подряд?

  15. NibTunes:

    Не правильно. Сотовый пытается цепануться к любой вышке, и цепляется. И уже какая-то хрень на стороне опсоса говорит, что симка чужая, хрен тебе, а не связь. 112 ты даже без симки набрать можешь просто так, посылая три тональных сигнала?) Нет. Сначала твой мобильник будет зарегистрирован на ближайших БС любого оператора. Разумеется, при совпадении рабочих частот.

  16. NibTunes:

    видимо, точка доступа выдаёт свои данные только тем кто спросит. Типа «Ты Вася? — Нет, не Вася. — А может, ты Петя? — Нет, и не Петя.» и т.д.
    Для того, чтобы точка постоянно орала в эфир «Я СЕМЁН!!!», она должна это делать на отдельной частоте, чтобы не мешать уже подключенным клиентам.
    А так — имеем запрос (probe request), отвечаем, отвергаем или подключаем.

  17. Nivef:

    Нет.

    Так она это и делает, что самое интересно! Точка доступа каждые 100 миллисекунд (можно поменять в настройках) передает Beacon Frames на своем канале, которые содержат SSID, макадрес и еще тучу всякой хрени:

    http://en.wikipedia.org/wiki/Beacon_fram

    Именно слушая эти кадры, устройство показывает нам список доступных в этом месте сетей.

  18. Nivef:

    Вот именно, если телефону что-то нужно от сети — он в ней регистрируется. Но он не общается с сетью без дела, просто так.

  19. NibTunes:

    Блин, точно. Ну тогда фиг знает.

  20. NibTunes:

    скажем по-другому: владелец телефона обычно не в курсе, что и когда надо телефону.

  21. NuSGSM:

    запрос просто чтоб не ждать. теоретически бекон может быть 10 секунд… и ты точку не увидишь. а на запрос все точки отвечают. профит.

  22. NibTunes:

    спасибо за разъяснения.

  23. Nivef:

    тогда такой вопрос — ведь probe request будет отправлен на каком-то одном канале, точки на других каналах его не услышат.

    или устройство отправляет реквест на всех каналах по очереди?

  24. Ag3Milk:

    стойте. мой уютный мир безопасности wifi сетей начинает рушиться.
    т.е. можно просто тупо просканить мак адреса клиентских устройств? а нафига тогда пункт фильтрации по мак адресам на точках доступа?

  25. Gibno:

    не просканить, а проснифать.
    А пункт фильтрации для малообразованных параноиков.

  26. NuSGSM:

    а когда ты ждешь беконы от точек, думаешь не надо каналы переключать и «слушать»?

  27. RARLinux:

    когда это «неустойчиво к некоторым несложным атакам» стало означать полную бесполезность?

  28. Gibno:

    а когда это я написал про полную бесполезность?
    малообразованный параноик детектед

  29. RARLinux:

    «это только для малообразованных параноиков» я понимаю как «это только для виду»

  30. MonZZ:

    а нафига вообще фильтрация по мак адресам? )

  31. OxLinux:

    Можно написать софт который бы мониторил, например на базе airodump, но зачем?

  32. Gibno:

    а с каких пор «только для виду» стало равнозначно полной бесполезности? Да у нас «для виду» полстраны живет.

  33. RARLinux:

    всё-таки мы о разном

  34. RARLinux:

    когда это «неустойчиво к некоторым несложным атакам» стало означать «только для виду»?

  35. Gibno:

    дык это ты и придумал.

Добавить комментарий