Это первая часть серии, состоящей из двух статей, в которой рассматривается новое поколение утилит для атаки на WEP в WiFi сетях, позволяющих организовать успешную атаку за очень короткое время, по сравнению с утилитами прошлого поколения. Во многих случаях для нахождения WEP ключа достаточно нескольких секунд или минут. В первой части сравниваются последние версии утилит на основе KoreK, осуществляющие пассивный статистический анализ и методы, основанные на обычном переборе, на примере перехваченного WEP трафика. Во второй части мы рассмотрим способы активной атаки, в том числе метод, основанный на быстром увеличении скорости сбора пакетов с целью повышения эффективности статистической атаки.
Итак, эти эффективные методы атаки уже здесь и реализованы в достаточно функциональных утилитах, делающих защиту WEP гораздо более слабой, чем часовой, заснувший на посту.
Давайте рассмотрим некоторые из этих утилит, а затем в подробностях изучим, почему реализованные в них методы атак работают.Первый недостаток этого старого метода заключается в том, что нужны только зашифрованные пакеты. Так как точка беспроводного доступа передает несколько незашифрованных пакетов в секунду, можно очень легко быть введенным в заблуждение относительно того, что вы имеет больше полезных пакетов, чем есть на самом деле. Если для перехвата пакетов вы используете Kismet, он будет показывать вам количество “Crypted” пакетов из общего количества перехваченных пакетов, как это показано ниже:
Второе обстоятельство, работающее против вас, состоит в том, что только “interesting” или “weak” векторы инициализации (IVs) уязвимы для атаки. Kismet также сообщает вам, какое их количество было перехвачено, хотя методы подсчета могут отличаться от других подобных утилит. Ответом производителей беспроводных точек доступа на FMS атаку было отфильтровывание большинства слабых IVs, которые передают их точки доступа и wireless карты. Если в целевой сети используется относительно новое оборудование, для успешной атаки с использованием этих устаревших утилит, вам нужно будет перехватить не меньше 10 миллионов зашифрованных пакетов.
В начале 2002 года h1kari выпустил утилиту, названную dwepcrack (входит в пакет bsd-airtools), которая улучшила существующую реализацию FMS атаки. Но, несмотря на то, что в dwepcrack была проделана хорошая работа по улучшению практической реализации статистического криптоанализа WEP, суть алгоритма атаки осталась прежней.Первой утилитой, которую мы рассмотрим, будет aircrack, написанная Кристофом Девайном (Christophe Devine). Осуществляя атаку KoreK-a также хорошо, как и улучшенную атаку FMS, aircrack имеет самые быстрые и эффективные показатели статистической атаки. Чтобы посмотреть aircrack в работе, просто перехватите как можно больше пакетов из зашифрованной WEP беспроводной сети, сохраните их как pcap файл и запустите aircrack из командной строки.
Чем выше fudge factor, тем выше вероятность успешной атаки. Также это приведет к увеличению времени работы, если только атака успешно не завершится в самом начале. Следующий график показывает зависимость времени выполнения (не считая загрузку и обработку файла) от fudge factor-a для утилиты aircrack. Голубыми точками обозначено время, необходимое для успешной атаки, красными – время потраченное на неудавшеюся попытку.
Если при значении fudge factor по умолчанию (два) не удается определить ключ, я обычно удваиваю значение этого коэффициента. Прерывая любую атаку, занимающую больше пяти или десяти минут, мне удавалось быстро подбирать успешное значение fudge factor-a.
Одна из особенностей aircrack состоит в том, что эта утилита по умолчанию работает и с 64 и со 128-битными WEP ключами. Если вам известен размер ключа в целевой сети, вы можете ускорить процесс атаки, указав его в командной строке при запуске aircrack.WepLab и aircrack конечно серьезные утилиты, но лучшие ли они? Чтобы узнать это, я произвел ряд тестов, сравнивающих возможности различных утилит статистического криптоанализа WEP. Для тестирования я сконфигурировал точку беспроводного доступа со случайным 128-битным ключом, сгенерировал большой объем трафика и собрал примерно 25 миллионов зашифрованных пакетов. Собранные данные я разбил на подмножества различных длин и попробовал взломать каждое подмножество каждой из тестируемых утилит, замеряя продолжительность каждой успешной атаки (включая время загрузки файла). Тестирование продолжалось более десяти часов. Результаты меня мало удивили.
Пакеты данных | Слабые IVs |
Уникальные IVs |
Время взлома 128-битного ключа в секундах | ||||||
aircrack | aircrack (4) | AirSnort | WepLab | WepLab (95) | WEPCrack | dwepcrack | |||
23457438 | 8560 | 16775533 | Неудача | 245 | 92 | Неудача | 244 | Неудача | Ошибка |
21016149 | 1807 | 16775167 | Неудача | 249 | 41 | Неудача | 247 | Неудача | Неудача |
19584364 | 9340 | 16275925 | Неудача | 230 | 114 | Неудача | 229 | Неудача | Неудача |
15690079 | 8694 | 12860342 | Неудача | 184 | 90 | Неудача | 179 | Неудача | Ошибка |
15628308 | 5505 | 12361369 | Неудача | 176 | 70 | Неудача | 174 | Неудача | Неудача |
11743639 | 8473 | 11743639 | Неудача | 154 | 69 | Неудача | 153 | Неудача | Ошибка |
11739339 | 3037 | 11693841 | Неудача | 150 | Неудача | Неудача | 151 | Неудача | Неудача |
7829104 | 1001 | 5031233 | Неудача | 74 | Неудача | Неудача | 77 | Неудача | Ошибка |
7799213 | 5225 | 7779299 | Неудача | 87 | 37 | Неудача | 101 | Неудача | Неудача |
4175159 | 1554 | 4069824 | 52 | 51 | Неудача | Неудача | 54 | Неудача | Неудача |
3914568 | 767 | 3914568 | Неудача | Неудача | Неудача | Неудача | Неудача | Неудача | Ошибка |
3914553 | 3958 | 3914553 | 48 | 49 | Неудача | Неудача | 56 | Неудача | Ошибка |
3884657 | 1490 | 3864743 | 48 | 46 | Неудача | Неудача | 52 | Неудача | Неудача |
978652 | 986 | 978652 | Неудача | Неудача | Неудача | Неудача | 11 | Неудача | Ошибка |
978633 | 371 | 978633 | Неудача | 12 | Неудача | Неудача | 13 | Неудача | Ошибка |
977219 | 264 | 974902 | Неудача | 9 | Неудача | Неудача | 13 | Неудача | Неудача |
684992 | 143 | 684992 | 8 | 8 | Неудача | Неудача | 11 | Неудача | Ошибка |
683605 | 238 | 681288 | Неудача | 18 | Неудача | Неудача | 13 | Неудача | Неудача |
587184 | 117 | 587184 | Неудача | 27 | Неудача | Неудача | Прервано (слишкм долго) | Неудача | Ошибка |
489293 | 103 | 489293 | 8 | 7 | Неудача | 5 | 5 | Неудача | Ошибка |
489286 | 115 | 489286 | 15 | 16116 | Неудача | Неудача | Прервано (слишкм долго) | Неудача | Ошибка |
391465 | 78 | 391465 | 5 | 13 | Неудача | Неудача | Прервано (слишкм долго) | Неудача | Ошибка |
391433 | 78 | 391433 | Неудача | 6 | Неудача | Неудача | 6 | Неудача | Ошибка |
293596 | 65 | 293596 | Неудача | 5 | Неудача | Неудача | Прервано (слишкм долго) | Неудача | Ошибка |
293579 | 65 | 293579 | Неудача | Неудача | Неудача | Неудача | Неудача | Неудача | Ошибка |
WepLab с опциями по умолчанию потерпел неудачу почти во всех опытах, но после установки –perc в 95% были получены результаты, конкурирующие с лучшими результатами aircrack. Для некоторых наборов данных более успешнее был WepLab, для других aircrack. В целом обе утилиты показали хорошие результаты с небольшими отличиями, хотя aircrack обогнала WepLab на небольших объемах данных.
Результаты AirSnort почти полностью совпали с моими ожиданиями – атака успешна в большинстве случаев с десятью или более миллионами пакетов, но при использовании меньших объемов данных определить ключ не удается. Во всех тестах AirSnort по скорости опережает aircrack и WepLab, но дополнительная минута или две редко имеют большое значение, поэтому утилиты на базе KoreK (WepLab и aircrack), которые гораздо менее требовательны к входным данным, в совокупности значительно опережают AirSnort.Самые неожиданные результаты показали WEPCrack и dwepcrack. WEPCrack правильно определял одиннадцать из тринадцати байтов, но в конечном результате всегда присутствовали неправильные байты. Из-за недостатка в алгоритме проверки правильности ключа, WEPCrack каждый раз выдавал ложный положительный результат. dwepcrack, потерпевший неудачу во всех тестах, жаловался на “недостаток IVs”, выдавал необъяснимую ошибку “не найден корректный пакет в лог-файле” или, для больших объемов данных, “Файл слишком большой”. Так как все тесты проводились под Linux, возможно dwepcrack будет более успешно работать в родной BSD среде.
Простейший перебор “в лоб” каждого возможного двоичного ключа непрактичен для 128-битных ключей, но в случае с 64-битным ключом такая атака может иметь смысл при наличии нескольких супер-компьютеров под рукой. WepLab и dwepcrack обеспечивают реализацию, вы – такты процессора.
WepLab и WepAttack поддерживают два способа перебора по словарю, один из которых основан на обычной технике MD5 хеширования, включающей в себя много разных способов превращения секретной фразы (passphrase) в бинарный WEP ключ, а в другом генерируются ключи, состоящие только из ASCII символов, используемые в некоторых устройствах. Знание аппаратных средств, используемых в целевой сети, может помочь определить, какой метод предпочтительнее для конкретного случая.Так как обе утилиты могут использовать любой словарь из текстового файла или стандартного потока ввода, для генерации словаря можно использовать любые средства, например утилиту John The Ripper. Совмещенные со способностями John-a применять правила (различные преобразование регистра букв, добавление чисел и т.д.) эти утилиты удивительно часто определяют ключ. Хотя обе атаки по словарю во время тестирования были успешны, WepLab отработал быстрее, но WebAttack предоставил большое количество одновременных режимов атаки.
Если перебор по словарю не принес результата, имеет смысл попробовать оптимизированный перебор “в лоб”, основанный на особенностях секретной фразы устройств конкретного производителя. Для устройств, использующих ASCII строку, WepLab предоставляет атаку перебора только ASCII байтов, что в результате уменьшает пространство возможных ключей. Для более распространенных хешированных MD5 секретных фраз dwepcrack может использовать оптимизированную атаку перебором для 64-битных ключей. Этот метод, исследованный и впервые реализованный Тимом Ньюшемом (Tim Newsham), уменьшает потенциальное пространство ключей с 2^40 до 2^21 возможных ключей, что существенно уменьшает время атаки.Все описанные утилиты работаю пассивно, т.е. только собирают информацию и ничего не передают. Во второй части мы рассмотрим активные атаки на WEP, включая метод увеличения скорости сбора пакетов, делающий статистическую атаку еще более эффективной. Закрепите ремни безопасности.
Все тесты проводились на ноутбуке с процессором Pentium-M 1.6 Ггц, на котором установлена ОС Gentoo Linux (ядро 2.6.8.1). Причина выбора Linux состоит в наличии наибольшего количества утилит, работающих под этой ОС. Некоторые утилиты также доступны под OS X, Windows и/или различными версиями BSD. Кроме этого, существует несколько утилит для других платформ, не доступных под Linux. Но, однако, кроме текущей версии KisMAC, ни одна из них не реализуют KoreK атаку.
В идеале для тестирования нужно было бы использовать данные из различных сетей с разными аппаратными средствами и WEP ключами. Хотя результаты не являются полностью объективными, выборочные тесты в других сетях в большинстве случаев подтвердили результаты тестирования.
Гравитация научных фактов сильнее, чем вы думаете