Привіт, сьогодні я розповім вам про злом Wi-Fi мережі з аутентифікацією WPA / WPA2. Для проведення тестування на проникнення бездротових мереж відмінно підійде дистрибутив kali linux, який містить велику кількість утиліт.
Для початку ми перевіримо доступні мережеві інтерфейси. Зробити це можна командою:
При цьому ви побачите схожу картинку:
В даному випадку є 2 доступних мережевих інтерфейсу, wlan0mon (щодо білоруського режиму моніторингу трохи пізніше) і wlan1 (wlan0).
Після це кроку є декілька можливих шляхів:
- Шлях простіше і для ледачих. використовувати утиліту wifite
- Робити все ручками і самі
У першому випадку вам буде потрібно всього лише
-вибрати девайc з якого проводити атаку (мережевий інтерфейс)
-вибрати атакуемую мережу
-далі утиліта все зробить сама: або захопить хендшейк якщо ви атакуєте WPA мережу без WPS, або буде виробляти атаку за допомогою Pixie якщо WPS включений.
-на випадок WPA, Wifite можна запустити вказавши словник який він буде використовувати для злому хендшейка (wifite -dict wordlist.txt).
Коли ми переконалися, що вайфай адаптер підключений і працює, потрібно дізнатися сигнал яких мереж він ловить, один з варіантів, включити бездротової інтерфейс і провести сканування.
Для цього ми скористаємося наступними командами:
ifconfig wlan1 up - в даному випадку wlan1 це ім'я мережевого інтерфейсу
iwlist wlan1 scanning - сканування з використанням інтерфейсу wlan1
і ми отримаємо приблизно такий висновок:
Нас цікавить відразу кілька параметрів:
Тепер давайте спробуємо захопити хендшейк, для цього нам треба перевести мережевий інтерфейс в режим моніторингу і захопити хендшейк.
Для перекладу в режим моніторингу використовується команда:
airmon-ng start wlan1 - при цьому інтерфейс поміняє ім'я на wlan1mon і перейде в режим моніторингу (перевірити це можна за допомогою iwconfig), при цьому вас може попередити про те, що якісь процеси можуть цьому заважати, не звертайте уваги, це нормально .
Для більш акуратного захоплення хендшейка ми будемо використовувати інформацію, яку ми отримали при скануванні:
Airodump-ng wlan0mon --bssid FC: 8B: 97: 57: 97: A9 --channel 2 --write handshake --wps
wlan0mon - ім'я інтерфейсу
channel 2 - обмеження по каналу, на роутер який ми зламуємо
write handshake - ця команда дозволяє нам записати захоплену інформацію в файли з ім'ям handshake
wps - відобразить наявність WPS у точки на випадок якщо ви його упустили.
Ось так виглядає процес захоплення хендшейка.
З огляду на, що хендшейк відбувається при підключенні клієнта до пункту доступу, то нам необхідно або почекати поки клієнт підключитися до точки доступу (наприклад прийшовши додому, в офіс, або включивши ноутбук / wifi) або допомогти клієнту пере підключитися до точки доступу використовуючи деаунтефікацію і упіймання хендшейка при наступному підключенні. Приклад деаунтефікаціі.
aireplay-ng -0 10 -a FC: 8B: 97: 57: 97: A9 -c 68: 3E: 34: 15: 39: 9E wlan0mon
-0 - означає деаунтефікацію
10 - кількість деаунтефікацій
wlan0mon - використовуваний інтерфейс
Коли ви знайдете хендшейк це відобразитися в правому верхньому куті.
Тепер, коли ми зловили хендшейк бажано його перевірити, почистити прибравши все зайве і підібрати пароль.
Перевірити можна декількома способами:
1) за допомогою утиліти cowpatty
cowpatty -r handshake-01.cap -c
-r вказує файл для перевірки
-з вказує що нам треба перевірити хендшейк а не зламувати його
Як ми бачимо на скріншоті в першому файлі у нас не було правильно хендшейка, зате в другому був.
2) За допомогою Wireshark
для цього треба відкрити файл wireshark'om, це можна зробити як з терміналу (wireshark handshake-01.cap) так і в ручну. При цьому ви побачите велику кількість пакетів. Давайте Отфильтруем пакети хендшейка за допомогою фільтра:
eapol || wlan.fc.type_subtype == 0x04 || wlan.fc.type_subtype == 0x08
Тепер нам потрібно залишити броадкаст точки доступу, і перші 2 пакети хендшейка, прибравши все інше. При цьому треба стежити щоб у перших 2х пакетів номер не надто відрізнялися, щоб вони були з одного хендшейка.
При цьому можна виділити броадскаст і 2 перших пакета і зберегти їх окремо.
3) найпростіший спосіб - це утиліта WPAclean.
wpaclean handshake-01.cap wpacleaned.cap
handshake-01.cap - це файл джерело з якого буде братися хендшейк
wpacleaned.cap - це файл куди буде записуватися очищений хендшейк.
Як ми бачимо висновок програми кілька різний, це пов'язано з тим що в першому файлі не було всієї необхідної інформації.
Тепер, коли у нас є правильний очищений хендшейк, нам залишається його розшифрувати.
Для отримання пароля від Wi-Fi нам буде потрібно знайти пароль, при використанні якого хеші для 2х наших хендшейков співпадуть. Для цього можна використовувати словник або підбирати по символам. Якщо у вас не суперкомп'ютер, то цей варіант вам навряд чи підійде, так як кількість варіантів - це кількість допустимих символів в ступеня кількості знаків пароля (
Для розшифровки за допомогою CPU ми скористаємося aircrack
aircrack-ng wpacleaned.cap -w wordlist.txt
wpacleaned - це наш очищений і перевірений хендшейк
-w wordlist.txt - це наш словник, за яким ми і будемо підбирати пароль
Якщо пароль буде в словнику, то через деякий час підбору ви побачите відповідне повідомлення:
В якому буде вказано ваш пароль. Або ж повідомлення про те, що словник закінчився, а пароль так і не знайдено.
Утиліта для злому через GPU називається pyrit володіє набагато більшими можливостями і тонким налаштуванням, але про них як-небудь наступного разу, зараз ми просто спробуємо підібрати пароль для хендшейка з нашим конкретним словником.
pyrit -r wpacleaned.cap -i wordlist.txt attack_passthrough
-r wpaclean.cap - файл хендшейка
-I wordlist.txt - файл словника
Якщо це не допомогло:
Для wifiphisher нам знадобитися 2 вайфай адаптера. Коротенько це відбувається так:
- За допомогою 1 адаптера ми глушимо точки цілі
- На другому адаптере ми піднімаємо відкриту точку з таким же ім'ям
- Коли мета не зможе підключитися і використовувати свою точку, вона можливо підключиться до нашої
- У мети випаде «схоже» на правдиве віконце де попросять ввести пароль від вайфая для того щоб роутер закінчив оновлення.
При цьому правильність введеного пароля для оновлення не перевіряється.