В начале 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. Определяем интерфейс
Для начала нужно узнать, какой сетевой интерфейс нам нужен, для этого вводим команду:
$ ifconfig
Получаем ответ:
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 start wlan0
Обратите внимание, что airmon-ng переименовал ваш интерфейс (у меня он стал называться mon0, но вам, все же, стоит проверить).
Шаг 3. Перехватываем трафик
Теперь, когда наш сетевой адаптер находится в режиме мониторинга, мы можем захватить, подходящий мимо нас трафик, используя команду airodump-ng. Вводим:
$ airodump-ng mon0
f723da5e87d4255ba16b207c760405e1.jpg
image
Обратите внимание, что все видимые точки доступа перечислены в верхней части экрана, а клиенты — в нижней части экрана.
Шаг 4. Концентрируем перехват на конкретной точке доступа.
Наш следующий шаг — сосредоточить наши усилия на одной из точек доступа и на ее канале. Нас интересует BSSID и номер канала точки доступа, которую мы будем взламывать. Давайте откроем еще один терминал и введем:
$ airodump-ng --bssid 08:86:30:74:22:76 -c 6 -w WPAcrack mon0
99bd62714e23a01905eda60dd2d2e806.jpg
image
08:86:30:74:22:76 BSSID точки доступа
-c 6 канал на котором работает точка доступа Wi-Fi
WPAcrack файл в который запишется handshake
mon0 сетевой адаптер в режиме мониторинга
Как вы можете видеть на скриншоте выше, мы сейчас концентрируемся на захвате данных с одной точки доступа с ESSID Belkin276 на канале 6. Терминал оставляем открытым!
Шаг 5. Получение handshake
Чтобы захватить зашифрованный пароль, нам нужно, чтобы клиент прошел аутентификацию (подключился к Wi-Fi). Если он уже аутентифицирован, мы можем его деаутентифицировать (отключить), тогда система автоматически повторно аутентифицируется (подключится), в результате чего мы можем получить зашифрованный пароль.
То есть нам просто нужно отключить подключенных пользователей, чтобы они подключились снова. Для этого открываем ещё один терминал и вводим:
$ aireplay-ng --deauth 100 -a 08:86:30:74:22:76 mon0
ee185da334be776193641dd1c93ce7f7.jpg
image
100 количество пользователей, которые будут деаутентифицированы
08:86:30:74:22:76 BSSID точки доступа
mon0 сетевой адаптер
Теперь при повторном подключении окно которое мы оставили на предыдущем шаге поймает handshake. Давайте вернемся к нашему терминалу airodump-ng и посмотрим.
b9b8a8f4bf77eeeadf243f5a66bfe26e.jpg
image
Обратите внимание на верхнюю строку справа, airodump-ng вывел: «Handshake WPA». То есть, мы успешно захватили зашифрованный пароль! Это первый шаг к успеху!
Шаг 6. Подбираем пароль
Теперь, когда у нас есть зашифрованный пароль в нашем файле WPAcrack, мы можем запустить подбор пароля. Но для этого нам нужно иметь список с паролями которые мы хотим использовать. Найти такой список можно за 5 минут в Гугле. Я, же, буду использовать список паролей по умолчанию, включенный в aircrack-ng: BackTrack darkcOde.
Открываем новый терминал и вводим:
$ aircrack-ng WPAcrack-01.cap -w /pentest/passwords/wordlists/darkc0de
40cc032d7daa0f3fb4ed01c1a1c8012d.jpg
image
WPAcrack-01.cap файл в который мы записывали handshake (airodump-ng приписал в конце -01.cap)
/pentest/passwords/wordlist/darkc0de абсолютный путь к списку паролей
Сколько времени это займёт?
Этот процесс может занять много времени. Все зависит от длины вашего списка паролей, вы можете ждать от нескольких минут до нескольких дней. На моем двухъядерном процессоре Intel aircrack-ng подбирает чуть более 800 паролей в секунду.
Когда пароль будет найден, он появится на вашем экране. Будет ли подбор пароля успешным или нет, зависит от вашего списка. Если у вас не получилось подобрать пароль по одному списку, не отчаивайтесь, попробуйте другой.
Советы при использовании
Данный вид атаки эффективен для подбора пароля по списку, но практически бесполезен для рандомного подбора. Все дело во времени. Если Wi-Fi защищён средним паролем из латинских букв и цифр, то рандомный подбор займёт несколько лет.
При выборе списка паролей обязательно учитывайте географические факторы. Например, нет смысла делать подбор в ресторане Парижа по русскому списку паролей.
Если вы взламываете домашний Wi-Fi, то постарайтесь узнать какие либо персональные данные жертвы (имя, фамилия, дата рождения, кличка собаки и.т.д.) и сгенерировать дополнительный список паролей из этих данных.
После того как поймали handshake отключаете работу aireplay-ng (не заставляйте страдать простых пользователей).