Как сканировать беспроводные сети обычным Wi-Fi приёмником


Это ещё одна статья о том, что можно делать с помощью обычного Wi-Fi приёмника на Linux, другие статьи:

Как сканировать Wi-Fi обычной картой

Описанный в этой статье способ поможет вам собрать информацию о Wi-Fi сетях в округе с помощью любого Wi-Fi устройства.

Следующий скриншот это не airodump-ng — это результат работы крошечной программы на Linux:

Описанный способ не только является упрощённым вариантом сканирования (airodump-ng для бедных), но и даже имеет несколько преимуществ:

  • во время сканирования не нужно отключаться от Интернета — то есть можно одновременно пользоваться интернетом по Wi-Fi и сканировать беспроводные сети;
  • про второе преимущество я уже написал — подойдёт абсолютно любой Wi-Fi адаптер;
  • можно собрать больше информации о WPS, чем обычно показывают другие программы.

Недостатков тоже хватает — невозможно захватить Wi-Fi рукопожатие, а также получить информацию о количестве передаваемых точками доступа данных и количестве беспроводных клиентов.

Сбор информации о Точках доступа без режима монитора

Итак, в Linux узнаём имя беспроводного интерфейса:

iw dev

У меня это интерфейсов два, их имена wlo1 (встроенная беспроводная карта) и wlp0s20f0u2 (USB адаптер), в Kali Linux это будет, скорее всего, wlan0.

Если интерфейс в состоянии down (если он не используется другими программами, например, для подключения к Интернету), то активируем его командой вида:

sudo ip link set ИНТЕРФЕЙС up

Для меня это команда:

sudo ip link set wlp0s20f0u2 up

Теперь мы можем выполнить сканирование сетей:

sudo iw dev ИНТЕРФЕЙС scan

Для моего случая:

sudo iw dev wlp0s20f0u2 scan

Это пример информации об одной единственной беспроводной сети — примерно это же самое будет показано о всех сетях в пределах досягаемости:

А если указать опцию -u, то дополнительно будет выведена информация, которую не понимает даже сама система:

sudo iw dev wlp0s20f0u2 scan -u

Видно, что информации много — нужно просто её представить в удобном виде. Следующая команда сканирует и показывает таблицу с результатами. В этой команде замените wlp0s20f0u2 на имя вашего беспроводного интерфейса:


sudo iw dev wlp0s20f0u2 scan | awk 'BEGIN{print "\r\nMAC\t\t\tSignal\tESSID\t\t\t\tChannel\tWPS\t\tManufacturer\tModel\tModel Number\tDevice name"} /BSS [a-z0-9:]{10}/{print ""; printf substr($2,1,17)} /signal: /{printf "\t"$2"\t"} /SSID: /{system("echo \""$2"\"............................. | cut -c -25 | head -c -1")} /DS Parameter set/{printf"\t"$5} /Protected/{printf "\t"$6$7} /Manufacturer/{printf "\t"$3} /Model:/{printf "\t\t"$3} /Model Number:/{printf "\t"$4} /Device name:/{printf "\t\t"$4$5}'; echo

Связанная статья: Инструкция по использованию printf в Bash для форматирования и вывода данных

Как можно увидеть, я заострил внимание на WPS свойствах, но ничего не указал про WPA — по той причине, что практически для всех ТД информация о WPA очень схожая:


	WPA:	 * Version: 1
		 * Group cipher: TKIP
		 * Pairwise ciphers: TKIP
		 * Authentication suites: PSK

Иногда бывает так:

	WPA:	 * Version: 1
		 * Group cipher: CCMP
		 * Pairwise ciphers: CCMP
		 * Authentication suites: PSK

PSK — это pre-shared keys, то есть одинаковые ключи (пароли) на точке доступа и у каждого пользователя. Особой практической ценности в этой информации нет, но при желании вы можете сами отредактировать команду и добавить эти данные в таблицу.

Этот скрипт можно сохранить в файл:

gedit wifi-mon.sh

Скопируйте туда:

#!/bin/bash

IFACE=wlan0

sudo iw dev $IFACE scan | awk '
	BEGIN{print "\r\nMAC\t\t\tSignal\tESSID\t\t\t\tChannel\tWPS\t\tManufacturer\tModel\tModel Number\tDevice name"} 
	/BSS [a-z0-9:]{10}/{print ""; printf substr($2,1,17)} 
	/signal: /{printf "\t"$2"\t"} 
	/SSID: /{system("echo \""$2"\"............................. | cut -c -25 | head -c -1")} 
	/DS Parameter set/{printf"\t"$5} 
	/Protected/{printf "\t"$6$7} 
	/Manufacturer/{printf "\t"$3} 
	/Model:/{printf "\t\t"$3} 
	/Model Number:/{printf "\t"$4} 
	/Device name:/{printf "\t\t"$4$5}';
echo

В строке

IFACE=wlan0

замените wlan0 на имя вашего беспроводного интерфейса.

Запускать нужно так:

sudo bash wifi-mon.sh

Интересного эффекта можно достичь в паре с командой watch:

sudo watch -n 5 bash wifi-mon.sh

В результате информация будет постоянно обновляться, примерно как в Airodump-ng:

После каждого сканирования, если какой-либо точки доступа больше не видно, она будет пропадать из списка, а новые будут добавляться. Показанная команда совсем простая, при желании можно сделать некоторые улучшения: настроить сортировку (например, по уровню сигнала или по имени Wi-Fi сети), можно создать базу данных для записей и сохранять информацию туда и т.д.

Работа этого скрипта не препятствует Интернет-подключению на этой же самой карте к беспроводной Точке Доступа.

Также смотрите статью «Как обнаружить все Wi-Fi устройства в округе?».


Рекомендуется Вам:

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *