Беспроводные сети — они везде в наши дни, гдето они открыты, гдето закрыты и нам всегда интересно на сколько надежно они защищены.
Сегодня мы поставили перед собой задачу собрать устройство для взлома WIFI сетей на базе микрокомпьютера Raspberry Pi и Yagi (волновой канал) антены.
О малинке рассказывать думаю нет смысла а подобную антену вы можете приобрести за очень скоромную сумму —
Итак, мы решили смоделировать некоторые инструменты, уже доступные в aircrack-ng избегая при этом использования всего комплекта инструментов. В виду ограниченности ресурсов используемых в Raspberry Pi. В итоге мы создали инструмент WiFi De-authentication Rifle который представляет собой скрипт написаный на Python и позволяет выполнять следующие действия:
Нам нужно несколько Python модулей которые будут:
Нам нужно несколько модулей питона, которые были:
Наконец, вам необходимо установить все это в вашу гостевую ОС.
Функцирование приложения:
Приложение работает в непрерывном цикле, который переводит беспроводную карту в режим монитора и производит переключение между различными WIFI каналами используя IW команды. Следующим шагом является инициализация процесса снифинга пакетов с помощью PCAPY. И наконец передача всех захваченых пакетов обработчику методом нитей.
Переводим беспроводное устройство в режим монитора на вновь созданом интерфейсе:
os.system("iw dev %s interface add mon0 type monitor && ifconfig mon0 up" % interface)
Функция переключения каналов запускается в отдельном процессе.
while True: channel = random.randrange(1,14) os.system("iw dev %s set channel %d" % ("mon0", channel)) setting up the sniffer loop and packet handler. c = pcapy.open_live("mon0", MAX_LEN, PROMISCUOUS, READ_TIMEOUT) c.loop(-1, runThreads)
Следующим логическим шагом для обработчика пакетов, запускаем из нитей, использует ImpactDecoder.RadioTapDecoder(), чтобы декодировать пакеты данных и используем Impacket dot11 Типы, чтобы проверить, какой тип пакета (данные или управление).
Это важно, поскольку захват пакетов управления позволит нам извлечь BSSID и связаный SSID, который в конечном итоге будет заполнять список и отображается в одном из потоков. Интересно отметить, что для захвата пакетов данных, как правило, имеются три присутствующие адреса поля. После некоторых первоначальных исследований, мы обнаружили, что поле address3 содержит BSSID а поле address2 имеет адрес источника MAC-передатчик или MAC-адрес, который, как правило, является MAC-адресом клиента.
Что мы сделали, это убедились — что это отображано во втором окне нашего приложения после того как пользователь выбирает SSID или BSSID, чтобы захватить клиентов, связанные с ним. Переходя к заголовку RadioTap кадров, которая доступна во всех пакетах, мы можем извлечь канал, силу сигнала и другую полезную информацию.
В результате будет захвачена и сохранена информация как указано ниже:
SSIDS = {'BSSID':'SSID'} MACs = {'BSSID':[[CLIENTS],CHANNEL]}
Процесс де-аутентификации (De-authenticationProcess)
Для де-авторизации клиента, вам нужно выбрать BSSID SSID цели. Наш сценарий отображает связанных клиентов (потому что вы должны быть ориентированы на клиента правильно?).
Следующим шагом, чтобы сделать использование Impacket данных, сначала нужно создать RadioTap кадр. Этот первоначальный кадр содержит ряд дополнительных кадров, Dot11 кадр, который содержит Dot11 Management Frame, что, в конце концов содержит Dot11 Management Frame нужны для Де-аутентификации. В сочетании, это генерирует настоящий Dot11 management de-authentication packet, который будет отправлен с помощью сокетов к интерфейсу монитора с назначеным MAC адресом клиента и отображения BSSID как адреса источника.
В случае успеха, произойдет де-аутентификация выбранного клиента, и если был выбран широковещательный адрес, все клиенты к точке доступа будут отключены.
Как создать пакеты де-аутентификации в описанном выше способе?
Создание пакета де-аутентификации с использованием Impacket.
radio = impacket.dot11.RadioTap() radio.set_channel(channel1,channel2)
Создание Dot11 Frame.
dot11 = impacket.dot11.Dot11(FCS_at_end = False) dot11.set_type_n_subtype(impacket.dot11.Dot11Types.DOT11_TYPE_MANAGEMENT_SUBTYPE_DEAUTHENTICATION)
Создание кадра управления (management Frame)
m = impacket.dot11.Dot11ManagementFrame() sequence = random.randint(0, 4096) m.set_source_address(bssid) m.set_bssid(bssid) m.set_destination_address(client) m.set_sequence_number(sequence)
Создание кадра запроса де-аутентификации.
d = impacket.dot11.Dot11ManagementDeauthentication() m.contains(d) dot11.contains(m) radio.contains(dot11)
Отправка пакетов на интерфейс монитора с помощью сокетов
s = socket.socket(socket.AF_PACKET,socket.SOCK_RAW) s.bind(('mon0',0)) s.send(pkt) s.close()
Несмотря на подробное описание, мы также создали видео для большей наглядности:
Исходный код может быть загружен с нашего SensePost Github в WiFi Rifle секции .
Английскую версию статьи вы можете прочитать по ссылке: https://www.sensepost.com/blog/2015/wifi-de-authentication-rifle/
Также наиболее полную информацию о программах для взлома WI-FI вы всегда можете найти по этой ссылке
Чтобы взломать сеть Wi-Fi с помощью Kali Linux, вам нужна беспроводная карта, поддерживающая режим мониторинга…
Работа с консолью считается более эффективной, чем работа с графическим интерфейсом по нескольким причинам.Во-первых, ввод…
Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с…
С тех пор как ChatGPT вышел на арену, возросла потребность в поддержке чата на базе…
Если вы когда-нибудь окажетесь в ситуации, когда вам нужно взглянуть на спектр беспроводной связи, будь…
Elastic Security стремится превзойти противников в инновациях и обеспечить защиту от новейших технологий злоумышленников. В…