Предположим, есть сеть myWifiNet с паролем p@$$w0rd.
Пароль достаточно не редкий и он точно будет в любой мало-мальски полной словарной базе злоумышленников. Прикинемся, что мы не знаем этот пароль и попробуем его узнать!
Считаем, что в компьютере есть WiFi карточка, совместимая с нашей задачей (а это может быть даже простейшая USB-сетевая карта TP-Link, например, у меня справилась с задачей старенькая TL-WN727N), запущен Kali Linux (виртуалка, Live CD, установленная на диск — не важно). Начали!
Практически все команды выполняются с правами рута, поэтому:
# sudo su —
(ну или предваряйте все команды sudo)
1) Подготовка
Смотрим, какие имеются подходящие сетевые интерфейсы:
# airmon-ng
Скорее всего, это wlan0.
Выключаем его:
# ifconfig wlan0 down
«Прибиваем» процессы, которые сейчас обращаются к беспроводной карточке и помешают перевести карту в режим мониторинга.
# airmon-ng check kill
Переводим карту в режим мониторинга (monitor mode):
# iwconfig wlan0 mode monitor
# ifconfig wlan0 up
Проверяем, что интерфейс переведен в режим Monitor:
# iwconfig
Если так не прокатило, пробуем так:
# airmon-ng start wlan0
Проверяем:
# iwconfig
Должно быть ок (т.е. Mode: Monitor)
2) Ищем «жертву»
Смотрим, что вообще есть в wifi эфире:
# airodump-ng wlan0
В выводе команды находим mac-адрес точки доступа (BSSID) и канал (CH) нашей сети (ESSID), пароль которой мы будем стараться найти. Пусть это будет:
BSSID: 11:22:33:44:55:66
CH: 8
# airodump-ng -c 8 -a wlan0
-a — показывать только связанных с сетью клиентов
-с 8 — сеть на 8 канале
Нажмите букву «o» и цветом будут выделены клиенты (STATION укажет их mac-адреса), ассоциированные к одной точкой доступа (BSSID).
Здесь есть прямо интересные штуки, например, Probes — здесь указываются названия сетей, к которым пытаются подключиться клиенты (т.е. это запросы клиентов). Отсюда же интересная штука — сделали вы сеть с скрытым SSID, но клиент, подключающийся к такой сети, все равно выдаст ее название. С точки зрения хакера факт скрытой сети может привлечь внимание. Но тут уж все индивидуально.
3) Запись хендшейка
Немного матчасти: для того чтобы искать пароль сети, надо дождаться момента, когда беспроводной клиент будет пытаться подключиться к точке доступа. Для WPA/WPA2 этот процесс состоит из 4 этапного «рукопожатия» (4-way handshake), в процессе которого происходит обмен ключами между клиентом и точкой доступа. Вот именно это и нужно нам промониторить и записать для дальнейшего анализа.
Создаем папку, куда будут записываться трафик:
# mkdir /var/mycaps
Ждем перехвата хендшейка:
# airodump-ng —bssid 11:22:33:44:55:66 -c 8 -w /var/mycaps/ wlan0
Чтобы в захваченном трафике было что искать, нужен хендшейк (рукопожатие). Возможны два варианта действий:
— максимально скрытый способ — ждать, пока клиент сам штатно инициирует процесс подключения к точке доступа
— грубо, но быстро — не ждать, пока клиент на что-то решиться сам и «кикнуть спектатора со сцены», отправив клиенту «мертвые пакеты», из-за чего клиент отключиться от текущей точки доступа и попытается подключиться к ней снова. В теории, это может выдать нас (например, если в беспроводной сети ведется непрерывный анализ трафика), но мы не же настоящие хакеры…
Короче, пойдем по быстрому пути и заставим беспроводного клиента отключиться от сети. Для этого в другом окне выполним команду:
# aireplay-ng —deauth=5 -a 11:22:33:44:55:66 -c AA:BB:CC:DD:EE:F1 wlan0
— отправляем 5 deauth-пакетов: —deauth=5
— mac точки доступа: -a 11:22:33:44:55:66
— mac-адрес переподключаемого клиента: -c AA:BB:CC:DD:EE:F1
А в первом окне ждем парехвата хендшейка (ждем появления «WPA handshake <наша_сеть>» вверху справа). Как только дождалиь перехвата, завершаем процесс записи трафика и проверяем, что папка /var/mycaps не пуста!
Обратите внимание — на этом этапе злоумышленник покидает место расположения сети. Теперь ему нужны вычислительные мощности. Очень много мощностей 🙂 Но! Это не то же самое, когда он был бы вынужден сидеть физически вблизи объекта, где его могут записать камеры наблюдения или охрана. А уже чере совсем небольшое время никто не сможет сопоставить факт стоянки какого-то авто в течение 15 минут и взлом сети.
4) Поиск пароля WiFi сети
Варианты:
1. перебор (брутфорс). Например, утилитой hashcat (https://github.com/hashcat/hashcat-utils/releases);
2. атака по словарю (тем же hashcat или aircrack-ng).
Проиллистриую один вариант — с помощью aircrack-ng (остальное — по желанию сами).
Наша цель — не реально кого-то ломать, а увидеть, что это реально, и оценить риск осуществления такого взлома!
Создадим текстовый файл /var/mydict/pwd_list.txt в который запишем несколько паролей (по одному на строку), один из которых — настоящий пароль нашей сети:
# mkdir /var/mydict && touch /var/mydict/pwd_list.txt
# cat /var/mydict/pwd_list.txt
2357657-23467
hgfsrrw$2K
p@$$w0rd
123455-676
%sMEFD-643
Это жалкое подобие многомиллионных баз паролей, которые использутся в реальности, но нам не недели ждать надо, а убедиться, что все реально.
Поиск пароля сети с использованием такого «словаря»:
# aircrack-ng -a 2 -b 11:22:33:44:55:66 -w /var/mydict/pwd_list.txt /var/mycaps/*.cap
где:
/var/mycaps/*.cap — путь к файлам с захваченным и записанным трафиком, в том числе и хендшейка
-a 2 — тип «WPA/WPA2/WPA2-PSK» (а «1» — если WEP, но это уже как-то несолидно совсем)
-b 11:22:33:44:55:66 — mac-адрес точки доступа беспроводной сети
-w /var/mydict/pwd_list.txt — путь до словаря паролей (по которым идет перебор). Если словарей несколько, разделите их названия запятыми.
Можно было бы еще:
— указать и имя сети (параметр -e wifi_net_name) вместо MAC-адреса точки.
— записать найденный пароль сети в файл file_name (-l file_name)
В нашем примере пароль будет найдет моментально (что не удивительно).
Изучение вопроса, как заниматься брутфорсом (т.е. тупым перебором вариантов, или не очень тупым ;)), не будем здесь поднимать.
5) Выводы
Итак, какие можно из этого сделать выводы?
1) никаких простых словарных паролей! Сложный пароль — это единственный простой способ защиты WiFi, т.к. беспроводная сеть доступна всем и каждому, ваш сосед может месяцами вас «ломать» и вы даже знать этого не будете.
2) менять пароль раз в два месяца может быть неудобной мерой защиты, но зато позволит свести на нет попытки подобрать пароль, т.к. хакеры не успеют разгадать ваш старый пароль, а вы уже его поменяете на новый.
3) сети WiFi-Enterprise не просто так нужны, они позволяют управлять политикой паролей гораздо гибче, чем сообщать один пароль раз в два месяца всем сотрудникам или членам семьи/знакомым.