Взлом WiFi на Python

Взлом WiFi Python

Работа пентестера основана на законом взломе и довольно часто возникает необходимость подключиться к WiFi, не зная пароль. Технология WPS уже давно помогает пентестерам взламывать WiFi. В нашей сегодняшней статье мы посмотрим, как самостоятельно реализовать атаку на WiFi, основанную на слабостях алгоритмов генерации WPS PIN.

Еще по теме: Лучшие хакерские программы для взлома со смартфона

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

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

Из всего разнообразия методов взлома WiFi:

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

В сегодняшней статье мы рассмотрим последний метод из списка.

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

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

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

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

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

Как вы уже поняли, все начинается с BSSID. Подключаем к сети наш сeксуaльный роутер.

взлом wifi python
Страстный роутер ждет взлома

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

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

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

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

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

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

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

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

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

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

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

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

Автозапуск с правами администратора

Для автозапуска мы будем использовать следующий код:

Теперь при попытке запустить скрипт вызов будет передан на UAC (если активен) и откроется новое окно терминала, где наш код выполнится от под администратором.

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

Разработка

Прежде всего добавим алгоритм подсчета дайджеста MAC-адреса (он уже был выше):

А также несколько функций генерации заветных ПИН-кодов.

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

Немного реверса

Разумеется, нужен способ проверить получившиеся ПИН-коды. В этом нам и поможет WpsWin. Эта утилита позволяет подключиться к беспроводной точке доступа посредством технологии WPS. Но какие параметры ей передавать? Расчехляем IDA, подгружаем наш PE и исследуем.

Вот что нам необходимо проделать с исполняемым файлом:

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

Первая нужная функция находится по адресу 0x004012A0.

взлом wifi на python
Все аргументы командной строки как на ладони

Вторую можно найти по 0x00403370, а третья — это локальная метка основной функции.

взломать wifi python
Ошибка при невозможности подключения к беспроводной точке доступа
взломать wifi на python
Сообщение о некорректном ключе для подключения

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

Само значение передается аргументом второй, найденной нами функции.

взломать wifi на python
Долой длительное ожидание

Патчим через «Edit → Patch program → Assemble…» и сохраняем.

взломать wifi на python
Да здравствует маленький тайм-аут!

Подключение по WPS

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

К сожалению, WpsWin не позволяет отобразить список близлежащих сетей с поддержкой WPS, как это делает wash в Linux, а значит, нам остается реализовать эту функцию самим.

Угадываем WPS PIN

Еще несколько десятков кликов по клавиатуре, и код готов.

Тестирование утилиты

Запускаем скрипт из терминала Windows. Выбираем беспроводную сеть. Профит!

утилита для взлома wifi на python
Удивительно, но программа работает
программа на python для взлома wifi
Вознаграждение за труды

Дополнительные фичи

Если же вам, дорогой читатель, захочется модернизировать этот код, то вот несколько интересных идей для реализации.

  1. Переписать утилиту с использованием встроенной библиотеки cmd, которая имитирует CLI.
  2. Придумать иной способ получения списка беспроводных сетей.
  3. Отыскать все возможные алгоритмы генерации WPS PIN у разных производителей.
  4. Добавить проверку на наличие у беспроводной точки доступа технологии WPS.
  5. Создать счетчик неудачных попыток ассоциации, что поможет выявить вероятную блокировку (Lock) или использование межсетевого экранирования в беспроводной сети.
  6. Добавить звуковое оповещение, когда будет найден верный ПИН-код.

Выводы

Что у нас есть по результатам:

  • +10 к интеллекту скиллу разработки средств автоматизированного тестирования;
  • небольшой список алгоритмов генерации ПИН-кодов;
  • работающая утилита тестирования слабостей генерации WPS PIN;
  • пароль от беспроводной сети.

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

ВКонтакте
OK
Telegram
WhatsApp
Viber

50 комментариев

  1. Avatar
    Даниель Стародубцев

    Это действительно работает

    • Avatar
      Влад

      Можеш на почту скинуть алгоритм пжпжп

  2. Avatar
    Deth man

    Мне код скинеш?
    Вот она : dethmanize@gmail.com

  3. Avatar
    Саня

    Скинь тоже по братски, почта вот: nailjonenailjone@gmail.com

  4. Avatar
    Alcohol

    Скинь мне тоже пж на почту: dmitry.arsyonov@mail.ru

  5. Avatar
    Vasea

    Скиньте алгоритм плиз

  6. Avatar
    Максон

    Скиньте код пожалуйста.
    merser.zombie@gmail.com

  7. Avatar
    Ахмедов Руслан

    Привет, можешь пж скинуть исходный код ? Буду очень благодарен. Вот почта: rus8412014@gmail.com

  8. Avatar
    Oleg

    Скиньте мне на почту пожалуйста
    oleglaguta43@gmail.com

  9. Avatar
    Влад

    Сбросьте мне тоже пожалуйста код. Почта: vorona.vor62@gmail.com. Заранее спасибо!

  10. Avatar
    Кирилл

    Пожалуйста пришлите мне код, большое спасибо тому кто откликнется. Почта:lirikman2007@gmail.com
    Очень нужен код

  11. Avatar
    Knsag

    Ща скину

  12. Avatar
    m

    скиньте код, пожалуйста.вот почта jakobvip2005@gmail.com

  13. Avatar
    михаил

    скинь и мне пожалуста на эту etoturnikman@gmail.com

  14. Avatar
    Bohdan

    буду благодарен, если скинете и мне yarinko.b@gmail.com

  15. Avatar
    Тихон

    Привет! Можешь мне скинуть код в телеграмм:@Zero4kaX Либо на почту monopiskam@gmail.com

  16. Avatar
    вася

    скиньте плиз sonyatitova674@gmail.com

  17. Avatar
    Romka

    скиньте плиз мне тоже prophetix@rambler.ru

  18. Avatar
    Егорка

    скинь пожалуйста и мне, очень прошу !!!! H0rs4@yandex.ru

  19. Avatar
    kitles

    Привет, скинешь пожалуйста алгоритим. Почта : clash2018super@gmail.com

  20. Avatar
    Андрей

    Скиньте код плез на почту
    darkandrey929@gmail.com

  21. Avatar
    Алдияр

    скиньте мне алгоритм пожалуйста
    aldikzaldik@gmail.com

  22. Avatar
    Kostia

    скиньте мне пж почта : kostia.4gore@gmail.com

  23. Avatar
    Artem

    Скиньте пж мне на почту: ghm623595@gmail.com

  24. Avatar
    cleve56

    скиньте пж на почту выводит ошибку в 130 строке pin = i(mac)

    norboyev.diyorbek03@gmail.com

  25. Avatar
    NoName

    Скинь код ПЖ uzikyavny@gmail.com

  26. Avatar
    Михаил

    Привет можете скинуть на почту код?Буду благодарен

  27. Avatar
    Андрей

    Скиньте мне тоже алгоритм пж
    adsizov09@mail.ru

  28. Avatar
    Эд

    скиньте и мне на почту код
    kulaga.m.d@gmail.com

  29. Avatar
    Illya

    Скиньте код плиз на почту
    illyaterescho2007@gmail.com

  30. Avatar
    Влад

    Скиньте пожалуйста код, буду очень признателет если кто-то откликнеться!

  31. Avatar
    Влад

    Скинь пожалуйста код cyud.2019@gmail.com

  32. Avatar
    Андрей

    Пожалуйста и мне скиньте andreiuzik777@gmail.com

  33. Avatar
    alex

    скиньте код пожалуйста alekseipetrushenko@inbox.ru

  34. Avatar
    AtomMax_

    Раз все просят скинуть я тоже попрошу
    Telegram: @AtomMax_
    Или atommax228@gmail.com

  35. Avatar
    Nikita

    Можно скинуть код пожалуйста
    pablo.na0220@gmil.com

  36. Avatar
    Никита

    Скинь тоже код пожалуйста

  37. Avatar
    Никита

    Скинь тоже код пожалуйста kabanovnikita81@gmail.com

  38. Avatar
    Anton

    скинь ссылку код пожалуйста scorpingorance@gmail.com

  39. Avatar
    Danial

    Скиньте пожалуйста newlogi26@gmail.com

  40. Avatar
    Ярос

    Скинь код пожалуйста
    dedurinaroslav@gmail.com

  41. Avatar
    Justin

    Можешь скинуть код
    babyfun215@gmail.com

  42. Avatar
    Степан

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

  43. Avatar
    MaKaRoShKa

    Скиньте мне код пж
    maksrddr@gmail.com

  44. Avatar
    MaKaRoShKa

    Скиньте код пж
    maksrddr@gmail.com

  45. Avatar
    павел

    отправишь на почту? она: pashada6@mail.ru

  46. Avatar
    slashq

    скиньте код на почту пожалуйста
    почта: fansare6@gmail.com

  47. Avatar
    Эля

    Скиньте код на почту пожалуйста:nuriddinoveldor2008@gmail.com

  48. Avatar
    Эля

    Скиньте исходный код на почту пожалуйста:nuriddinoveldor2008@gmail.com

  49. Avatar
    ITNoob

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

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

Ваш адрес email не будет опубликован.