Из этой заметки вы узнаете, как можно подобрать пароль к Wi-Fi сети. Вообще-то говоря, меня лично куда сильнее интересует, как защититься от взлома, а не то, как можно что-то кому-то сломать. Но для построения нормальной защиты нужно понимать, как произвести атаку. Поэтому, об атаке далее и пойдет речь. Совершить же ее нам поможет набор утилит под названием aircrack-ng . Протокол WEP сейчас практически никем не используется, поэтому далее речь пойдет исключительно о протоколах WPA и WPA2.
Важно! Статья опубликована исключительно с целью информирования общественности о существующих угрозах. Я не призываю вас в каким бы то ни было действиям, а также не несу за них ответственности. Должен предупредить, что практически во всех странах неправомерный доступ к компьютерной информации является противоправным действием, предусматривающим ответственность вплоть до уголовной. Например, если вы живете в России, см главу 28 уголовного кодекса .
Итак, устанавливаем aircrack-ng:
Выше приведено название пакета для Arch Linux , но я почти уверен, что в других дистрибутивах он будет называться так же.
Проверяем, поддерживает ли сетевой интерфейс режим мониторинга:
Если список устройств не пустой (в нем есть wlp2s0
или что-то подобное), значит все хорошо. Иначе для повторения эксперимента придется поискать другой Wi-Fi адаптер. Лично я использовал встроенный адаптер моего ноутбука .
Далее переводим устройство в режим мониторинга:
Может появиться предупреждение вроде такого:
If airodump-ng, aireplay-ng or airtun-ng stops working after
a short period of time, you may want to run ‘airmon-ng check kill’
PID Name
479 NetworkManager
511 wpa_supplicant
Я лично просто его проигнорировал. Также вы должны увидеть что-то вроде:
Следующим шагом ловим пакеты, собирая информацию о BSSID и номерах каналов ближайших сетей:
Мое внимание привлекла следующая сеть:
BSSID PWR […] CH MB ENC CIPHER AUTH ESSID
BE:EF:C0:FF:FE:42 -34 […] 6 54e. WPA2 CCMP PSK hackme
Как не трудно догадаться, это моя собственная Wi-Fi точка, которую я временно переименовал, а также сменил пароль от нее, на время написания заметки. BSSID я на всякий случай заменил в тексте на вымышленный.
Начинаем собирать зашифрованные пакеты, передаваемые в сети:
sudo airodump-ng -c 6 —bssid ‘BE:EF:C0:FF:FE:42’ -w temp / wlp2s0mon
Нужно дождаться появления строчки вроде такой:
Если «WPA handshake» долго не появляется, можно выбрать кого-нибудь из клиентов (колонка STATION в выводе airodump-ng) и в соседнем терминале порвать ему подключение к Wi-Fi точке:
-c ’65:61:78:2E:6D:65′ wlp2s0mon
В результате клиент переподключится и мы поймаем нужный нам хэндшейк. Как вы могли догадаться, в хэндшейке содержится хэш пароля от Wi-Fi точки. Для подбора пароля воспользуемся словарем под названием rockyou:
bzcat rockyou.txt.bz2 > rockyou.txt
aircrack-ng -a2 -b ‘BE:EF:C0:FF:FE:42’ -w rockyou.txt temp / -01.cap
Перебор займет какое-то время, и, если пароль был в словаре, мы увидим его на экране:
[00:00:00] 64/7120714 keys tested (2919.57 k/s)
Time left: 40 minutes, 39 seconds 0.00%
KEY FOUND! [ spongebob ]
[…]
Здесь для демонстрационных целей я заранее выбрал пароль из начала словаря, поэтому он был подобран практически мгновенно. Перебор же всех паролей на моем ноутбуке занимает 40-45 минут.
Fun fact! Взлом беспроводных сетей еще называют вардрайвингом (wardriving).
Перебор можно ускорить, перенеся его с CPU на GPU с помощью утилиты hashcat . У меня, к сожалению, это не работает — возникает ошибка:
clGetPlatformIDs(): CL_PLATFORM_NOT_FOUND_KHR
Видимо, негодный GPU. Но теоретически нужно просто сказать:
cap2hccapx temp / -01.cap temp / -01.hccapx
hashcat -m 2500 temp / -01.hccapx rockyou.txt
В нормальный режим работы сетевой интерфейс теоретически переводится следующей командой:
Но у меня это тоже не работает. Устройство так и остается в режиме мониторинга до следующей перезагрузки.
Дополнение: В контексте безопасности WiFi сетей вас также могут заинтересовать посты О публичном Wi-Fi, поддельных SSID’ах и sslstrip и Ставим прошивку OpenWrt на роутер TP-Link TL-WDR3600 .