Эта статья написана не как руководство для каких-либо противоправных действий, но для того чтобы наглядно показать каким элементам защиты стоит уделить больше внимания для того, чтобы обезопасить себя от злоумышленников.
Kali-linux
Для пентеста нам понадобится дистрибутив Kali-Linux, взять его можно с официального сайта. Запускать его можно с DVD - диска, или флэшки, но для более тщательной настройки, желательно всё же установить на жёсткий диск.
Прежде чем начать, напомню о существовании статьи 272 УК РФ «Неправомерный доступ к компьютерной информации». Все описанное в статье носит исключительно ознакомительный характер и предназначено для проведения аудитов собственных беспроводных сетей.
Запускаем терминал и вводим первую команду, для просмотра доступных беспроводных сетей:
airmon-ng
Вы увидите ваш сетевой интерфейс, который будет называться «ra0» или примерно так. Запомните это название. В дальнейшем он будет обозначаться как (interface), а вы заменяете его на ваше название.
Следующими командами, можно изменить свой mac-адрес на фейковый:
airmon-ng stop (interface)
ifconfig (interface) down
macchanger --mac 00:11:22:33:44:55 (interface)
airmon-ng start (interface)
Хочу обратить ваше внимание, что в Kali-Linux права суперпользователя даются сразу по умолчанию и не требуют ввода дополнительных команд, как в других linux – дистрибутивах.
Далее включаем беспроводную сетевую карту:
airmon-ng start wlan1
Включаем для неё режим мониторинга:
ifconfig wlan1mon down
iwconfig wlan1mon mode monitor
ifconfig wlan1mon up
airodump-ng wlan1mon
На монитор будут выведены доступные wi-fi сети.
При определённых условиях NetworkManager может не дасть Wi-Fi адаптеру перевестись в режим монитора. Более того, уже переведённую в режим монитора беспроводную карту он может вернуть в управляемый режим. Поэтому рекомендуется отключать NetworkManager при тестировании на проникновение беспроводных сетей.
В Kali Linux это делается так:
Особое внимание к полям BSSID, ESSID и CH (указывает на номер канала). В поле ENC указан алгоритм, используемый для шифрования. Далее останавливаем работу программы нажатием + .
WPA
Начнём с WPA/WPA2, так как это наиболее распространённая защита на сегодняшний день. Выбраем нужный нам BSSID и вводим следующую команду:
airodump-ng -c [номер_канала] -bssid [bssid] ↵
-w /root/Desktop/ wlan1mon
Пример:
airodump-ng -c 13 --bssid 00:1E:58:C6:AC:FB ↵
-w /root/Desktop/ wlan1mon
Airodump начала сбор информации о выбранном канале. Для этого можно, дождаться, подключения к сети другого пользователя, но можно просто сбросить(deauth) сессию уже подключившегося пользователя, для того, чтобы он подключился заново, и нам удалось бы получить информацию.
aireplay-ng -0 2 -a [router bssid] ↵
-c [client bssid] wlan1mon
В данной записи:
> -0 – означает переход в режим deauth,
> 2 – число передаваемых для деаутентификации пакетов,
> -a – указывает BSSID,
> -c – это MAC-адрес клиента.
Например:
aireplay-ng -0 2 -a 00:1E:58:C6:AC:FB ↵
-c 07:А2:07:92:02:32 wlan1mon
Если все сделано правильно, то в результате мы должны получить примерно следующее.
Теперь полученный зашифрованный трафик, который сохранили в /root/Desktop/*.cap файлы нужно расшифровать и узнать ключ сети. Попробовать взломать можно с помощью перебора по словарю. О других методах мы поговорим чуть позже.
aircrack-ng -a2 -b [router bssid] -w [path to wordlist] ↵
/root/Desktop/*.cap
Здесь:
> -a2 – это взламываемый алгоритм шифрования (WPA),
> -b – DSSID,
> -w – это словарь.
В интернете имеется множество готовых словарей.
Итак, если в результате выполнения данной атаки удалось узнать пароль от беспроводной сети, есть повод серьезно задуматься о степени ее защищенности. Однако даже если вы используете шифрование WPA с достаточно сложным и длинным ключом, расслабляться все равно рано, так как существуют другие атаки.
WPS
Вернемся к выводу команды airodump-ng wlan1mon.
На некоторых точках доступа включен режим WPS. Если пин введён верно - точка доступа сама предоставит данные для аутентификации (в т.ч. WPA PSK). Для подбора PIN в состав Kali Linux входит утилита Reaver.
Некоторые модели точек доступа, используемые провайдерами для доступа в интернет по GPON, при переборе PIN начинают мигать красным сигналом, который при обычной работе не горит. Это может стать дополнительным сигналом о подозрительной активности в сети.
Запустим перебор PIN.
reaver -i wlan1mon -b [BSSID]
По умолчанию Reaver имеет задержку в 1 секунду между попытками пина. Для отключения этой задержки необходимо добавить -d 0 к командной строке, но некоторые точки доступа не любят этого:
reaver -i wlan1mon -b [BSSID] –d 0
Другая опция, которая может ускорить атаку, это -dh-small.
С помощью этой опции Reaver способен несколько ускорить перебор с использованием групп Диффи-Хелманна:
reaver -i wlan1mon -b 01:01:01:01:01:01 --dh-small
В среднем перебор может занять до трех часов, так что за ночь осуществить такую атаку вполне реально.
Что делать в случае если используется WPA, но пароль не из словаря и WPS не включен? То есть мы собрали пакеты с помощью airodump, и у нас имеется cap-файл.
Здесь нам поможет входящая в состав Kali утилита Hashcat, которая позволяет существенно ускорить процесс восстановления паролей с помощью графического процессора.
Hashcat имеет несколько режимов атак:
>Атака брутфорсом (перебором)
>Комбинаторная атака
>Атака по словарю
>Атака по отпечаткам
>Гибридная атака
>Атака по маске
>Перестановочная атака
>Атака, основанная на правиле
>Табличная атака
>Атака с переключением раскладки
В рамках решения задачи взлома WPA/WPA2, вероятнее всего, потребуется атака по словарю. Конечно, если что-то известно о том, из чего состоит пароль, можно использовать другие способы, однако в случае полной неизвестности нужен полный перебор.
У нас имеется cap-файл, однако Hashcat имеет собственный формат для расшифровки, поэтому необходимо предварительно очистить cap-файл:
wpaclean
Обратите внимание, что сначала идет выходной файл, а потом входной .
Например:
wpaclean /root/Desktop/ wlan1mon_out.cap /root/Desktop/ ↵
wlan1mon.cap
Теперь необходимо конвертировать очищенный файл в формат .hccap с помощью aircrack-ng –J.
aircrack-ng <out.cap> -J <out.hccap>
Пример:
aircrack-ng /root/Desktop/ wlan1mon_out.cap ↵
-J /root/Desktop/ wlan1mon_out.hccap
Когда исходные файлы подготовлены, можно приступать непосредственно к взлому. Для взлома файла рукопожатия WPA/WPA2 с Hashcat вводим:
hashcat -m 2500 -a 3 файл.hccap
где:
> -m 2500 – означает атаку на файл рукопожатия WPA2/WPA;
> -a 3 – означает использование брутфорса (она также совместима с атакой по маске);
> файл.hccap – конвертированный файл .cap, после обработки программами wpaclean и aircrack-ng.
Для нашего примера эта команда будет иметь следующий вид:
hashcat -m 2500 -a 3 /root/Desktop/ wlan1mon_out.hccap
У Hashcat имеются также редакции для работы с графическими ускорителями cudaHashcat или oclHashcat.
При использовании данных утилит синтаксис команд будет несколько отличаться от приведенного в примерах, поэтому перед их использованием необходимо внимательно ознакомиться с документацией. Также не стоит забывать, что предварительно должен быть корректно установлен драйвер видеокарты. По собственному опыту могу сказать, что графический ускоритель позволил увеличить скорость расшифровки в семь-восемь раз по сравнению с использованием центрального процессора.
Еще одним средством взлома WPA являются утилиты Pyrit и coWPAtty, но это уже выходит за рамки данной статьи.
В интернете появился сервис, позволяющий взламывать различные зашифрованные данные. В том числе с его помощью можно попробовать вскрыть WPA/WPA2 cap-файл (сервис платный).
На этом, я думаю, с аудитом WPA можно закончить.
WEP
Теперь рассмотрим случай, когда используется алгоритм WEP. Данный алгоритм шифрования появился гораздо раньше, чем WPA, и в настоящее время является небезопасным. Сам факт использования данного алгоритма является серьезной уязвимостью в корпоративной беспроводной сети, поэтому его настоятельно рекомендуется заменить на WPA2.
Мы уже получили список работающих сетей, нашли в нем шифрование WEP. Теперь нам необходимо собрать некоторое количество шифрованных пакетов для их последующего взлома и получения ключа. Для этого в новом окне терминала указываем:
airodump-ng -c (channel) -w (file name) --bssid (bssid) ↵
(interface)
Здесь:
> channel – это канал из столбца CH,
> file name – имя файла, в который все будет записываться,
> bssid – это идентификатор сети.
Пример:
airodump-ng -w wep -c 1 -- bssid 01:01:01:01:01:01 wlan0.
Отправляем запросы к атакуемой сети в целях установки соединения (ассоциирования).
aireplay-ng -1 0 -a (bssid) -h 01:01:01:01:01:01 ↵
-e (essid) (interface)
Здесь essid – это имя атакуемой сети. После этого нам необходимо дождаться появления сообщения «Association successful».
Так как взлом шифрования WEP основан на получении статистики от большого числа пакетов, нам нужно собрать необходимое для взлома количество пакетов.
aireplay-ng -3 -b (bssid) -h 01:01:01:01:01:01 (interface)
Этот процесс может занять продолжительное время, все зависит от интенсивности работы беспроводной сети.
Нам нужно дождаться, пока число в столбце #Data не перейдет отметку в 10 000. При достижении требуемого количества собранных данных запускаем процесс взлома собранных зашифрованных данных.
aircrack-ng -b (bssid) (file name-01.cap)
В качестве имени вводится выбранное вами ранее имя для файла.
aircrack-ng -b (bssid) (wlan0mon.cap)
В случае успеха получим строку «KEY FOUND», содержащую ключ.
Вывод
Первым делом необходимо правильно настроить мощность сигнала. Дело в том, что слишком «хороший» Wi-Fi на всей территории – это не всегда хорошо. Нужно убедиться, что за пределами контролируемой зоны сигнал не ловится. При необходимости нужно перенести точки доступа подальше от границ контролируемой зоны.
Существует весьма спорная рекомендация, скрывать ESSID для того, чтобы сеть не была видна потенциальным злоумышленникам. Однако утилиты, которые мы использовали в этой статье, позволяют обнаруживать и скрытые Wi-Fi, поэтому считать этот способ хоть сколько-нибудь эффективной защитой не стоит. Также не стоит рассчитывать на фильтрацию по MAC-адресам. Во-первых, MAC-адрес можно легко подделать. А во-вторых, в корпоративных сетях, где количество клиентских устройств больше 30, фильтровать по MAC будет крайне сложно. А в гостевых сетях, где устройства постоянно меняются, такая фильтрация вообще невозможна.
Наиболее эффективным средством защиты является использование протокола 802.1х и инфраструктуры открытого ключа. В случае если установить сертификат не представляется возможным, необходимо в дополнение к WPA2-шифрованию использовать также аутентификацию через веб. Тогда злоумышленник даже в случае взлома Wi-Fi не сможет получить доступ к другим ресурсам сети.