Как узнать точную модель чужого роутера (беспроводной точки доступа)

По MAC-адресу можно узнать производителя роутера или точки доступа. Но узнать точную модель нельзя. Даже на англоязычных ресурсах среди тех, кто интересуется разными аспектами беспроводных сетей Wi-Fi, на вопрос как узнать модель удалённого роутера обычно отвечают:

  • взломать и посмотреть админку
  • разработать собственную систему по снятию отпечатков и соответствующую базу данных

Тем не менее, программа WifiInfoView способна почти для половины точек доступа в радиусе доступности показать информацию о Модели роутера и Имени роутера (фактически, информация также относится к модели, может её уточнять):

На скриншоте выше видно, что данная информация доступна только для точек доступа с WPS. Хорошая новость в том, что WPS может быть в любом состоянии: заблокирован, настроен, не настроен – информация о модели Точки Доступа утекает всё равно!

WifiInfoView – это программа под Windows. Как я не искал, все программы под Linux способны показывать только информацию о производителях на основе MAC-адреса. Но если это может WifiInfoView, которая не требует ни специальных драйверов, ни режима монитора беспроводной карты, значит информация о модели роутера распространяется в беспроводных сетях без шифрования. И, следовательно, её можно обнаружить такими программами как Wireshark.

Гугление и исследование инструментов не дало никакой информации, поэтому пришлось самому провести небольшое исследование.

Раскрытие модели роутера из Vendor Specific: Microsof: WPS

Я несколько минут захватывал фреймы Wi-Fi, а затем стал искать по фильтрам, начал с фильтра frame contains "". Для ТД D-Link Systems DIR-615 раскрывалась модель роутера, поэтому я присмотрелся к фреймам, содержащим этот текст:

frame contains "D-Link Systems DIR-615"

Как можно увидеть, в тэге Tag: Vendor Specific: Microsof: WPS в полях Model Name, Model Number, Device Name раскрывается точная информация о модели роутера:

  • Model Name: D-Link Router
  • Model Number: DIR-615
  • Device Name: D-Link Systems DIR-615

Дальнейшее изучение фреймов, содержащих информацию о модели роутера показало, что полезная информация также может находиться в полях:

  • Manufacturer
  • Serial Number

С помощью фильтров

wps.device_name != ""

или

wps.model_name != ""

можно вывести все фреймы, в которых поля «Имя устройство» или «Имя модели» являются не пустыми.

Следующий фильтр покажет фреймы, в которых поле ИЛИ «Имя устройства», ИЛИ «Имя модели», ИЛИ «Номер модели» являются не пустыми:

wps.device_name != "" || wps.model_name != "" || wps.model_number != ""

Следует помнить о фильтрах wps.serial_number и wps.manufacturer – из них также можно извлечь информацию.

Для моих данных фильтр wps.new_device_name не показывал никакой информации – у меня в радиусе доступности отсутствуют ТД с фреймами с какой-либо информацией в этом поле.

Если мы хотим посмотреть фреймы с информацией о версии для конкретной точки доступа, то можно использовать фильтр wlan.ssid:

(wps.device_name != "" || wps.model_name != "" || wps.model_number != "") && wlan.ssid == "ESSID"

Вместо ESSID вставьте имя интересующей сети, например, я хочу посмотреть для сети Ivan S., тогда:

(wps.device_name != "" || wps.model_name != "" || wps.model_number != "") && wlan.ssid == "Ivan S."

Запись Device Name: RT-N10P говорит о том, что модель роутера RT-N10P.

Вместо имени сети можно использовать BSSID (MAC-адрес), для этого имеются фильтры wlan.addr и wlan host, например:

wlan.addr==08.00.08.15.ca.fe
wlan host 08:00:08:15:ca:fe

Ниасилил

В принципе, всё понятно, каким именно образом утекают данные о точной модели из роутера. Причём, в отличие от MAC-адреса, который в некоторых моделях можно подменить, настройки для изменения данных для Vendor Specific: Microsof: WPS мне ни разу не попадались. Т.е. здесь можно получить более достоверную информацию о производителе роутера и его модели, чем из MAC-адреса.

Логичным завершением исследования должна стать утилита для автоматического извлечения этих данных для всех подверженных точек доступа в радиусе доступности. Вполне возможно, что с этим справится Bash скрипт с tshark и tcpdump.

Нужные фреймы из файла захвата можно извлекать примерно так:

tshark -r wpstest.pcapng -R 'wps.device_name != "" || wps.model_name != ""' -2

Пока нет готового решения, можно смотреть информацию о модели из Windows с помощью WifiInfoView, либо вручную в Wireshark, как это показано выше.

Кстати. Возможно знатоки tshark и tcpdump или чего-то подобного подскажут элегантный способ извлечения строк с «Именем устройства», «Именем модели» и т.д.

Информация о точной версии роутера теперь показывается в Wash с использованием опции -j

UPD: Теперь есть готовое решение и под Linux, подробности в «Новое в Wash и Reaver».

Полезные ссылки:

Рекомендуемые статьи:

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

Ваш e-mail не будет опубликован.