Беспроводные сети: ломаем, чтобы защищать
Методы защиты беспроводных сетей
Режим скрытого идентификатора сети SSID
Этапы взлома беспроводных сетей
Обход защиты фильтра по MAC-адресам
К беспроводным сетям Wi-Fi (сетям стандартов 802.11a/b/g) все уже давно привыкли. Хот-спотами теперь никого не удивишь, а в офисах Wi-Fi-сети используются наравне с проводными сетями. Более того, уже есть провайдеры Wi-Fi-доступа в Интернет для домашних пользователей и корпоративных клиентов.
Особенно популярным стало развертывание беспроводных сетей в домашних условиях. Типичная ситуация: дома используется не один компьютер, а несколько и для всех необходимо обеспечить доступ в Интернет или требуется выход в Интернет с ноутбука в любом месте квартиры. В этих случаях оптимальным, а подчас и единственно возможным решением является применение беспроводных маршрутизаторов, которые позволяют посредством одного проводного подключения к Интернету по технологии ADSL или Ethernet реализовать разделяемый беспроводной доступ для всех домашних или офисных компьютеров. Именно поэтому в последнее время стали столь популярны беспроводные маршрутизаторы именно для домашних пользователей.
Однако, принимая решение о переходе на беспроводную Wi-Fi-сеть, не стоит забывать, что она несовершенна в плане безопасности. Наряду с ростом популярности беспроводных сетей повышается интерес и к средствам их взлома. Он не столько имеет коммерческую подоплеку, сколько вызван азартом. Действительно, взлом сети ради получения халявного доступа к Интернету в наше время уже не актуален — ведь тарифы на доступ в Интернет настолько низкие, что легче заплатить, нежели взламывать сеть. А вот спортивный интерес — совсем другое дело: взлом ради взлома, и ничего личного. Беспроводные сети пытаются взламывать просто потому, что это интересно.
С уязвимостью беспроводных сетей связано немало мифов, и многие пользователи полагают, что любая беспроводная сеть отнюдь не безопасна и легко может быть взломана. На самом деле все не так просто: взломать беспроводную сеть удается лишь в исключительных случаях (когда, например, ее разворачивал и настраивал неопытный пользователь). Попробуйте осуществить несанкционированный доступ к беспроводной сети какого-нибудь провайдера, и вы поймете, что на самом деле беспроводные сети могут быть защищены достаточно надежно.
В данной статье мы на практических примерах покажем, в каких случаях и как можно взломать беспроводную сеть, а полученные знания можно будет в дальнейшем с успехом использовать для аудита безопасности беспроводных сетей, что позволит избежать традиционных ошибок, допускаемых при их настройке.
Отметим, что в одном из прошлогодних номеров нашего журнала мы уже описывали методы взлома беспроводных сетей на конкретных примерах. Однако, как выяснилось, появились новые версии программного обеспечения, предназначенного для взлома сетей, и хотя общая методология взлома не изменилась, наш «учебник юного хакера» явно нуждается в апгрейде.
Вначале рассмотрим основные меры безопасности, применяемые сегодня для защиты беспроводных сетей, а затем расскажем о том, как они преодолеваются.
Методы защиты беспроводных сетей
Стандартами беспроводных сетей предусмотрено несколько механизмов обеспечения безопасности:
- режим аутентификации и шифрования данных по протоколу WEP (Wired Equivalent Privacy);
- режим аутентификации и шифрования данных по протоколу WPA (Wi-Fi Protected Access);
- фильтрация по MAC-адресам;
- использование режима скрытого идентификатора сети.
Протокол WEP
Все современные беспроводные устройства (точки доступа, беспроводные адаптеры и маршрутизаторы) поддерживают протокол безопасности WEP, который был изначально заложен в спецификацию беспроводных сетей IEEE 802.11.
Протокол WEP позволяет шифровать поток передаваемых данных на основе алгоритма RC4 с ключом размером 64 или 128 бит. Некоторые устройства поддерживают также ключи в 152, 256 и 512 бит, однако это скорее исключение из правил. Ключи имеют так называемую статическую составляющую длиной 40 и 104 бит соответственно для 64- и 128-битных ключей, а также дополнительную динамическую составляющую размером 24 бита, называемую вектором инициализации (Initialization Vector, IV).
На простейшем уровне процедура WEP-шифрования выглядит следующим образом. Первоначально передаваемые в пакете данные проверяются на целостность (алгоритм CRC-32), после чего контрольная сумма (integrity check value, ICV) добавляется в служебное поле заголовка пакета. Далее генерируется 24-битный вектор инициализации (IV), к которому добавляется статический (40- или 104-битный) секретный ключ. Полученный таким образом 64- или 128-битный ключ и является исходным ключом для генерации псевдослучайного числа, используемого для шифрования данных. Далее данные смешиваются (шифруются) с помощью логической операции XOR с псевдослучайной ключевой последовательностью, а вектор инициализации добавляется в служебное поле кадра.
На приемной стороне данные могут быть расшифрованы, поскольку вместе с данными передается информация о векторе инициализации, а статическая составляющая ключа хранится у пользователя, которому передаются данные.
Протокол WEP предусматривает два способа аутентификации пользователей: Open System (открытая) и Shared Key (общий ключ). При использовании открытой аутентификации собственно никакой аутентификации не происходит, то есть получить доступ в беспроводную сеть может любой пользователь. Однако даже в случае открытой системы допускается применение WEP-шифрования данных.
Протокол WPA
В 2003 году был представлен еще один стандарт безопасности — WPA, главной особенностью которого является технология динамической генерации ключей шифрования данных, построенная на базе протокола TKIP (Temporal Key Integrity Protocol), представляющего собой дальнейшее развитие алгоритма шифрования RC4. По протоколу TKIP сетевые устройства работают с 48-битовым вектором инициализации (в отличие от 24-битового вектора WEP) и реализуют правила изменения последовательности его битов, что исключает повторное использование ключей. В протоколе TKIP предусмотрена генерация нового, 128-битного ключа для каждого передаваемого пакета. Кроме того, контрольные криптографические суммы в WPA рассчитываются по новому методу — MIC (Message Integrity Code). В каждый кадр здесь помещается специальный восьмибайтный код целостности сообщения, проверка которого позволяет отражать атаки с применением подложных пакетов. В итоге получается, что каждый передаваемый по сети пакет данных имеет собственный уникальный ключ, а каждое устройство беспроводной сети наделяется динамически изменяемым ключом.
Помимо этого протокол WPA поддерживает шифрование по усовершенствованному стандарту AES (Advanced Encryption Standard), который отличается более стойким, по сравнению с протоколами WEP и TKIP, криптоалгоритмом. В этом случае говорят о протоколе WPA2.
При развертывании беспроводных сетей в домашних условиях или в небольших офисах обычно используется вариант протокола безопасности WPA или WPA2 на основе общих ключей — WPA-PSK (Pre Shared Key). В дальнейшем мы будем рассматривать только вариант WPA/WPA2-PSK, не касаясь вариантов протокола WPA, ориентированных на корпоративные сети, где авторизация пользователей проводится на отдельном RADIUS-сервере.
При использовании WPA/WPA2-PSK в настройках точки доступа и профилях беспроводного соединения клиентов указывается пароль длиной от 8 до 63 символов.
Фильтрация MAC-адресов
Фильтрация MAC-адресов, которая поддерживается всеми современными точками доступа и беспроводными маршрутизаторами, хотя и не является составной частью стандарта 802.11, тем не менее, как считается, позволяет повысить уровень безопасности беспроводной сети. Для реализации данной функции в настройках точки доступа создается таблица MAC-адресов беспроводных адаптеров клиентов, авторизованных для работы в данной сети.
Режим скрытого идентификатора сети SSID
Еще одна мера предосторожности, которую часто используют в беспроводных сетях, — это режим скрытого идентификатора сети. Каждой беспроводной сети назначается свой уникальный идентификатор (SSID), который представляет собой название сети. При попытке пользователя войти в сеть драйвер беспроводного адаптера прежде сканирует эфир на предмет наличия в ней беспроводных сетей. В случае использования режима скрытого идентификатора (как правило, этот режим называется Hide SSID) сеть не отображается в списке доступных и подключиться к ней можно, только если, во-первых, точно известен ее SSID, а во-вторых, заранее создан профиль подключения к этой сети.
Взлом беспроводных сетей
Ознакомившись с основными методами защиты сетей стандартов 802.11a/b/g, рассмотрим способы их преодоления. Отметим, что для взлома WEP- и WPA-сетей используется один и тот же инструментарий, поэтому сначала расскажем, что входит в арсенал злоумышленника.
Арсенал злоумышленника
Итак, для взлома беспроводной сети нам понадобятся:
- ноутбук или компьютер;
- «правильная» операционная система;
- набор утилит для взлома;
- беспроводной адаптер Wi-Fi.
Если с ноутбуком (компьютером) все понятно, то остальные атрибуты взломщика нуждаются в комментариях.
«Правильная» операционная система
Основная проблема, которая возникает в процессе подбора инструментов для взлома беспроводных сетей, заключается в обеспечении совместимости чипа беспроводного адаптера, используемого программного обеспечения и операционной системы.
Все утилиты, позволяющие взламывать беспроводные сети, «заточены» под Linux-системы. Существуют, правда, их аналоги под Windows-системы, но, по большому счету, это детский лепет. Linux-системы для взлома предпочтительны, поскольку при использовании Linux набор возможных инструментов гораздо шире, да и работают Linux-утилиты значительно быстрее. Ну не ломают сети на Windows-системах! Зато под Linux можно сделать все очень просто и быстро.
Если какой-то начинающий пользователь, едва освоивший Windows, патологически боится слова Linux, спешим его успокоить: мы опишем способы взлома сетей, которые не потребуют от вас установки на компьютер (ноутбук) операционной системы Linux, но в то же время взлом будет производиться из-под Linux и с помощью Linux-утилит. Мы просто воспользуемся специальным дистрибутивом Linux, который не требует инсталляции на компьютер и может запускаться с CD/DVD-диска или с USB-флэшки. И что самое главное, этот дистрибутив уже содержит все необходимые для взлома утилиты. Более того, вам не придется отдельно устанавливать драйверы видеокарты или беспроводного адаптера. Все, что нужно для работы, уже интегрировано в дистрибутиве — загрузил его и работай!
В принципе, существует довольно много вариантов дистрибутивов Linux, не требующих инсталляции на компьютер (так называемые пакеты LiveCD Linux), которые позволяют загружать операционную систему Linux с CD/DVD-диска или с USB-флэшки. Однако для нашей цели наилучшим выбором будет пакет BackTrack 3 Beta, который построен на основе Linux (ядро версии 2.6.21.5) и содержит все необходимые утилиты для взлома сетей. Отметим, что, кроме инструментария, нужного нам для взлома беспроводной сети, данный диск содержит множество других утилит, позволяющих производить аудит сетей (сканеры портов, снифферы и т.д.).
Образ данного диска можно скачать с сайта по ссылке: http://www.remote-exploit.org/backtrack.html. На этом же сайте можно найти версию дистрибутива для USB-флэшки. Отметим, что если ваш компьютер или ноутбук еще не слишком морально устарел и поддерживает загрузку с USB-носителя, то лучше всего записать загрузочный дистрибутив именно на флэшку. Загрузка операционной системы с флэш-носителя происходит гораздо быстрее, чем загрузка с CD/DVD-диска.
Для создания загрузочного USB-носителя потребуется флэшка объемом 1 Гбайт. Делается это следующим образом. Скачиваем с сайта файл bt3b141207.rar, разархивируем его и переписываем на флэш-носитель две директории: boot и BT3 (предполагается, что все эти действия осуществляются на компьютере с операционной системой Windows). Далее в директории boot находим файл bootinst.bat и запускаем его на выполнение. В результате на флэш-носителе будет создан скрытый загрузочный раздел (Master Boot Record, MBR), который можно использовать в качестве загрузочного диска с операционной системой Linux. Осуществив необходимые настройки в BIOS (дабы разрешить загрузку с USB-носителя), вставляем флэшку в компьютер (ноутбук) и перезапускаем компьютер. В результате через несколько секунд на компьютере загрузится операционная система Linux со всеми необходимыми для взлома беспроводных сетей утилитами.
Набор утилит для взлома
Традиционно для взлома беспроводных сетей применяется программный пакет aircrack-ng, который существует в версии как для Windows, так и для Linux. Текущая версия пакета — aircrack-ng 1.0 Beta 1 (для Windows и Linux используется одна и та же нумерация версий). Как мы уже отмечали, пользоваться Windows-версией данной программы — несерьезно, а потому мы даже не станем терять время на рассмотрение Windows-версии и сосредоточимся именно на версии Linux.
Данный пакет распространяется абсолютно бесплатно, и его можно скачать с официального сайта http://aircrack-ng.org. Искать какие-либо другие утилиты просто не имеет смысла, поскольку этот пакет является лучшим решением в своем классе. Кроме того, его последняя Linux-версия входит в состав диска BackTrack 3 Beta, так что при применении дистрибутива BackTrack 3 Beta вам даже не понадобится отдельно скачивать и устанавливать пакет aircrack-ng.
Беспроводной адаптер Wi-Fi
Как уже отмечалось, основная проблема, возникающая в процессе подбора инструментов для взлома беспроводных сетей, заключается в обеспечении совместимости используемого программного обеспечения, операционной системы и чипа беспроводного адаптера. Рассмотрим подробнее последнюю составляющую.
К сожалению, для взлома беспроводных сетей подойдут далеко не все беспроводные адаптеры. Кроме того, есть такие адаптеры, которые хотя и поддерживаются утилитами, но работают крайне медленно (в смысле захвата и анализа пакетов).
Дело в том, что для взлома беспроводной сети необходимы специальные (нестандартные) драйверы для сетевых беспроводных адаптеров. Штатными режимами любого беспроводного адаптера считаются Infrastructure (Basic Service Set, BSS) и ad-hoc (Independent Basic Service Set, IBSS). В режиме Infrastructure каждый клиент подключен к сети через точку доступа, а в режиме ad-hoc беспроводные адаптеры могут общаться друг с другом напрямую, без использования точки доступа. Однако оба эти режима не позволяют беспроводному адаптеру прослушивать эфир и перехватывать пакеты. Для перехвата пакетов существует специальный режим мониторинга (Monitor mode), при переводе в который адаптер не ассоциируется ни с какой конкретной сетью и ловит все доступные пакеты. Драйверы, поставляемые производителем беспроводного адаптера, не поддерживают режим мониторинга, и для того, чтобы задействовать его, необходимо установить специальные драйверы, зачастую написанные группой сторонних разработчиков. Отметим, что драйвер нужен для конкретного чипа, на котором построен беспроводной адаптер. К примеру, адаптеры различных производителей, имеющие совершенно разные названия, могут быть основаны на одном и том же чипе и тогда для их работы в режиме мониторинга будет использоваться один и тот же драйвер. Тут-то и проявляется одно из главных преимуществ операционных систем семейства Linux: найти для них «правильные» драйверы для чипа беспроводного адаптера значительно проще, чем для ОС Windows, да и список чипов беспроводных адаптеров, для которых существуют «правильные» драйверы под Linux, гораздо шире, чем для Windows.
С полным списком чипов, для которых существуют специальные драйверы, поддерживающие режим мониторинга для операционных систем Linux и Windows, можно ознакомиться на сайте http://aircrack-ng.org.
В настоящее время в большинстве ноутбуков применяется интегрированный беспроводной Wi-Fi-адаптер на базе чипов от Intel (чипы IPW2100, IPW2200, IPW2915, IPW3945, IPW4945). Это ноутбуки на платформе Intel Centrino, причем узнать о наличии интегрированного беспроводного адаптера внутри ноутбука весьма просто — на все ноутбуки на платформе Intel Centrino наклеивается соответствующий стикер с логотипом Centrino.
Еще год назад, занимаясь взломом беспроводных сетей, мы выяснили, что беспроводные адаптеры на чипах Intel, несмотря на свою совместимость с Linux-версией пакета aircrack-ng, плохо подходят для взлома беспроводных сетей. Тогда эти чипы работали крайне медленно, что делало их использование практически неприемлемым.
Однако за прошедший год многое изменилось, например версия пакета aircrack-ng. А самое важное — появились новые версии специальных драйверов под Linux для беспроводных чипов Intel. И, как оказалось, с новыми драйверами беспроводные адаптеры от Intel работают в режиме мониторинга отлично. Конкретно речь идет о беспроводном адаптере на чипе IPW3945. Правда, несмотря на то, что данный чип отлично работает в режиме мониторинга, для проведения некоторых специфических операций (некоторых типов атак) этот беспроводной адаптер использовать нельзя.
Вообще, для взлома беспроводных сетей предпочтительно использовать, на наш взгляд, беспроводной адаптер на чипах серии Atheros.
Этапы взлома беспроводных сетей
Взлом любой беспроводной сети проводится в три этапа (табл. 1):
- сбор информации о беспроводной сети;
- перехват пакетов;
- анализ пакетов.
Далее мы на практических примерах подробно рассмотрим каждый из этих этапов. Для демонстрации возможностей по взлому беспроводных сетей мы развернули экспериментальную беспроводную сеть на базе беспроводного маршрутизатора TRENDnet TEW452BRP и клиента сети — стационарного компьютера с беспроводным адаптером TP-LINK TL-WN651G.
Для взлома сети мы применяли ноутбук на базе мобильной технологии Intel Centrino с беспроводным адаптером на основе чипа Intel IPW3945, а также беспроводной PCMCIA-адаптер TP-LINK TL-WN610G на базе чипа Atheros AR5212/AR5213.
Еще раз отметим, что при использовании диска BackTrack 3 никаких дополнительных драйверов беспроводных адаптеров устанавливать не требуется — все уже имеется на диске.
Сбор информации о беспроводной сети
На первом этапе необходимо собрать детальную информацию о взламываемой беспроводной сети:
- MAC-адрес точки доступа;
- MAC-адрес активного клиента беспроводной сети;
- название сети (идентификатор сети);
- тип сети;
- тип используемого шифрования;
- номер канала связи.
Для сбора информации о беспроводной сети используются утилиты airmon-ng и airodump-ng, которые входят в пакет aircrack-ng и, естественно, присутствуют в дистрибутиве BackTrack 3 Beta.
Утилита airmon-ng применяется для настройки драйвера беспроводного сетевого адаптера на режим мониторинга беспроводной сети, а утилита airodump-ng позволяет получить необходимую информацию о беспроводной сети.
Последовательность действий в данном случае следующая. Загружаем ноутбук с USB флэш-носителя, на которой предварительно был установлен дистрибутив BackTrack 3 Beta (инструкция по созданию дистрибутива приведена выше). Затем вызываем командную консоль (рис. 1) и запускаем утилиту airmon-ng, входящую в комплект пакета aircrack-ng. Она позволяет определить имеющиеся беспроводные интерфейсы и назначить режим мониторинга сети на один из доступных интерфейсов.
Рис. 1. Запуск командной консоли
Синтаксис использования команды airmon-ng следующий:
airmon-ng <start|stop> <interface> [channel],
где опции <start|stop> определяют начало или останов режима мониторинга; <interface> — беспроводной интерфейс, который применяется для режима мониторинга, а необязательный параметр [channel] задает номер канала в беспроводной сети, который подвергнут мониторингу.
Первоначально команда airmon-ng задается без параметров (рис. 2), что позволяет получить список доступных беспроводных интерфейсов.
Рис. 2. Для получения информации о соответствии
беспроводных адаптеров и интерфейсов запускаем
команду airmon-ng без параметров
Использование интегрированного беспроводного адаптера Intel 3945ABG
Сначала рассмотрим последовательность действий при использовании интегрированного беспроводного адаптера Intel 3945ABG, а затем ситуацию с беспроводным PCMCIA-адаптером TP-LINK TL-WN610G на базе чипа Atheros AR5212/AR5213.
Итак, в случае применения интегрированного беспроводного адаптера Intel 3945ABG в ответ на команду airmon-ng без параметров мы получим соответствие между адаптером и интерфейсом, присвоенным данному адаптеру. В нашем случае адаптеру Intel 3945ABG присвоен интерфейс wlan0 (рис. 3).
Рис. 3. Адаптеру Intel 3945ABG присвоен
интерфейс wlan0
Отметим, что если в компьютере используется единственный беспроводной адаптер, то при выполнении команды airmon-ng соответствующий ему интерфейс автоматически переводится в режим мониторинга. Если в компьютере имеется несколько беспроводных интерфейсов, то необходимо явно указать, какой интерфейс нужно перевести в режим мониторинга, но, поскольку в нашем случае имеется всего один беспроводной интерфейс, достаточно выполнить команду airmon-ng без параметров.
После того как беспроводной адаптер переведен в режим мониторинга, можно приступать к сбору подробной информации о беспроводной сети. Для этого используется утилита airodump-ng. Она применяется как для перехвата пакетов в беспроводных сетях, так и для сбора информации о беспроводной сети. Синтаксис использования команды следующий:
airodump-ng <options> <interface>.
Возможные опции команды отображены в табл. 2.
Первоначально при запуске команды airodump-ng в качестве параметра нужно указать лишь название беспроводного интерфейса, который используется в режиме мониторинга, то есть: airodump-ng wlan0. Итак, набираем в командной строке airodump-ng wlan0 и в ответ получаем подробную информацию обо всех беспроводных сетях, в зоне действия которых мы находимся (рис. 4).
Рис. 4. Команда airodump-ng wlan0 позволяет получить информацию
обо всех беспроводных сетях
Нас интересует наша экспериментальная тестовая сеть, которой мы присвоили идентификатор (ESSID) ComputerPress. Как видите, команда airodump-ng wlan0 позволяет получить всю необходимую информацию о сети, а именно:
- MAC-адрес точки доступа;
- MAC-адрес активного клиента беспроводной сети;
- тип сети;
- ESSID сети;
- тип шифрования;
- номер канала связи.
В нашем примере для сети ComputerPress применяются следующие атрибуты:
- MAC-адрес точки доступа — 00:18:E7:04:5E:65;
- MAC-адрес клиента — 00:15:AF:2D:FF:1B;
- тип сети — 802.11g (54);
- ESSID сети — ComputerPress;
- тип шифрования — WEP;
- номер канала связи — 12.
Отметим, что утилита airodump-ng позволяет определять идентификатор сети (ESSID) независимо от того, установлен на точке доступа режим скрытого идентификатора (Hidden SSID) или нет.
Далее, дабы отфильтровать все лишнее, можно еще раз использовать команду airodump-ng, указав в качестве параметров не только интерфейс, но и номер канала связи: airodump-ng –channel 12 wlan0. После этого мы получим информацию только об интересующей нас беспроводной сети (рис. 5).
Рис. 5. Использование команды airodump-ng в режиме фильтра
по каналам связи позволяет отфильтровать всю лишнюю информацию
Использование PCMCIA-адаптера TP-LINK TL-WN610G на базе чипа Atheros AR5212/AR5213
При применении внешнего PCMCIA-адаптера на базе чипа серии Atheros (в данном случае название адаптера абсолютно неважно) последовательность действий несколько иная.
Прежде всего для использования внешнего адаптера необходимо отключить интегрированный адаптер. Сделать это можно либо кнопкой (если таковая имеется), либо комбинацией клавиш, либо в настройках BIOS (в различных ноутбуках интегрированный беспроводной адаптер отключается по-разному). После этого вставляем PCMCIA-карту и перезагружаем ноутбук.
Как обычно, вызываем командную консоль и запускаем команду airmon-ng без параметров, чтобы получить список доступных беспроводных интерфейсов.
В случае применения интегрированного беспроводного адаптера на базе чипа серии Atheros в ответ на команду airmon-ng без параметров мы получим соответствие между адаптером и интерфейсом, присвоенным данному адаптеру. В нашем случае адаптеру на чипе Atheros присвоен интерфейс wifi0 и еще один виртуальный интерфейс ath0, порождаемый интерфейсом wifi0 (рис. 6). Отметим, что интерфейсу wifi0 присвоен драйвер madwifi-ng, который как раз поддерживает режим мониторинга.
Рис. 6. Адаптеру на чипе Atheros присвоен интерфейс wifi0
Для того чтобы перевести наш беспроводной адаптер в режим мониторинга, выполняем команду airmon-ng start wifi0. В результате у нас появляется еще один виртуальный интерфейс ath1 (рис. 7). Самое главное, что режим мониторинга реализуется именно через него (monitor mode enabled).
Рис. 7. Перевод интерфейса wifi0 в режим мониторинга
Виртуальный интерфейс ath0 нам не нужен, и его необходимо отключить. Для этого используем команду ifconfig ath0 down (рис. 8).
Рис. 8. Отключение интерфейса ath0
После этого можно переходить к этапу сбора информации о беспроводной сети с помощью команды airodump-ng ath1 (рис. 9). Отметим, что если при ее выполнении не производится перехват пакетов, значит интерфейс ath0 не был отключен и необходимо повторить процедуру отключения.
Рис. 9. Сбор информации о беспроводных сетях с помощью команды
airodump-ng ath1
Чтобы убедиться, что все настроено правильно и именно интерфейс ath1 находится в режиме мониторинга, удобно использовать команду iwconfig (не путать с командой ifconfig) без параметров. Она позволяет просмотреть информацию обо всех сетевых интерфейсах.
В нашем случае, как видно из принт-скрина (рис. 10), интерфейс ath1 находится в режиме мониторинга (Mode: Monitor), а MAC-адрес нашей сетевой карты — 00:14:78:ed:d6:d3. Надпись Access point: 00:14:78:ed:d6:d3 в данном случае не должна смущать. Конечно, адаптер не является точкой доступа, однако в режиме мониторинга (перехвата пакетов) он выступает именно в роли точки доступа.
Рис. 10. Просмотр информации о сетевых интерфейсах
с помощью команды iwconfig
В заключение отметим, что посредством аналогичной процедуры настройки внешнего беспроводного адаптера (перевода адаптера в режим мониторинга) настраиваются и другие внешние адаптеры, основанные на других чипах. Правда, в этом случае название беспроводного интерфейса будет иным.
Перехват пакетов
После того как вся необходимая информация о сети собрана, можно перейти к этапу перехвата пакетов. Для этого опять-таки используется утилита airodump-ng, однако синтаксис команды airodump-ng уже иной и зависит от типа шифрования.
В том случае, когда в сети применяется WEP-шифрование, необходимо перехватить только пакеты, содержащие вектор инициализации (IV-пакеты), и записать их в файл, который в дальнейшем будет использоваться для подбора ключа.
Если же в сети применяется WPA-PSK-шифрование, то необходимо перехватить пакеты, в которых содержится информация о процедуре аутентификации клиента в сети (процедура handshake).
Случай WEP-шифрования
Сначала рассмотрим вариант, когда в сети используется WEP-шифрование. Как уже отмечалось, в этом случае нам нужно отфильтровать только пакеты, содержащие вектор инициализации (IV-пакеты), и записать их в файл.
Поскольку атакуемая сеть является сетью типа 802.11g и в ней применяется WEP-шифрование, а передача ведется на 12-м канале, то синтаксис команды для перехвата пакетов может быть следующий (см. табл. 2):
airodump-ng --ivs --band g --channel 12 --write dump wlan0
В этом случае будут собираться только IV-пакеты, которые будут записываться в файл с именем dump, а перехват каналов будет производиться на 12-м канале. Параметр -band g указывает на то, что используется сеть стандарта 802.11g, а параметр wlan0 задает имя интерфейса в режиме мониторинга. В данном примере предполагается, что применяется интегрированный беспроводной адаптер Intel 3945ABG.
Заметим, что при записи пакетов в файл ему автоматически присваивается расширение ivs (в случае сбора IV-пакетов). При задании имени файла с перехваченными пакетами можно задать только имя файла, а можно прописать и полный путь к файлу. В случае если задается только имя файла, файл будет создаваться в рабочей директории программы. Пример использования команды, когда прописывается полный путь к файлу, следующий:
airodump-ng --ivs --band g --channel 12
--write /mnt/sda1/dump wlan0
В этом примере файл dump.ivs будет создан в директории /mnt/sda1. Переводя это на язык Windows-пользователей, мы создадим файл dump.ivs на жестком диске в корневой директории C:\.
Нужно отметить, что к сохраняемым файлам перехваченных пакетов автоматически добавляется не только расширение, но и нумерация файлов. К примеру, если вы впервые запускаете команду на перехват пакетов с их сохранением в файле dump, то этот файл будет сохраняться под именем dump-01.ivs. При втором запуске перехвата пакетов с их сохранением в файле dump ему будет присвоено имя dump-02.ivs и т.д.
В принципе, если вы забыли, где расположен сохраненный вами файл перехвата, то его достаточно просто найти. Выполните команду mc, и вы запустите оболочку, напоминающую Norton Commander. С ее помощью (через клавишу F9) легко найти местонахождение любого файла.
После ввода в командной строке команды на перехват пакетов беспроводной адаптер начнет перехватывать пакеты и сохранять их в указанный файл (рис. 11). При этом количество перехваченных пакетов интерактивно отображается в утилите airodump-ng, а для остановки этого процесса нужно просто нажать комбинацию клавиш Ctrl + C.
Рис. 11. Захват IV-пакетов при помощи утилиты airodump-ng в случае
WEP-шифрования
Вероятность успешного подбора ключа зависит от количества накопленных IV-пактов и длины ключа. Как правило, при длине ключа 128 бит достаточно накопить порядка 1-2 млн IV-пакетов, а при длине ключа 64 бита — порядка нескольких сотен тысяч пакетов. Однако заранее длина ключа неизвестна, и никакая утилита не позволяет ее определить. Поэтому для анализа желательно перехватить не менее 1,5 млн пакетов.
При использовании внешнего беспроводного адаптера на базе чипа Atheros алгоритм перехвата пакетов точно такой же, но, естественно, в команде airodump-ng необходимо указать в качестве параметра интерфейс ath1.
Нужно отметить, что для сбора пакетов более эффективно применять именно интегрированный беспроводной адаптер Intel 3945ABG. При одинаковой интенсивности трафика скорость сбора пакетов при использовании адаптера Intel 3945ABG выше, чем при применении адаптера на базе чипа Atheros. В то же время отметим, что существуют ситуации (о них мы расскажем далее), когда использовать адаптер Intel 3945ABG невозможно.
При перехвате пакетов часто возникает ситуация, когда отсутствует интенсивный обмен трафиком между точкой доступа и клиентом, поэтому, чтобы накопить требуемое для успешного взлома сети количество пакетов, приходится очень долго ждать. В литературе нередко можно встретить совет, что процесс сбора пакетов можно ускорить, если принудительно заставить клиента общаться с точкой доступа с помощью утилиты aireplay-ng. Более подробно аспекты использования данной утилиты мы рассмотрим далее, а пока лишь отметим, что применять ее для повышения трафика IV-пакетов совершенно неэффективно. Собственно, вряд ли она вам поможет. Если клиент сети неактивен и нет интенсивного трафика между точкой доступа и клиентом, то единственное, что остается, — это ждать. А использовать утилиту airodump-ng бессмысленно. Более того, она не работает с адаптером Intel 3945ABG (во всяком случае, с его текущей версией) и попытка ее применения приводит к зависанию ноутбука.
Случай WPA-шифрования
При WPA-шифровании в беспроводной сети алгоритм перехвата пакетов несколько иной. В данном случае нам не нужно отфильтровывать IV-пакеты, поскольку при WPA-шифровании их просто не существует, но и захватывать все пакеты подряд нам тоже не имеет смысла. Собственно, все, что требуется, — это небольшая часть трафика между точкой доступа и клиентом беспроводной сети, в которой бы содержалась информация о процедуре аутентификации клиента в сети (процедура handshake). Но для того, чтобы перехватить процедуру аутентификации клиента в сети, прежде ее необходимо принудительно инициировать. И вот тут как раз потребуется помощь утилиты aireplay-ng.
Данная утилита предназначена для проведения нескольких типов атак на точку доступа. В частности, для наших целей нам необходимо воспользоваться атакой деаутентификации, которая приводит к разрыву соединения между точкой доступа и клиентом с последующей процедурой установления соединения.
Сразу отметим, что драйверы не для всех чипов беспроводных адаптеров совместимы с утилитой aireplay-ng и тот факт, что адаптер может работать в режиме мониторинга, то есть совместим с командами airmon-ng и airodump-ng, еще не гарантирует, что он будет совместим с командой aireplay-ng.
Если к вашему беспроводному адаптеру есть драйверы, совместимые с утилитой aireplay-ng, то вам крупно повезло, поскольку во многих случаях эта утилита оказывается просто незаменимой.
Итак, при использовании WPA-шифрования алгоритм перехвата пакетов будет следующим. Открываем две консольные сессии и в первой сессии запускаем команду на принудительное разъединение сети с последующей повторной идентификацией клиента (утилита aireplay-ng, атака деаутентификации), а во второй сессии с паузой в одну-две секунды запускаем команду на перехват пакетов (утилита airodump-ng).
В команде aireplay-ng применяется следующий синтаксис:
aireplay-ng <options> <replay interface>
Данная команда имеет очень большое количество разнообразных опций, с которыми можно ознакомиться, запустив команду без параметров.
Для наших целей синтаксис команды будет выглядеть так:
aireplay-ng -e ComputerPress -a 00:18:c7:04:5e:65
-c 00:19:e0:82:20:42 --deauth 10 ath1
В этом случае параметр -e ComputerPress задает идентификатор (ESSID) беспроводной сети; параметр -a 00:18:c7:04:5e:65 — MAC-адрес точки доступа; параметр -c 00:19:e0:82:20:42 — MAC-адрес клиента беспроводной сети; опция --deauth 10 — атаку на разрыв соединения (десять раз подряд) с последующей аутентификацией клиента, а ath1 определяет интерфейс, который находится в режиме мониторинга.
В ответ на эту команду десять раз подряд будет произведена процедура разрыва соединения клиента с точкой доступа с последующей процедурой аутентификации (рис. 12).
Рис. 12. Выполнение атаки деаутентификации клиента
с использованием утилиты aireplay-ng
Для команды на перехват пакетов при применении WPA-шифрования в нашем случае можно использовать следующий синтаксис:
airodump-ng --band g --channel 12
--write /mnt/sda1/WPAdump ath1
Обратите внимание, что в синтаксисе команды airodump-ng отсутствует фильтр IV-пакетов (--ivs). Файлу WPAdump будет автоматически присваиваться порядковый номер и расширение *.cap. Так, при первом запуске команды файл с перехваченными пакетами будет расположен в директории /mnt/sda1 и ему будет присвоено имя WPAdump-01.cap.
Процесс захвата пакетов следует продолжать всего несколько секунд, поскольку при активированной атаке деаутентификации вероятность захвата handshake-пакетов практически стопроцентная (рис. 13).
Рис. 13. Процесс перехвата пакетов с помощью утилиты airodump-ng
при запущенной атаке деаутентификации
Анализ пакетов
На последнем этапе производится анализ перехваченной информации посредством утилиты aircrack-ng. В случае WEP-шифрования вероятность подбора ключа зависит от количества собранных IV-пакетов, а в случае WPA/WPA2-шифрования — от используемого словаря.
Естественно, синтаксис команды aircrack-ng различен для WEP- и WPA-PSK-шифрования. Общий синтаксис команды следующий:
aircrack-ng [options] <capture file(s)>
Возможные опции команды представлены в табл. 3. Отметим, что в качестве файлов, содержащих перехваченные пакеты (capture file(s)), можно указывать несколько файлов с расширением *.cap или *.ivs. Кроме того, при взломе сетей с WEP-шифрованием утилиты airodump-ng и aircrack-ng могут запускаться одновременно (применяются две консольные сессии). При этом команда aircrack-ng будет автоматически обновлять базу IV-пакетов.
Случай WEP-шифрования
При использовании WEP-шифрования основная проблема заключается в том, что мы заранее не знаем длину ключа, применяемого для шифрования, и нет никакой возможности выяснить ее. Поэтому можно попытаться перебрать несколько вариантов длины ключа, которая задается параметром -n. Если же данный параметр не указывается, то по умолчанию длина ключа устанавливается в 104 бита (-n 128).
Если известна некоторая информация о самом ключе (например, он состоит только из цифр, или только из букв, или только из набора букв и цифр, но не содержит специальных символов), то можно воспользоваться опциями -с, -t и -h.
В нашем случае для подбора ключа мы применяли команду aircrack-ng в следующем синтаксисе:
aircrack-ng -a 1 -e ComputerPress -b 00:18:c7:04:5e:65
-m 00:19:e0:82:20:42 -n 128 /mnt/sda1/dump-01.ivs
Здесь указание MAC-адреса точки доступа и клиента, а также ESSID сети является излишним, поскольку использовались всего одна точка доступа и один беспроводной клиент. Поэтому можно также применять команду:
aircrack-ng -a 1 -n 128 /mnt/sda1/dump-01.ivs
Однако если клиентов несколько и имеется несколько точек доступа, то необходимо указывать и эти параметры.
В результате нам удалось подобрать 128-битный ключ всего за 3 секунды (рис. 14)! Как видите, взлом сети на основе WEP-шифрования не представляет серьезной проблемы, однако, как мы уже отмечали, в настоящее время WEP-шифрование практически не применяется по причине его уязвимости.
Рис. 14. Подбор 128-битного ключа с помощью утилиты aircrack-ng
Случай WPA-шифрования
При WPA-PSK-шифровании для подбора пароля используется словарь. Если пароль имеется в словаре, то он будет подобран — это только вопрос времени. Если же пароля в словаре нет, то найти его не удастся.
В программе aircrack-ng имеется собственный словарь password.lst, расположенный в директории /pentest/wireless/aircrack-ng/test/. Однако он очень маленький и содержит исключительно английские слова. Вероятность того, что вам удастся подобрать пароль с помощью этого словаря, ничтожно мала, поэтому лучше сразу подключить нормальный словарь. В нашем случае мы создали словарь password.lst в директории /mnt/sda1/.
При подключении внешних словарей нужно помнить, что они должны иметь расширение *.lst. Если вы используете словарь с расширением *.dic, то просто измените его.
Большую подборку хороших словарей можно найти на сайте www.insidepro.com. Если вы хотите использовать все эти словари, то прежде необходимо «слить» их в единый словарь, который можно назвать, например, password.lst.
Если же словари не помогают, то, скорее всего, пароль представляет собой бессмысленный набор символов или сочетание символов и цифр. Все-таки словари содержат слова или фразы, а также удобные, легко запоминающиеся сочетания клавиш. Понятно, что произвольный набор символов в словарях отсутствует. Но даже в этом случае выход есть. Некоторые утилиты, предназначенные для подбора паролей, умеют генерировать словари из заданного набора символов при указанной максимальной длине слова. Примером такой программы является утилита PasswordPro v.2.4.2.0. (www.insidepro.com).
Итак, для подбора паролей мы воспользовались следующей командой:
aircrack-ng -a 2 -e ComputerPress -b 00:18:c7:04:5e:65
–w /mnt/sda1/password.lst /mnt/sda1/WPAdump-01.cap,
где -a 2 — задает, что используется WPA-PSK-шифрование; -e ComputerPress — указывает, что идентификатор сети ComputerPress; -b 00:18:c7:04:5e:65 — указывает MAC-адрес точки доступа; –w /mnt/sda1/password.lst указывает путь к словарю; /mnt/sda1/WPAdump-01.cap указывает путь к файлу.
В нашем случае мы применяли словарь размером 60 Мбайт и смогли подобрать пароль достаточно быстро (рис. 15). Правда, мы заранее знали, что пароль имеется в словаре, поэтому подбор пароля был лишь вопросом времени.
Рис. 15. Подбор WPA-PSK-пароля с помощью утилиты aircrack-ng
Тем не менее еще раз отметим, что вероятность взлома WPA-PSK-пароля с помощью словаря близка к нулю. Если пароль задан не в виде какого-либо слова, а представляет собой случайное сочетание букв и цифр, то подобрать его практически невозможно. Кроме того, необходимо учесть, что в программе aircrack-ng предусмотрен только один метод работы со словарем — метод перебора. А такие интеллектуальные способы работы со словарем, как проверка дважды записанного слова, проверка обратного порядка символов слова, замена латинской раскладки и т.д., увы, не предусмотрены. Конечно, все это может быть реализовано в последующих версиях программы, но и в таком случае эффективность подбора по словарю будет невысокой.
Чтобы убедить читателей в том, что вскрыть WPA-шифрование практически невозможно, давайте немного посчитаем.
Пароли, даже если они являются несвязным набором символов, обычно имеют длину от 5 до 15 символов. Каждый символ может быть одной из 52 (с учетом регистра) букв английского алфавита, одной из 64 (с учетом регистра) букв русского алфавита и одной из 10 цифр. Кроме того, учтем еще и спецсимволы. Конечно, можно предположить, что спецсимволы никто не использует, а пароли набирают из букв английского алфавита и цифр. Но даже в этом случае каждый символ можно набрать одним из 62 вариантов. При длине пароля в 5 символов количество возможных комбинаций составит 625 = 916 132 832, а размер такого словаря будет более 2,6 Гбайт. При длине пароля 10 символов количество возможных комбинаций составит уже 8,4·1017, а размер словаря — примерно 6 млн Tбайт. Если учесть, что скорость перебора возможных паролей по словарю не очень высокая и равна примерно 300 паролей в секунду, то получится, что для перебора всех возможных паролей в таком словаре понадобится ни много ни мало 100 млн лет!
Обход защиты фильтра по MAC-адресам
В самом начале статьи мы отмечали, что помимо WEP- и WPA-PSK-шифрования часто используются и такие функции, как режим скрытого идентификатора сети и фильтрация по MAC-адресам. Они традиционно относятся к функциям обеспечения безопасности беспроводного соединения.
Как мы уже продемонстрировали на примере пакета aircrack-ng, полагаться на режим скрытого идентификатора сети нельзя. Утилита airodump-ng все равно покажет вам ESSID сети, который впоследствии можно использовать для создания профиля подключения (несанкционированного!) к сети.
Если же говорить о таком способе безопасности, как фильтрация по MAC-адресам, то и данная мера предосторожности не слишком эффективна. Это своего рода защита от дурака, которую можно сравнить с автосигнализацией.
В Интернете можно найти довольно много разнообразных утилит под Windows, которые позволяют подменять MAC-адрес сетевого интерфейса. В качестве примера можно привести бесплатную утилиту MAC MakeUP (www.gorlani.com/publicprj/macmakeup/macmakeup.asp).
Осуществив подмену MAC-адреса, можно прикинуться своим и реализовать несанкционированный доступ в беспроводную сеть. Причем оба клиента (настоящий и непрошеный) будут совершенно спокойно сосуществовать в одной сети с одним MAC-адресом, более того — в этом случае непрошеному гостю будет присвоен точно такой же IP-адрес, как и у настоящего клиента сети.
В случае Linux-систем вообще не требуется никаких утилит. Достаточно в командной консоли выполнить последовательность следующих команд:
ifconfig wlan0 down
ifconfig wlan0 hw ether [новый MAC-адрес]
ifconfig wlan0 up
Первая команда отключает интерфейс wlan0, вторая — назначает интерфейсу wlan0 новый MAC-адрес, а третья — включает интерфейс wlan0.
При применении дистрибутива BackTrack для замены MAC-адреса можно воспользоваться командой macchanger. Для замены MAC-адреса используется следующий синтаксис:
ifconfig wlan0 down
macchanger -m [новый MAC-адрес] wlan0
ifconfig wlan0 up
Можно применять команду macchanger с параметром –r (macchanger -r wlan0) — в этом случае интерфейсу wlan0 будет присвоен случайный MAC-адрес.
Выводы
Итак, преодолеть всю систему безопасности беспроводной сети на базе WEP-шифрования не составляет никакого труда. В то же время нужно отметить, что WEP-протокол уже морально устарел и практически не используется. Действительно, какой смысл настраивать в беспроводной сети уязвимое WEP-шифрование, если все беспроводные точки доступа и сетевые адаптеры поддерживают WPA/WPA2-PSK-шифрование? А потому рассчитывать, что вам удастся найти такую древнюю сеть, не приходится.
Со взломом сетей, где применяется WPA-шифрование, дела обстоят, с точки зрения злоумышленника, довольно бесперспективно. При выборе пароля достаточно скомбинировать цифры и буквы верхнего и нижнего регистров — и никакой словарь не поможет. Подобрать такой пароль практически невозможно.