Сканирование wifi сетей linux python

Обновлено: 01.07.2024

Как вы может быть знаете, LinSSID - это простая графическая программа, которая может использоваться для поиска доступных беспроводных сетей. Она полностью свободная, с открытым исходным кодом, и написана на C++ с использованием утилит Linux для работы с беспроводными сетями, Qt5 и Qwt 6.1. LinSSID похожа на Inssider (MS Windows) в плане внешнего вида и функциональности.

Вы можете установить ее из исходного кода или из PPA, если вы пользуетесь системой на базе Debian.

Вы можете установить LinSSID из исходного кода, скачав его отсюда.

Установка в Ubuntu 14.04 LTS из PPA осуществляется с помощью следующих команд:

После установки запустите программу. Вас попросят ввести пароль администратора.

Теперь выберите свой беспроводный сетевой интерфейс, в моем случае это wlan0. Кликните кнопку "Play" для поиска все доступных беспроводных сетей.

Через несколько секунд LinSSID покажет вам все доступные сети.

Как вы можете видеть на скриншоте, LinSSID выводит детальную информацию о каждой найденной сети, причем вы можете также вывести дополнительную информацию, выбрав нужные опции в меню "View". Также программа отображает уровни сигнала сетей в графическом виде. Она работает в диапазонах 2,4 и 5 ГГц.

Комментариев нет:

Подпишитесь на RSS

Перевод. Оригинал здесь. Если вы новичек в Linux и ранее использовали iTunes для управления своим iPod/iPhone/iPad, то скорее всего буд.

uTorrent - это легкий и эффективный торрент-клиент для Linux, Windows OS и Mac OS. Установка uTorrent в Linux отличается тем, что здесь uT.

Вы можете запускать скрипты на python в Linux непосредственно из терминала. Знать, как это делается, полезно как программистам, так и пол.

Как вы наверное знаете, Safari является браузером по умолчанию в Mac OS X и iPhone OS. Вышло уже несколько релизов и для Windows, но версии .

Способ сброса пароля root в CentOS 7 кардинально отличается от такового в Centos 6. 1. В загрузочном меню нажмите "е" - реда.


Большинство современных роутеров поддерживает стандарт WPS (Wi-Fi Protected Setup), который позволяет за секунды установить безопасное соединение между устройством и роутером, минуя этап настройки шифрования и ввода пароля. Устройства подключаются по отдельному восьмизначному ключу WPS PIN, который состоит из цифр. Восьмая цифра — дайджест.

WARNING

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

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

  • подбор ПИН-кода или ключа безопасности методом грубой силы;
  • использование уязвимостей реализации;
  • социальная инженерия;
  • использование слабостей генерации ПИН-кодов.

В этой статье мы остановимся на последнем методе из списка.

Откуда берут стандартный PIN

Когда мы покупаем роутер, в нем уже содержится полученный специальным алгоритмом WPS PIN для первичного подключения к маршрутизатору через WPS. WPS PIN состоит из восьми цифр. Как производители его получают? Очевидно, что необходимо нечто уникальное для идентификации и генерации различных значений. Правильно — это MAC устройства, который мы можем получить из широковещательного BSSID.

BSSID (Basic Service Set Identifier) — уникальный идентификатор беспроводной сети. Зачастую BSSID совпадает с адресом устройства Ethernet MAC.

Генерация WPS PIN на примере

Как ты уже понял, все начинается с BSSID. Подключаем к сети нашу сексуальную точку доступа. ¯\_(ツ)_/¯

Наш роутер с элементами легкой эротики

Наш роутер с элементами легкой эротики

Анализируем любым удобным способом (например, Dumpper).

Dumpper внятным языком рассказывает нам о близлежащих беспроводных сетях

Dumpper внятным языком рассказывает нам о близлежащих беспроводных сетях

BSSID получен: C4:6E:1F:6A:8D:04 .

Настало время приключений: открываем браузер и начинаем бороздить различные (в том числе зарубежные) сайты и форумы, чтобы узнать, как работают алгоритмы генерации ПИН-кодов у конкретного производителя сетевого оборудования. Если же лень сильнее интереса, то всегда можно «выдернуть» эти функции из сторонних программных продуктов с открытым исходным кодом.

Предположим, мы нашли, что большинство стареньких роутеров этого вендора используют алгоритм генерации ПИН-кода из последних трех октетов MAC-адреса устройства: 24-bit PIN = MAC[7..12] .

Вот реализация этого алгоритма на Python.

Результатом работы скрипта будет ПИН-код 69829161 . Проверим его достоверность.

Полученный WPS PIN идентичен стандартному (заводскому)

Полученный WPS PIN идентичен стандартному (заводскому)

Подготовка и требования

Приступим. При разработке собственной утилиты для тестирования беспроводных точек доступа нам потребуется:

  • Windows 7 и выше;
  • Python 3 и выше;
  • удобная IDE;
  • любимый браузер;
  • личный маршрутизатор Wi-Fi с технологией WPS «для пыток»;
  • WpsWin (входит в состав того самого Dumpper);
  • IDA и Hex-Rays Tool.

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

Продолжение доступно только участникам

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Дмитрий Адаров


Дмитрий Адаров

Егор Петрушенко

Дмитрий Адаров


Дмитрий Адаров ответил Егору

Алексей Калышев

Илья Львов

Владислав Ефимович


Владислав Ефимович

Владислав, в 50% не подходит адаптер, в 40% случаев не подходит драйвер, в 9% случаев не захватываются пакеты

Владислав Ефимович


Владислав Ефимович ответил Роману

Владислав Ефимович


Владислав Ефимович ответил Роману

Павел Кенчиков

Алексей Аксёнов


Алексей Аксёнов

Азамат Арифханов


Азамат Арифханов

Вы к коду пояснение чтоль кидайте.
Хотя бы комментарии

Дэвид Прокопенко


Дэвид Прокопенко

Азамат Арифханов


Азамат Арифханов ответил Дэвиду

Андрей Барышев

Ребят, какую лучше использовать программу для веб разработки.

Альберт Саитов

Андрей Барышев

Серафим Ковалёв


Серафим Ковалёв

Кирилл Сидов


Кирилл Сидов

Артур Миловидов


Артур Миловидов

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

Антон Антонов

Кристофер Старыйдобряк


Кристофер Старыйдобряк

DELETED


DELETED

Однажды передо мной встала задача реализации программного управления одним из распространенных домашних Wi-Fi маршрутизаторов TP-Link TL-WR841N, у которого, к сожалению, нет интерфейса управления через командную строку (telnet, SSH). Я хотел, чтобы мой Telegram бот, реализованный на Python на базе SBC в локальной домашней сети, на основе моих команд выполнял следующие функции управления маршрутизатором:

Импорт, авторизация и исходные параметры


Для авторизации нам понадобится токен, вычисление которого осуществляется на основе логина и пароля пользователя. Функция вычисления токена задана в JS скрипте на маршрутизаторе 192.168.0.1/login/encrypt.js. Выглядит он вот так.

Но, признаюсь, я не стал портировать эту функцию из JS в Python. Я упростил подход и посмотрел значение параметра, которое отправляет мой браузер в Wireshark.


Выделенный запрос — это запрос авторизации, который мы воспроизведем чуть позже. Таким образом, я скопировал параметр Cookie pair в запросе авторизации


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

Перейдем к функции авторизации.


Цикл while я использовал, так как маршрутизатор не всегда авторизовывал моего бота с первого раза. Возможно, у вас получится обойтись без него.

Далее реализуем функцию выхода logout.


Я делаю logout после каждой операции, так как маршрутизатор позволяет одновременно подключаться только одному пользователю. Поэтому, если ваш бот авторизуется и не выйдет из маршрутизатора, то вы не сможете на него зайти до тех пор, пока маршрутизатор не закроет открытую сессию по таймауту через несколько минут. Таким образом, я решил строго придерживаться последовательности «login -> операция -> logout».

Кстати, стоит учесть, что, если кто-то уже авторизован на маршрутизаторе, то бот, очевидно, не сможет авторизоваться до тех пор, пока пользователь не сделает logout, или активная сессия не закроется по таймауту. Одним словом, «кто первый встал, того и тапки.» Стоит отметить, что Python бот выполняет операции управления маршрутизатором за доли секунд. Таким образом, ваш маршрутизатор не будет занят ботом в течении продолжительного времени.

Перезагрузка, NAP Port Forwarding

Перейдем к операциям, которые мы можем выполнять после успешной авторизации.


Здесь я бы хотел подчеркнуть, что указанные запросы активируют/деактивируют все правила Port Forwarding, созданные ранее в соответствующем разделе управления маршрутизатором.


Проще говоря, запросы аналогичны нажатию кнопок «Включить все» и «Отключить все». По аналогии можно реализовать и создание/активацию отдельных правил.

Удаленный доступ к маршрутизатору из WAN (интернет)


Здесь параметр remote_ip задает IP-адрес удаленного управления, т.е. тот IP адрес, с которого разрешено удаленно заходить на маршрутизатор через интернет.



При желании можно указывать конкретный IP адрес, с которого вы хотите удаленно подключиться к маршрутизатору.

Определение списка подключенных устройств


Итак, мне остается только подытожить. Весь код выглядит следующим образом.

Читайте также: