- HackWare.ru
- Этичный хакинг и тестирование на проникновение, информационная безопасность
- Взлом Wi-Fi без пользователей в Aircrack-ng
- Атака на PMKID в Aircrack-ng
- Взлом PMKID в Aircrack-ng
- Захват PMKID в Airodump-ng
- Заключение
- Подбор пароля Wi-Fi утилитой aircrack-ng
- А где же уязвимость?
- Так как же взломать?
- Шаг 1. Определяем интерфейс
- Шаг 2. Переводим сетевой адаптер в режим мониторинга
- Шаг 3. Перехватываем трафик
- Шаг 4. Концентрируем перехват на конкретной точке доступа.
- Шаг 5. Получение handshake
- Шаг 6. Подбираем пароль
- Сколько времени это займёт?
- Советы при использовании
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Взлом Wi-Fi без пользователей в Aircrack-ng
Про взлом Wi-Fi, к которому не подключены клиенты, рассказано в предыдущей статье «Взлом Wi-Fi без пользователей». Там есть технические подробности, почему эта атака возможна. Если совсем коротко, то некоторые Точки Доступа, при ассоциации с ними, отправляют PMKID, который можно использовать для взлома пароля вместо полноценного рукопожатия. То есть мы получаем необходимые данные для взлома пароля не захватывая обычное четырёхступенчатое рукопожатие, следовательно, эта атака возможна на Точках Доступа даже без подключённых станций.
В статье на которую дана ссылка, мы использовали следующие программы:
- hcxdumptool v4.2.0 или новее — для захвата беспроводных фреймов
- hcxtools v4.2.0 или новее — для извлечения необходимых для брут-форса данных
- hashcat v4.2.0 или новее для брут-форса пароля
Первые две (hcxdumptool и hcxtools) без проблем устанавливаются в Linux, а вот с hashcat могут быть трудности — для неё необходимы проприетарные драйвера, что для некоторых дистрибутивов (а также для всех виртуальных компьютеров) является проблемой.
Атака на PMKID в Aircrack-ng
В вышедшей новой версии Aircrack-ng 1.4 (от 29 сентября 2018 года) добавлена возможность взлома PMKID. Правда, в Airodump-ng не добавлено каких-либо специальных функций по захвату именно PMKID. Но, по идее, это не должно стать серьёзной проблемой, поскольку PMKID содержится в первом сообщении рукопожатия поэтому, я надеюсь, нам удастся захватить PMKID в Airodump-ng.
Взлом PMKID в Aircrack-ng
Начнём с захвата фреймов с помощью hcxdumptool. Больше подробностей в этой статье, здесь же только кратко сами команды.
Смотрим имя интерфейса и идентификаторы процессов, которые могут помещать
С помощью команды kill завершаем процессы, которые могут помешать.
Переводим интерфейс в режим монитора:
sudo ip link set down sudo iw dev set monitor control sudo ip link set up
Я использую Wi-Fi интерфейс wlp0s20f0u1, а данные сохраняю в файл test.pcapng:
sudo hcxdumptool -o test.pcapng -i wlp0s20f0u1 --enable_status 15
Получен файл test.pcapng, этот файл в формате pcapng — а aircrack-ng не понимает этот формат, поэтому конвертируем его в pcap:
tcpdump -r test.pcapng -w test.pcap
Будет создан новый файл test.pcap, анализируем его с помощью aircrack-ng:
Поскольку этот файл захвачен в «шумных» условиях, то там много разных фреймов и фрагментов рукопожатий, нас интересуют сети, напротив которых есть надпись «WPA (0 handshake, with PMKID)»:
Для взлома с помощью aircrack-ng используем команду вида:
aircrack-ng -w путь_до_словаря файл_захвата.pcap
aircrack-ng -w test.dic test.pcap
- -w test.dic — словарь для брут-форса
- test.pcap — файл захвата с фреймами
Я буду брут-форсить пароль для Wi-Fi сети Paangoon_2G, указываю её номер:
У меня крошечный тестовый словарик, поэтому я сразу взломал пароль Wi-Fi, об этом свидетельствует надпись «KEY FOUND!»:
Подробности о взломе паролей в Aircrack-ng, а также о том, как запускать атаки по маске, по словарю и в паре с различными генераторами паролей, читайте в статье «Взлом WPA/WPA2 паролей с Aircrack-ng: перебор по словарю, совместная работа с Hashcat, maskprocessor, statsprocessor, John the Ripper, Crunch, взлом в Windows».
Захват PMKID в Airodump-ng
Теперь попробуем захватить PMKID с помощью Airodump-ng. Напомню, что PMKID содержится в первом сообщении рукопожатия, это сообщение Точка Доступа отправляет в ответ на ассоциацию с ней.
Нам нужно узнать, на каком канале работает целевая ТД, а также её BSSID (MAC-адрес). Для обзора эфира мы запускаем airodump-ng:
sudo airodump-ng wlp0s20f0u1
Меня интересует беспроводная сеть Paangoon_2G, она работает на канале 9 и её MAC-адрес 40:3D:EC:C2:72:B8.
Вновь запускаем airodump-ng, с опцией —channel указываем желаемый канал, а с опцией -w указываем файл для записи захваченных радио фреймов:
sudo airodump-ng wlp0s20f0u1 --channel 9 -w cap2
Теперь нужно ассоциироваться с точкой доступа. Для этого я пробовал использовать aireplay-ng, но эта программа поддерживает ассоциацию только для WEP и не работает с WPA (ошибка Denied (code 12), wrong ESSID or WPA).
Ассоциация происходит естественным образом при попытке подключиться к этой точки доступа, то есть с другой беспроводной карты можно начать подключение к точке доступа и в этом случае действительно удаётся захватить PMKID, правда вместе с рукопожатием. Об этом говорит строка «WPA (1 handshake, with PMKID)».
Можно подключиться, например, через Network Manager или с помощью другого компьютера или телефона, пароль можно указать любой. Для подключения из командной строки, создайте конфигурационный файл (замените данные на свои):
wpa_passphrase "Paangoon_2G" 22222222 > Paangoon_2G.conf
- «Paangoon_2G» — имя интересующей меня сети
- 22222222 — произвольный пароль (не менее 8 символов)
- Paangoon_2G.conf — имя конфигурационного файла.
Для подключения выполните:
sudo wpa_supplicant -i wlo1 -c Paangoon_2G.conf -d
- -i wlo1 — имя беспроводного интерфейса, используемого для подключения
- -c Paangoon_2G.conf — используемый для подключения конфигурационный файл
- -d — опция, включающая показ сообщений отладки
Для извлечения PMKID (чтобы для брутфорса не использовался хендшейк с заведомо неверным паролем), откроем этот файл в Wireshark:
Для отделения только нужных данных, используем следующий фильтр (замените 40:3D:EC:C2:72:B8 на интересующую вас точку доступа):
(wlan.fc.type_subtype == 0x08 || wlan.fc.type_subtype == 0x05 || (eapol && wlan.rsn.ie.pmkid)) && wlan.addr==40:3D:EC:C2:72:B8
Загляните в первое сообщение рукопожатия и убедитесь, что там действительно присутствует PMKID:
Теперь с помощью CTRL+m выделите нужные пакеты (Beacon и Message 1):
И в меню File выберите Export Specified Packets. Введите имя файла и поставьте переключатель на Marked packets only. Если вам непонятно, как сохранять отдельные фреймы, то смотрите статью «Как извлечь рукопожатия из файла захвата с несколькими рукопожатиями», там имеются дополнительные скриншоты.
Я сохранил эти два фрейма в файл extracted.pcap, проверяю файл:
Отлично: хендшейков — 0, зато есть PMKID, об этом говорит уже знакомая нам строка «WPA (0 handshake, with PMKID)».
Можно вновь запустить тестовый взлом:
aircrack-ng -w test.dic extracted.pcap
Вновь пароль успешно взломан:
Заключение
В этой статье показана принципиальная возможность aircrack-ng взламывать Wi-Fi пароль из PMKID, а также способность airodump-ng перехватывать PMKID. То есть в случае необходимости, можно обойтись без hashcat.
Возможно, показанные методы являются не самыми оптимальными, особенно на этапе захвата PMKID с помощью airodump-ng, когда нам нужно вручную подключаться к Точке Доступа с другой Wi-Fi карты, но пока ничего лучшего я не придумал. Если вы знаете другой, более простой способ спровоцировать отправку запроса ассоциации, то напишите его здесь в комментариях.
Подбор пароля Wi-Fi утилитой aircrack-ng
В начале 1990-х годов, когда Wi-Fi только появился, был создан алгоритм Wired Equivalent Privacy, который должен был обеспечивать конфиденциальность Wi-Fi сетей. Однако, WEP оказался неэффективным алгоритмом защиты, который легко взломать.
На смену пришел новый алгоритм защиты Wi-Fi Protected Access II, который сегодня применяют большинство точек доступа Wi-Fi. WPA2 использует алгоритм шифрования, AES, взломать который крайне сложно.
А где же уязвимость?
Недостаток WPA2 заключается в том, что зашифрованный пароль передается при подключении пользователей во время так называемого 4-way handshake (4-х стороннего рукопожатия). Если мы поймаем handshake, то узнаем зашифрованный пароль и нам останется лишь расшифровать его. Для этой цели мы воспользуемся aircrack-ng.
Так как же взломать?
Шаг 1. Определяем интерфейс
Для начала нужно узнать, какой сетевой интерфейс нам нужен, для этого вводим команду:
eth0 no wireless extensions. wlan0 IEEE 802.11abgn ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=15 dBm Retry short limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off lo no wireless extensions
В моем случае всего три интерфейса, два из которых не имеют беспроводных расширений (no wireless extensions). Поэтому нас интересует только wlan0.
Шаг 2. Переводим сетевой адаптер в режим мониторинга
Перевод сетевого адаптера в режим мониторинга позволит нам видеть беспроводной трафик, подходящий рядом с нами. Для того чтобы сделать это, вводим команду:
Обратите внимание, что airmon-ng переименовал ваш интерфейс (у меня он стал называться mon0, но вам, все же, стоит проверить).
Шаг 3. Перехватываем трафик
Теперь, когда наш сетевой адаптер находится в режиме мониторинга, мы можем захватить, подходящий мимо нас трафик, используя команду airodump-ng. Вводим:
Обратите внимание, что все видимые точки доступа перечислены в верхней части экрана, а клиенты — в нижней части экрана.
Шаг 4. Концентрируем перехват на конкретной точке доступа.
Наш следующий шаг — сосредоточить наши усилия на одной из точек доступа и на ее канале. Нас интересует BSSID и номер канала точки доступа, которую мы будем взламывать. Давайте откроем еще один терминал и введем:
$ airodump-ng --bssid 08:86:30:74:22:76 -c 6 -w WPAcrack mon0
- 08:86:30:74:22:76 BSSID точки доступа
- -c 6 канал на котором работает точка доступа Wi-Fi
- WPAcrack файл в который запишется handshake
- mon0 сетевой адаптер в режиме мониторинга
Шаг 5. Получение handshake
Чтобы захватить зашифрованный пароль, нам нужно, чтобы клиент прошел аутентификацию (подключился к Wi-Fi). Если он уже аутентифицирован, мы можем его деаутентифицировать (отключить), тогда система автоматически повторно аутентифицируется (подключится), в результате чего мы можем получить зашифрованный пароль.
То есть нам просто нужно отключить подключенных пользователей, чтобы они подключились снова. Для этого открываем ещё один терминал и вводим:
$ aireplay-ng --deauth 100 -a 08:86:30:74:22:76 mon0
- 100 количество пользователей, которые будут деаутентифицированы
- 08:86:30:74:22:76 BSSID точки доступа
- mon0 сетевой адаптер
Обратите внимание на верхнюю строку справа, airodump-ng вывел: «Handshake WPA». То есть, мы успешно захватили зашифрованный пароль! Это первый шаг к успеху!
Шаг 6. Подбираем пароль
Теперь, когда у нас есть зашифрованный пароль в нашем файле WPAcrack, мы можем запустить подбор пароля. Но для этого нам нужно иметь список с паролями которые мы хотим использовать. Найти такой список можно за 5 минут в Гугле. Я, же, буду использовать список паролей по умолчанию, включенный в aircrack-ng: BackTrack darkcOde.
Открываем новый терминал и вводим:
$ aircrack-ng WPAcrack-01.cap -w /pentest/passwords/wordlists/darkc0de
- WPAcrack-01.cap файл в который мы записывали handshake (airodump-ng приписал в конце -01.cap)
- /pentest/passwords/wordlist/darkc0de абсолютный путь к списку паролей
Сколько времени это займёт?
Этот процесс может занять много времени. Все зависит от длины вашего списка паролей, вы можете ждать от нескольких минут до нескольких дней. На моем двухъядерном процессоре Intel aircrack-ng подбирает чуть более 800 паролей в секунду.
Когда пароль будет найден, он появится на вашем экране. Будет ли подбор пароля успешным или нет, зависит от вашего списка. Если у вас не получилось подобрать пароль по одному списку, не отчаивайтесь, попробуйте другой.
Советы при использовании
- Данный вид атаки эффективен для подбора пароля по списку, но практически бесполезен для рандомного подбора. Все дело во времени. Если Wi-Fi защищён средним паролем из латинских букв и цифр, то рандомный подбор займёт несколько лет.
- При выборе списка паролей обязательно учитывайте географические факторы. Например, нет смысла делать подбор в ресторане Парижа по русскому списку паролей.
- Если вы взламываете домашний Wi-Fi, то постарайтесь узнать какие либо персональные данные жертвы (имя, фамилия, дата рождения, кличка собаки и.т.д.) и сгенерировать дополнительный список паролей из этих данных.
- После того как поймали handshake отключаете работу aireplay-ng (не заставляйте страдать простых пользователей).