Аудит беспроводных сетей. Аудит безопасности беспроводных сетей Wi-Fi

Последние несколько лет наблюдается расцвет беспроводных технологий. Все большую популярность приобретают сети Wi-Fi (сети стандартов 802.11a/b/g), и если раньше речь шла преимущественно об использовании беспроводных сетей в офисах и хот-спотах, то теперь они широко применяются и в домашних условиях, и для развертывания мобильных офисов (офисы в условиях командировок). Специально для домашних пользователей и небольших офисов продаются точки беспроводного доступа и беспроводные маршрутизаторы класса SOHO, а для мобильных пользователей - карманные беспроводные маршрутизаторы. Однако, принимая решение о переходе к беспроводной сети, следует помнить, что на нынешнем этапе развития она имеет один существенный недостаток - несовершенство в плане безопасности. В данной статье мы расскажем о наиболее уязвимых местах беспроводных сетей и на практических примерах покажем, каким образом они взламываются. Полученные знания можно с успехом использовать для аудита безопасности беспроводных сетей, что позволит избежать традиционных ошибок, допускаемых при развертывании беспроводных сетей. Сначала мы рассмотрим основные меры безопасности, применяемые сегодня для защиты беспроводных сетей, а затем расскажем о том, как они преодолеваются злоумышленниками.

Методы защиты беспроводных сетей

Стандарты беспроводных сетей 802.11a/b/g предусматривают несколько механизмов обеспечения безопасности:

  • режим аутентификации и шифрования данных по протоколу 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-шифрования данных.

Протокол WAP

В 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, криптоалгоритмом.

При развертывании беспроводных сетей в домашних условиях или в небольших офисах обычно используется вариант протокола безопасности WPA на основе общих ключей - WPA-PSK (Pre Shared Key). В дальнейшем мы будем рассматривать только вариант WPA-PSK, не касаясь вариантов протокола WPA, ориентированных на корпоративные сети, где авторизация пользователей производится на отдельном RADIUS-сервере.

При использовании WPA-PSK в настройках точки доступа и профилях беспроводного соединения клиентов указывается пароль длиной от 8 до 63 символов.

Фильтрация MAC-адресов

Фильтрация MAC-адресов, которая поддерживается всеми современными точками доступа и беспроводными маршрутизаторами, хотя и не является составной частью стандарта 802.11, тем не менее, как считается, позволяет повысить уровень безопасности беспроводной сети. Для реализации данной функции в настройках точки доступа создается таблица MAC-адресов беспроводных адаптеров клиентов, авторизованных для работы в данной сети.

Режим скрытого идентификатора сети SSID

Еще одна мера предосторожности, которую часто используют в беспроводных сетях, - это режим скрытого идентификатора сети. Каждой беспроводной сети назначается свой уникальный идентификатор (SSID), который представляет собой название сети. При попытке пользователя войти в сеть драйвер беспроводного адаптера прежде сканирует эфир на предмет наличия в ней беспроводных сетей. При использовании режима скрытого идентификатора (как правило, этот режим называется Hide SSID) сеть не отображается в списке доступных и подключиться к ней можно только в том случае, если, во-первых, точно известен ее SSID, а во-вторых, заранее создан профиль подключения к этой сети.

Взлом беспроводных сетей

Ознакомившись с основными методами защиты сетей стандартов 802.11a/b/g, рассмотрим способы их преодоления. Отметим, что для взлома WEP- и WPA-сетей используется один и тот же инструментарий, поэтому сначала расскажем, что входит в арсенал злоумышленника.

Прежде всего нам потребуется ноутбук с беспроводным адаптером. Основная проблема, которая возникает в процессе подбора инструментов для взлома беспроводных сетей, - это обеспечение совместимости между чипом беспроводного адаптера, используемым программным обеспечением, и операционной системой.

Выбор беспроводного адаптера

Дело в том, что большинство утилит, позволяющих взламывать беспроводные сети, «заточены» под Linux-системы. Существуют версии некоторых утилит и под Windows XP. Однако, в зависимости от чипа беспроводного адаптера, определенные беспроводные карты можно использовать с утилитами как под Linux-, так и под Windows XP-системы, а некоторые беспроводные адаптеры могут применяться с утилитами только под Linux- либо только под Windows XP-системы. Имеются беспроводные адаптеры, которые не поддерживаются ни Linux-, ни Windows XP-утилитами. Кроме того, есть такие чипы, которые хотя и поддерживаются утилитами, работают крайне медленно (в смысле захвата и анализа пакетов).

Дело в том, что для выполнения задачи взлома беспроводных сетей необходимы специальные (нестандартные) драйверы для сетевых беспроводных адаптеров. Штатными режимами любого беспроводного адаптера считаются Infrastructure (Basic Service Set, BSS) и ad-hoc (Independent Basic Service Set, IBSS). В режиме Infrastructure каждый клиент подключен к сети через точку доступа, а в режиме ad-hoc беспроводные адаптеры могут общаться друг с другом напрямую, без использования точки доступа. Однако оба эти режима не позволяют беспроводному адаптеру прослушивать эфир и перехватывать пакеты. И в том, и в другом случае сетевой адаптер будет ловить пакеты, которые предназначены лишь для той сети, на которую он настроен. Для того чтобы можно было увидеть другие сети (имеющие скрытый идентификатор ESSID) и захватывать пакеты, существует специальный режим мониторинга (Monitor mode), при переводе в который адаптер не ассоциируется ни с какой конкретной сетью и ловит все доступные пакеты. Обычно драйверы, поставляемые производителем беспроводного адаптера, не поддерживают режим мониторинга, и для того, чтобы задействовать его, необходимо установить специальные драйверы, зачастую написанные группой сторонних разработчиков. Следует сразу отметить, что для операционных систем Windows такие специальные драйверы существуют лишь для беспроводных адаптеров, основанных на чипах Hermes, Realtek, Aironet и Atheros. Поддержка драйвером этого режима для операционных систем семейства Linux/BSD во многом определяется открытостью спецификаций на карту, однако список поддерживаемых устройств значительно шире, чем для семейства Windows. Драйверы для систем на ОС Linux/BSD с поддержкой режима мониторинга можно найти для беспроводных адаптеров на основе следующих чипсетов: Prism, Orinoco, Atheros, Ralink, Aironet, Realtek, Hermes и Intel, при этом драйверы на основе чипов Intel подходят далеко не ко всем устройствам.

В настоящее время все ноутбуки, основанные на мобильной технологии Intel Centrino, имеют встроенные беспроводные адаптеры на базе чипов от Intel (чипы IPW2100, IPW2200, IPW2915, IPW3945), однако для наших целей эти адаптеры подходят плохо - хотя они совместимы с Linux-утилитами, используемыми для взлома, работают эти чипы крайне медленно, а с Windows-утилитами вообще несовместимы.

Выбор операционной системы

Относительно выбора операционной системы можно дать следующие рекомендации. Linux-системы для этих целей более предпочтительны, поскольку при использовании Linux набор возможных инструментов гораздо шире, да и работают Linux-утилиты значительно быстрее. Но это вовсе не означает, что нельзя применять Windows XP вместе с Windows-утилитами. В дальнейшем мы рассмотрим оба варианта взлома беспроводных сетей - то есть с использованием и Linux-, и Windows-утилит. При этом мы прекрасно понимаем, что далеко не все пользователи спешат перейти с Windows на Linux. При всех своих недостатках ОС Windows распространена куда более широко, к тому же для начинающего пользователя она гораздо проще в освоении. Поэтому оптимальным, на наш взгляд, вариантом является применение на ноутбуке в качестве основной операционной системы Windows XP, а для задач взлома беспроводной сети - ОС Linux Live CD, запускающейся с CD-диска и не требующей инсталляции на жесткий диск компьютера. Лучшим решением в нашем случае будет диск BackTrack, который построен на основе ОС Linux (ядро версии 2.6.18.3) и содержит все необходимые пакеты инструментов для взлома сетей. Образ данного диска можно скачать с сайта по ссылке: http://www.remote-exploit.org/backtrack.html .

Набор программного обеспечения

Традиционно для взлома беспроводных сетей используется программный пакет aircrack, который существует в версии как для Windows XP (aircrack-ng 0.6.2-win), так и для Linux (aircrack-ng 0.7). Данный пакет распространяется абсолютно бесплатно, и его можно скачать с официального сайта www.aircrack-ng.org. Искать какие-либо другие утилиты просто не имеет смысла, поскольку данный пакет является лучшим в своем классе решением. Кроме того, он (естественно, Linux-версия) входит в диск BackTrack.

Взлом беспроводных сетей с использованием Live CD-диска BackTrack

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

Взлом любой беспроводной сети с использованием диска BackTrack производится в три этапа (табл. 1):

  • cбор информации о беспроводной сети;
  • захват пакетов;
  • анализ пакетов.

На первом этапе необходимо собрать детальную информацию о беспроводной сети, которая подвергается взлому: MAC-адреса точки доступа и активного клиента беспроводной сети, название сети (идентификатор сети) и тип используемого шифрования. Для этого применяются утилиты airmon-ng, airodump-ng и Kismet - первая из них необходима для настройки драйвера беспроводного сетевого адаптера на режим мониторинга беспроводной сети, а остальные две позволяют получить необходимую информацию о беспроводной сети. Все эти утилиты уже имеются на диске BackTrack.

Таблица 1. Этапы взлома беспроводной сети с использованием Live CD-диска BackTrack

Номер этапа

Описание

Используемые утилиты

Результат

Сбор информации о беспроводной сети

airmon-ng airodump-ng Kismet

MAC-адрес точки доступа, MAC-адрес активного клиента, тип сети, идентификатор сети, тип шифрования (WEP, WPA-PSK), номер канала связи

Перехват пакетов

airodump-ng Kismet airoplay-ng

Анализ пакетов

Подбор ключа

Подбор пароля

На следующем этапе производится захват пакетов с использованием утилиты airodump-ng. В том случае, когда в сети применяется WEP-шифрование, необходимо собрать IV-пакеты, содержащие векторы инициализации. Если трафик в сети невысокий (например, клиент неактивен), то дополнительно для увеличения трафика между клиентом и точкой доступа можно использовать утилиту airoplay-ng.

Если же в сети применяется WPA-PSK-шифрование, то необходимо собрать пакеты, в которых содержится информация о процедуре аутентификации клиента в сети (процедура handshake). Для того чтобы заставить клиента пройти процедуру аутентификации в сети, можно с помощью утилиты airoplay-ng инициировать процесс его принудительного отключения от сети с последующим восстановлением соединения.

На последнем этапе производится анализ перехваченной информации посредством утилиты aircrack-ng. В случае WEP-шифрования вероятность подбора ключа зависит от количества собранных IV-пакетов, а WPA-PSK-шифрования - от словаря, используемого для подбора пароля.

Практические примеры

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

В нашем случае мы имели дело с экспериментальной сетью, состоящей из точки доступа D-Link DWL-7000AP и клиента сети с беспроводным PCI-адаптером Gigabyte GN-WPEAG.

Для взлома сети мы применяли ноутбук с беспроводным PCMCIA-адаптером Gigabyte GN-WMAG на основе чипа Atheros. Отметим, что при использовании диска BackTrack никаких дополнительных драйверов для адаптера Gigabyte GN-WPEAG не требуется - все уже имеется на диске.

Этап 1. Сбор информации о беспроводной сети

Итак, на первом этапе нам нужно собрать информацию о беспроводной сети. Вставляем в ноутбук беспроводной адаптер и загружаем с CD-диска операционную систему. Затем вызываем консоль и запускаем утилиту airmon-ng, входящую в пакет aircrack-ng.

Данная утилита позволяет определить имеющиеся беспроводные интерфейсы и назначить режим мониторинга сети на один из доступных интерфейсов.

Синтаксис использования команды airmon-ng следующий:

airmon-ng ,

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

Первоначально команда airmon-ng задается без параметров, что позволяет получить список доступных беспроводных интерфейсов. К примеру, в нашем случае ответ на команду airmon-ng был следующий:

Usage:airmon-ng

Interface Chipset Driver

wifi0 Atheros madwifi-ng

ath0 Atheros madwifi-ng VAP (parent: wifi0)

Выбрав в качестве беспроводного интерфейса wifi0, вводим команду airmon-ng start wifi0. В результате получаем еще один интерфейс ath1, который находится в режиме мониторинга (рис. 1).

Рис. 1. Установка режима мониторинга беспроводной сети

Далее необходимо запустить утилиту airodump-ng, применяемую одновременно и для захвата пакетов в беспроводных сетях стандарта 802.11, и для сбора информации о беспроводной сети. Синтаксис использования команды следующий:

airodump-ng .

Возможные опции команды отображены в табл. 2.

Таблица 2. Возможные опции команды airodump-ng

Возможное значение

Описание

Сохранять только IV-пакеты

Использовать демон GPS. В этом случае также будут записываться координаты точки приема

Write (или -w)

Название файла

Указание названия файла для записи. При указании только имени файла он будет сохраняться в рабочей директории программы

Записывать все пакеты без фильтрации

Номер канала (от 1 до 11)

Указание номера канала. По умолчанию происходит прослушивание всех каналов

Указание протокола 802.11a/b/g

В нашем случае в режим мониторинга установлен интерфейс ath1.

Однако пока мы не имеем информации о типе сети (802.11a/b/g), типе шифрования в сети, а следовательно, не знаем, какие пакеты нужно перехватывать (все или только IV-пакеты). Поэтому первоначально не стоит использовать опции в команде airodump-ng, а нужно указать только интерфейс - это позволит нам собрать нужную информацию о сети.

Таким образом, на первом этапе запускаем команду airodump-ng посредством следующего синтаксиса:

airodump-ng ath1

Это позволит нам получить необходимую информацию о сети, а именно:

  • MAC-адрес точки доступа;
  • MAC-адрес клиента;
  • тип сети;
  • ESSID сети;
  • тип шифрования;
  • номер канала связи.

В нашем примере, введя команду airodump-ng ath1, мы смогли определить все необходимые параметры сети (рис. 2):

Рис. 2. Сбор информации о сети
с использованием утилиты airodump-ng

  • MAC-адрес точки доступа - 00:0D:88:56:33:B5;
  • MAC-адрес клиента - 00:0E:35:48:C4:76
  • тип сети - 802.11g;
  • ESSID сети - dlinkG;
  • тип шифрования - WEP;
  • номер канала связи - 11.

Отметим, что утилита airodump-ng позволяет определять идентификатор сети (ESSID) независимо от того, установлен ли на точке доступа режим скрытого идентификатора (Hidden SSID) или нет.

Для сбора информации о сети можно также использовать утилиту Kismet, входящую в диск BackTrack, - в отличие от airodump-ng, она позволяет собрать куда больше информации о беспроводной сети и в этом смысле является полноценным и лучшим в своем классе анализатором беспроводных сетей. Данная утилита имеет графический интерфейс (рис. 3), что значительно облегчает работу с ней.

Рис. 3. Сбор информации о сети
с помощью утилиты Kismet

Этап 2. Перехват пакетов

После того как собрана детальная информация о беспроводной сети, можно приступать к перехвату пакетов с помощью тех же утилит, которые применялись для сбора информации о сети, - airodump-ng или Kismet. Однако в данном случае нам понадобится несколько иной синтаксис команд.

WEP-шифрование

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

К примеру, если известно, что атакуемая сеть является сетью типа 802.11g, в ней используется шифрование WEP и передача ведется на 11-м канале, то синтаксис команды для перехвата пакетов может быть следующий:

airodump-ng --ivs –w dump --band g --channel 11 ath1

В данном примере мы записываем в файл с именем dump только IV-пакеты. Вероятность успешного подбора ключа зависит от количества накопленных IV-пактов и длины ключа. Как правило, при длине ключа 128 бит достаточно накопить порядка 1-2 млн IV-пакетов, а при длине ключа 64 бита - порядка нескольких сотен тысяч пакетов. Однако заранее длина ключа неизвестна и никакая утилита не позволяет ее определить. Поэтому для анализа желательно перехватить не менее 1,5 млн пакетов. На рис. 4 показан пример захвата 1 137 637 IV-пакетов в утилите airodump-ng.

Рис. 4. Захват пакетов посредством утилиты airodump-ng

Количество перехваченных пакетов интерактивно отображается в утилите airodump-ng, а для остановки процесса захвата пакетов нужно просто нажать комбинацию клавиш Ctrl+C.

Утилита Kismet также может использоваться для захвата пакетов. Собственно, процесс перехвата начинается сразу после запуска утилиты, а запись производится в файл с расширением dump, который сохраняется в рабочей директории программы. Однако, в отличие от утилиты airodump-ng, в данном случае невозможно отфильтровать только IV-пакеты и задать номер канала связи. Поэтому в случае применения утилиты Kismet эффективность (скорость накапливания) пакетов ниже, а количество пакетов, которые необходимо перехватить, должно быть больше, чем при использовании утилиты airodump-ng.

Часто при перехвате пакетов возникает ситуация, когда отсутствует интенсивный обмен трафиком между точкой доступа и клиентом, поэтому, чтобы накопить требуемое для успешного взлома сети количество пакетов, приходится ждать очень долго. Однако процесс этот можно ускорить, принудительно заставив общаться клиента с точкой доступа с помощью утилиты aireplay-ng (рис. 5). Данная утилита запускается параллельно с утилитой airodump-ng, для чего нужно запустить еще одну консольную сессию.

Рис. 5. Применение утилиты aireplay-ng для инициализации трафика
между точкой доступа и клиентом

Синтаксис команды следующий:

aireplay-ng

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

Для наших целей синтаксис команды будет выглядеть так:

aireplay –ng -e dlinkG -a 00:0d:88:56:33:b5 -c 00:0f:ea:91:7d:95 --deauth 20 ath1

В данном случае параметр -e dlinkG задает идентификатор беспроводной сети; параметр -a 00:0d:88:56:33:b5 - MAC-адрес точки доступа; параметр -c 00:0f:ea:91:7d:95 - MAC-адрес клиента; опция --deauth 20 - атаку на разрыв соединения (20 раз) с последующей аутентификацией клиента. При аутентификации клиента трафик между ним и точкой доступа резко повышается и количество пакетов, которые можно перехватить, возрастает. При необходимости можно увеличить число разрывов соединения или повторять эту команду до тех пор, пока не накопится нужное количество пакетов.

WPA-PSK-шифрование

При WPA-PSK-шифровании в беспроводной сети алгоритм перехвата пакетов несколько иной. В данном случае нам не нужно отфильтровывать IV-пакеты, поскольку при WPA-PSK-шифровании их просто не существует, но и захватывать все пакеты подряд тоже не имеет смысла. Собственно, все, что нам нужно, - это небольшая часть трафика между точкой доступа и клиентом беспроводной сети, в которой бы содержалась информация о процедуре аутентификации клиента в сети (процедура handshake). Но для того, чтобы перехватить процедуру аутентификации клиента в сети, прежде ее необходимо принудительно инициировать с помощью утилиты aireplay-ng.

Поэтому при WPA-PSK-шифровании алгоритм перехвата пакетов будет следующим. Открываем две консольные сессии и в первой сессии запускаем команду на принудительное разъединение сети с последующей повторной идентификацией клиента (утилита aireplay-ng, атака деаутентификации), а во второй сессии с паузой в одну-две секунды запускаем команду на перехват пакетов (утилита airodump-ng). Синтаксисы команд следующие:

aireplay–ng -e dlinkG -a 00:0d:88:56:33:b5 -c 00:0f:ea:91:7d:95 -deauth 10 ath1

airodump-ng –w dump -band g -channel 11 ath1

Как видите, синтаксис команды aireplay-ng точно такой же, как и при WEP-шифровании, когда данная команда использовалась для инициализации трафика между точкой доступа и клиентом сети (единственное различие - это меньшее количество пакетов на деаутентификацию). В синтаксисе команды airodump-ng отсутствует фильтр IV-пакетов.

Процесс захвата пакетов нужно продолжать всего несколько секунд, поскольку при активированной атаке деаутентификации вероятность захвата handshake-пакетов практически стопроцентная.

Этап 3. Анализ пакетов

На последнем этапе проводится анализ перехваченных пакетов с использованием утилиты aircrack-ng, которая запускается в консольной сессии. Естественно, синтаксис команды aircrack-ng различен для WEP- и WPA-PSK-шифрования. Общий синтаксис команды следующий:

aircrack-ng

Возможные опции команды представлены в табл. 3. Отметим, что в качестве файлов, содержащих перехваченные пакеты (capture file(s)), можно указывать несколько файлов с расширением *.cap или *.ivs. Кроме того, при взломе сетей с WEP-шифрованием утилиты airodump-ng и aircrack-ng могут запускаться одновременно (применяются две консольные сессии). При этом aircrack-ng автоматически будет обновлять базу IV-пакетов.

Таблица 3. Возможные опции команды aircrack-ng

Возможное значение

Описание

1 = static WEP, 2 = WPA-PSK

Задает тип атаки (WEP или WPA-PSK)

Если задана опция, будут использоваться все IV-пакеты с одним и тем же значением ESSID. Данная опция также применяется для взлома сетей WPA-PSK, если ESSID не широковещательный (режим скрытого идентификатора сети)

MAC-адрес точки доступа

Выбор сети на основе MAC-адреса точки доступа

Режим скрытой работы. Информация не отображается до тех пор, пока не найден ключ или ключ невозможно подобрать

Для WEP-сетей ограничивает подбор ключа только набором цифр и букв

Для WEP-сетей ограничивает подбор ключа только набором шестнадцатеричных символов

Для WEP-сетей ограничивает подбор ключа только набором цифр

Для WEP-сетей задает начало ключа в шестнадцатеричном формате. Используется для отладки программы

MAC-адрес клиента

Для WEP-сетей задает фильтр пакетов по MAC-адресу клиента. -m ff:ff:ff:ff:ff:ff используется для сбора всех IV-пакетов

64 (для 40-битного ключа) 128 (для 104-битного ключа) 152 (для 128-битного ключа) 256 (для 232-битного ключа) 512 (для 488-битного ключа)

Для WEP-сетей задает длину ключа. По умолчанию длина ключа составляет 104 бита

Для WEP-сетей указывает на сбор IV-пакетов, которые имеют заданный индекс ключей (от 1 до 4). По умолчанию данная опция игнорируется

Параметр применяется при взломе WEP-сетей - для 104-битного ключа значение по умолчанию равно 2, для 40-битных ключей - 5. Более высокое значение данного параметра позволяет вычислять ключи с меньшим количеством пакетов, но за более длительное время

Используется при взломе WEP-сетей. Данный параметр позволяет исключить конкретные типы korek-атак (всего существует 17 типов korek-атак)

Применяется при взломе WEP-сетей. Запрещает поиск последнего символа в ключе

Используется при взломе WEP-сетей. Разрешает поиск последнего символа в ключе (используется по умолчанию)

Применяется при взломе WEP-сетей. Разрешает поиск двух последних символов в ключе

Используется при взломе WEP-сетей. Запрещает применение нескольких процессоров в SMP-системах

Применяется при взломе WEP-сетей. Позволяет использовать специальный (экспериментальный) тип атаки для подбора ключа. Применяется в случае, когда стандартные атаки не позволяют найти ключ при использовании более 1 млн IV-пакетов

Путь к словарю

При WPA-PSK-атаке задает путь к используемому словарю

При использовании WEP-шифрования основная проблема заключается в том, что мы заранее не знаем длину ключа, применяемого для шифрования. Поэтому можно попытаться перебрать несколько вариантов длины ключа, которая задается параметром -n. Если же данный параметр не указывается, то по умолчанию длина ключа устанавливается в 104 бита (-n 128).

Если известна некоторая информация о самом ключе (например, он состоит только из цифр, или только из букв, или только из набора букв и цифр, но не содержит специальных символов), то можно воспользоваться опциями -с, -t и -h.

В нашем случае мы применяли команду aircrack-ng в следующем синтаксисе:

aircrack-ng –a 1 –e dlinkG –b 00:0d:88:56:33:b5 –c 00:0f:ea:91:7d:95 –n 128 dump.ivs.

Здесь указание MAC-адреса точки доступа и клиента, а также ESSID сети является излишним, поскольку использовались всего одна точка доступа и один беспроводной клиент. Однако если клиентов несколько и имеется несколько точек доступа, то необходимо указывать и эти параметры.

В результате нам удалось подобрать 128-битный ключ всего за 25 с (рис. 6). Как видите, взлом сети на основе WEP-шифрования не представляет серьезной проблемы, однако он далеко не всегда заканчивается успехом. Может оказаться, что для подбора ключа накоплено недостаточно IV-пакетов.

Рис. 6. Подбор 128-битного ключа
с использованием утилиты aircrack-ng

При WPA-PSK-шифровании используется следующий синтаксис команды:

aircrack-ng –a 2 –e dlinkG–b 00:0d:88:56:33:b5 –w dict dump.cap.

В данном случае вероятность положительного результата, то есть вероятность подбора пароля целиком, зависит от применяемого словаря. Если пароль в словаре есть, то он будет найден. Словарь, используемый программой aircrack-ng, необходимо предварительно подмонтировать в рабочую папку программы или же прописать полный путь к словарю. Подборку хороших словарей можно найти на сайте www.insidepro.com. Если же и они не помогут, то, скорее всего, пароль представляет собой бессмысленный набор символов. Все-таки словари содержат слова или фразы, а также удобные, легко запоминающиеся сочетания клавиш. Понятно, что произвольный набор символов в словарях отсутствует. Но даже в этом случае выход есть. Некоторые утилиты, предназначенные для подбора паролей, умеют генерировать словари из заданного набора символов и максимальной длины слова. Примером такой программы является PasswordPro v.2.2.5.0.

Тем не менее еще раз отметим, что вероятность взлома WPA-PSK-пароля очень невысока. Если пароль задан не в виде какого-либо слова, а представляет собой случайное сочетание букв и цифр, то подобрать его практически невозможно.

Обобщение

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

Этап 1. Сбор информации о сети:

Airmon-ng start wifi0;

Airodump-ng ath1.

Этап 2. Сбор пакетов:

  • случай WEP:

Airodump-ng --ivs -w dump --band g --channel 11 ath1,

Aireplay -ng -e dlinkG -a 00:0d:88:56:33:b5 -c 00:0f:ea:91:7d:95 --deauth 20 ath1

(при недостаточном трафике. Команда запускается в отдельной консольной сессии);

  • случай WPA-PSC:

- aireplay-ng -e dlinkG -a 00:0d:88:56:33:b5 -c 00:0f:ea:91:7d:95 --deauth 10 ath1,

Airodump-ng -w dump --band g --channel 11 ath1

(команда запускается в отдельной консольной сессии).

Этап 3. Анализ пакетов:

  • случай WEP:

Aircrack-ng -a 1 -e dlinkG -b 00:0d:88:56:33:b5 -c 00:0f:ea:91:7d:95 -n 128 dump.ivs;

  • случай WPA-PSK:

Aircrack-ng -a 2 -e dlinkG-b 00:0d:88:56:33:b5 -w dict dump.cap.

Взлом беспроводных сетей с помощью пакета aircrack-ng 0.6.2-win и ОС Windows XP

Как мы уже отмечали в начале статьи, существует версия пакета aircrack-ng 0.6.2-win, поддерживаемая операционной системой Windows XP. Сразу отметим, что возможности пакета не столь обширны по сравнению с его Linux-аналогом, а потому, если нет стойкого предубеждения против Linux, то лучше использовать вариант с диском BackTrack.

Первое, с чем придется столкнуться в случае применения Windows-версии программы aircrack-ng, - это необходимость замены штатных драйверов от производителя беспроводного сетевого адаптера на специальные драйверы, которые поддерживают режим мониторинга и перехвата пакетов. Причем, как и в случае с Linux-версией программы, конкретная версия драйвера зависит от чипа, на котором построен сетевой адаптер. К примеру, при использовании нашего беспроводного PCMCIA-адаптера Gigabyte GN-WMAG на базе чипа Atheros AR5004 мы применяли драйвер версии 5.2.1.1 от компании WildPackets.

Сама процедура взлома беспроводной сети с помощью Windows-версии пакета aircrack-ng довольно проста и концептуально повторяет процедуру взлома беспроводных сетей посредством Linux-версии пакета. Она выполняется традиционно в три этапа: сбор информации о сети, перехват пакетов и их анализ.

Для начала работы с утилитой необходимо запустить файл Aircrack-ng GUI.exe, имеющий удобный графический интерфейс и представляющий собой, по сути, графическую оболочку для всех утилит, входящих в пакет aircrack-ng 0.6.2-win. В главном окне программы (рис. 7) имеется несколько закладок, переключаясь между которыми можно активировать нужные утилиты.

Рис. 7. Главное окно утилиты Aircrack-ng GUI

Для сбора необходимой информации о сети необходимо перейти на закладку airdump-ng, после чего в отдельном окне запустится утилита airdump-ng 0.6.2.

При запуске программы airdump-ng 0.6.2 (рис. 8) откроется диалоговое окно, в котором потребуется указать беспроводной сетевой адаптер (Network interface index number), тип чипа сетевого адаптера (Network interface type (o/a)), номер канала беспроводной связи (Channel(s): 1 to 14, 0=all) (если номер канала неизвестен, то можно сканировать все каналы). Кроме того, задается имя выходного файла, в котором хранятся перехваченные пакеты (Output filename prefix), и указывается, требуется ли захватывать все пакеты целиком (CAP-файлы) или только часть пактов с векторами инициализации (IVS-файлы) (Only write WEP IVs (y/n)). При WEP-шифровании для подбора секретного ключа вполне достаточно сформировать только IVS-файл, а при использовании WPA-PSK-шифрования потребуется cap-файл. По умолчанию IVS- или СAP-файлы создаются в той же директории, что и программа airdump-ng 0.6.2.

Рис. 8. Настройка утилиты airdump-ng 0.6.2

После настройки всех опций утилиты airodump-ng 0.6.2 откроется информационное окно, в котором отображается информация об обнаруженных точках беспроводного доступа, информация о клиентах сети и статистика перехваченных пакетов (рис. 9).

Рис. 9. Информационное окно утилиты airodump-ng 0.6.2

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

Первым делом необходимо записать MAC-адрес точки доступа, SSID беспроводной сети и MAC-адрес одного из подключенных к ней клиентов (если их несколько). Затем нужно подождать, пока не будет перехвачено достаточное количество пакетов. Для останова процесса захвата пакетов (работы утилиты) служит комбинация клавиш Ctrl+C. Отметим, что в Windows-версии пакета не предусмотрено способов, позволяющих принудительно увеличить трафик между точкой доступа и клиентом сети (напомним, что в Linux-версии пакета для этого предусмотрена утилита aireplay-ng).

Основная проблема при взломе WPA-PSK-сетей с использованием Windows-версии программы Aircrack-ng GNU 0.6.2 заключается в том, что в CAP-файл необходимо захватить саму процедуру инициализации клиента в сети, то есть придется посидеть «в засаде» с запущенной программой airodump-ng. После того как в CAP-файл захвачена процедура инициализации клиента сети, можно остановить программу airodump и приступить к процессу расшифровки. Собственно, накапливать перехваченные пакеты в данном случае не нужно, поскольку для вычисления секретного ключа применяются только пакеты, передаваемые между точкой доступа и клиентом в ходе инициализации.

В случае WEP-шифрования после формирования выходного IVS-файла можно приступать к его анализу с помощью утилиты aircrack-ng 0.6.2, для запуска которой опять необходимо открыть главное окно программы Aircrack-ng GUI на соответствующей закладке и настроить утилиту aircrack-ng. При WEP-шифровании настройка утилиты заключается в том, чтобы задать длину WEP-ключа, указать ESSID беспроводной сети, задать MAC-адрес точки доступа, исключить некоторые типы атак (RoreK-атаки), задать при необходимости набор символов, используемый для ключа, и т.д. Здесь предусмотрены все те же настройки, что и в случае Linux-версии данной утилиты. Разница лишь в том, что в Linux-версии все настройки указываются в виде опций в командной строке, а в Windows-версии для настройки утилиты применяется удобный графический интерфейс (рис. 10).

Рис. 11. Результат анализа IVS-файла
утилитой aircrack-ng 0.6.2

Результат анализа IVS-файла показан на рис. 11. Вряд ли строка KEY FOUND! нуждается в комментариях. Обратите внимание: секретный ключ был вычислен всего за 1 с!

При WPA-PSK-шифровании в настройках утилиты aircrack-ng 0.6.2 в качестве выходного файла необходимо использовать именно CAP-, а не IVS-файл. Кроме того, нужно указать путь к применяемому для взлома словарю, который предварительно устанавливается в директорию с программой aircrack-ng 0.6.2 (рис. 12).

Рис. 12. Результат анализа ivs-файла
утилитой aircrack-ng 0.6.2

Результат анализа CAP-файла показан на рис. 13. Однако следует иметь в виду, что положительный результат поиска ключа возможен только в том случае, если пароль присутствует в анализируемом словаре.

Рис. 13. Результат анализа CAP-файла

Обход защиты фильтра по MAC-адресам

В самом начале статьи мы отмечали, что помимо WEP- и WPA-PSK-шифрования часто используются и такие функции, как режим скрытого идентификатора сети и фильтрация по MAC-адресам. Они традиционно относятся к функциям обеспечения безопасности беспроводного соединения.

Как мы уже продемонстрировали на примере пакета aircrack-ng, полагаться на режим скрытого идентификатора сети вообще нельзя. Упомянутая нами утилита airodump-ng все равно покажет вам SSID сети, который впоследствии можно использовать для создания профиля подключения (несанкционированного!) к сети.

Ну а если говорить о такой мере безопасности, как фильтрация по MAC-адресам, то здесь вообще все очень просто. В Интернете можно найти довольно много разнообразных утилит и под Linux, и под Windows, которые позволяют подменять MAC-адрес сетевого интерфейса. В качестве примера можно привести следующие Windows-утилиты: SMAC 2.0 (утилита платная, http://www.klcconsulting.net/smac), MAC MakeUP (утилита бесплатная, www.gorlani.com/publicprj/macmakeup/macmakeup.asp - рис. 14) или MAC Spoofer 2006 (утилита бесплатная).

Рис. 14. Подмена MAC-адреса с использованием утилиты MAC MakeUP

Осуществив такую подмену, можно прикинуться своим и реализовать несанкционированный доступ в беспроводную сеть. Причем оба клиента (настоящий и непрошеный) будут совершенно спокойно существовать в одной сети с одним MAC-адресом, более того - в этом случае непрошеному гостю будет присвоен точно такой же IP-адрес, как и у настоящего клиента сети.

Выводы

Итак, преодолеть всю систему безопасности беспроводной сети на базе WEP-шифрования не представляет никакого труда. Возможно, многие скажут, что это неактуально, поскольку WEP-протокол уж давно умер - его не используют. На смену ему пришел более стойкий протокол WPA. Однако не будем торопиться с выводами. Это действительно так, но только отчасти. Дело в том, что в некоторых случаях для увеличения радиуса действия беспроводной сети разворачиваются так называемые распределенные беспроводные сети (WDS) на базе нескольких точек доступа. Самое интересное заключается в том, что такие сети не поддерживают WPA-протокол и единственной допустимой мерой безопасности в данном случае является применение WEP-шифрования. При этом взламываются WDS-сети абсолютно так же, как и сети на базе одной точки доступа. Кроме того, КПК, оснащенные беспроводным модулем, тоже не поддерживают протокол WPA, поэтому для включения клиента на базе КПК в беспроводную сеть необходимо использовать в ней протокол WEP. Следовательно, протокол WEP еще долгое время будет востребован в беспроводных сетях.

Рассмотренные нами примеры взлома беспроводных сетей весьма наглядно демонстрируют их уязвимость. Если говорить о WEP-протоколе, то его можно сравнить с защитой «от дурака». Это примерно то же самое, что сигнализация на машине, - только от хулиганов и спасает. Что касается таких мер предосторожности, как фильтрация по MAC-адресам и режим скрытого идентификатора сети, то их вообще рассматривать как защиту нельзя. Тем не менее даже такими средствами не стоит пренебрегать, правда только в комплексе с другими мерами.

Протокол WPA, хотя и гораздо более сложен для взлома, но тоже уязвим. Впрочем, не стоит падать духом - не все так безнадежно. Дело в том, что успех взлома секретного WPA-ключа зависит от того, есть он в словаре или нет. Стандартный словарь, который мы использовали, имеет размер чуть более 40 Мбайт, что, в общем-то, не так много. После трех попыток мы сумели подобрать ключ, которого не оказалось в словаре, и взлом сети оказался невозможным. Количество слов в этом словаре - всего 6 475 760, что, конечно же, очень мало. Можно использовать словари и большей емкости, к примеру в Интернете можно заказать словарь на трех CD-дисках, то есть размером почти в 2 Гбайт, но даже он содержит далеко не все возможные пароли. Действительно, давайте приблизительно рассчитаем количество паролей длиной от 8 до 63 символов, которые можно сформировать с использованием 26 букв английского алфавита (с учетом регистров), десяти цифр и 32 букв русского алфавита. Получится, что каждый символ можно выбрать 126 способами. Соответственно если учитывать только пароли длиной 8 символов, то количество возможных комбинаций составит 1268=6,3·1016. Если размер каждого слова длиной 8 символов составляет 8 байт, то размер такого словаря составит 4,5 млн Тбайт. А ведь это только комбинации из восьми символов! Какой же получится словарь, если перебрать все возможные комбинации от 8 до 63 символов?! Не надо быть математиком, чтобы подсчитать, что размер такого словаря составит примерно 1,2·10119 Тбайт.

Так что не стоит отчаиваться. Шанс, что применяемый вами пароль не содержится в словаре, велик. Просто при выборе пароля не следует использовать слова, имеющие смысл. Лучше всего, если это будет беспорядочный набор символов - что-нибудь типа «FGпроукqweRT4j563апп».

В каждой новой локации аудит беспроводных сетей начинается с одних и тех же действий:

  • поиск открытых сетей
  • поиск и взлом сетей с WEP шифрованием
  • поиск сетей с включённым WPS, проверка на подверженность атаке Pixie Dust
  • сбор хендшейков и прогон их по словарям

Эти действия тривиальны, и WiFi-autopwner направлена на их полную автоматизацию, чтобы не тратить на них время.

После запуска:

Sudo bash wifi-autopwner.sh

Откроется текстовое меню:

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

Теперь достаточно выбрать девятый пункт «Автоматический аудит Wi-Fi сетей » и заняться своими делами. При выборе автоматического аудита, программа:

  • выполнит поиск открытых сетей
  • выполнит поиск сетей с WEP шифрованием и попытается каждую из них взломать
  • выполнит поиск WPS сетей и попытается в отношении каждой из них выполнить атаку Pixie Dust
  • попытается собрать рукопожатия для всех сетей в радиусе досягаемости.

Для каждого этого этапа установлены свои таймауты, т.е. программа не застрянет на одном из этапов.

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

Перебор WPS пинов

В программу встроена функциональность для . Для простого перебора пинов WPS (без атаки Pixie Dust) выберите меню номер 6 «Атака на WPS ». Даже если ваш Reaver постоянно показывает вам ошибки Reaver: WARNING: Failed to associate with и WPS transaction failed (code: 0x03), re-trying last pin, то есть шанс, что в WiFi-autopwner всё получиться.

Программа сама выполнит поиск точек доступа с WPS, вам достаточно будет просто выбрать номер ТД, которую вы хотите атаковать.

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

Пролог

Wi-Fi сейчас есть практически в каждой квартире. Невидимые нити беспроводных каналов опутали мегаполисы и села, дома и дачи, гаражи и офисы. Несмотря на кажущуюся защищенность (“как, я же задавала пароль?!”) ушлые работники темной стороны IT каким-то образом обходят все эти ваши защиты и нагло влезают в вашу частную беспроводную собственность, чувствуя себя там как дома. При этом для многих простых юзеров эта технология так и остается загадкой, передаваемой из одного поколения хакеров другому. На просторах сети можно найти десятки обрывочных статей и сотни инструкций о том как взломать вай-фай, страждущим предлагается просмотреть обучающее видео с подбором пароля “qwerty123”, но полноценного руководства что называется “от и до” по этой теме я пока не встречал. Что собственно и решил восполнить.

Глава 1. Ищи кому выгодно

Давайте разберемся, зачем же добропорядочные (и не очень) граждане пытаются взломать Wi-Fi соседа? Итак, тому может быть несколько причин:

  1. Халявный интернет. Да-да, тысячи школьников еще в эпоху фидо и модемных соединений лет пятнадцать назад безуспешно искали в поисковиках тот самый волшебный “крякер интернета”, скачивая себе на персоналки целые тонны троянов и прочей нечисти. Бесплатный доступ к Сети был пределом мечтаний целого поколения. Сейчас ситуация значительно изменилась, дешевые безлимитные тарифы доступны практически везде, но иметь в круглосуточном резерве запасной канальчик на случай, если вдруг твой провайдер временно склеит ласты, никому не помешает. Кроме того, нередки ситуации типа “смотри-ка, а у него канал пошире чем у меня будет”, что тоже как бы намекает на полезность происходящего.
  2. Путешественники (и моряки в частности). Когда Wi-Fi в отеле стоит 5 евро в час, а связь с Родиной нужна постоянно и желательно в номере и забесплатно, практическую ценность заломанного Wi-Fi ощущаешь как никогда остро. В излишних комментариях это я думаю не нуждается.
  3. Снифанье трафика жертвы и последующий взлом аккаунтов почты, социальных сетей, асек и прочее хулиганство. Имея на руках пароль от Wi-Fi мы имеем возможность расшифровать весь передаваемый “по воздуху” трафик, включая сессии аутентификации на разных сайтах, куки и много еще чего вкусного.
  4. Промышленый шпионаж. В настоящее время офисный Wi-Fi, по-быстрому настроенный криворуким админом, является для подкованного человека просто парадным входом в ЛВС организации, а там можно найти ох как много интересного, от элементарного снифанья почты и асек до секретных документов в расшаренных папках и файлопомойках.
  5. Пентестинг (от англ. penetration testing — тестирование на проникновение). Пентестеры - это по сути те же хакеры (а зачастую это они и есть), однако действующие по заказу и с согласия владельца сети. В их задачи входит проверка безопасности сети и устойчивости к проникновению извне (или нарушению ее работы изнутри). Учитывая стоимость подобного рода услуг вряд ли ваш сосед наймет такого специалиста (если конечно он не олигарх), а вот среди владельцев крупного и среднего бизнеса, озадаченных безопасностью IT-структур своих предприятий, спрос на подобные услуги весьма высок.

Окинув беглым взглядом весь список причин и взвесив все "за" и "против" можно смело приступать... нет, не к практической части и не к водным процедурам, а для начала к теоретической подготовке.

Глава 2. WEP, WPA, HMAC, PBKDF2 и много других страшных слов

На заре развития беспроводного доступа, в далеком 1997 году, британские ученые как-то не слишком заморачивались с вопросами безопасности, наивно полагая что 40-битного WEP-шифрования со статическим ключем будет более чем достаточно, LOL. Но злостные хакеры на пару с талантливыми математиками (среди них отметился также и наш соотечественник Андрей Пышкин, что приятно) быстро разобрались что к чему, и сети защищенные даже длинным WEP-ключом в целых 104 бита в скором времени стали почему-то приравниваться к открытым. Однако с развитием компьютерной грамотности среди простого населения найти WEP-сеть сейчас стало чуть ли не сложнее чем открытую, поэтому основное внимание мы уделим более часто (т.е. повсеместно) встречающемуся WPA/WPA2.

Основное заблуждение рабочего класса - “я использую WPA2, его не взломать”. В жизни все оказывается совсем иначе. Дело в том, что процедура аутентификации (это страшное слово означает проверку что клиент “свой”) клиента беспроводной сети и в WPA, и WPA2 делится на два больших подвида - упрощенная для персонального использования (WPA-PSK, PreShared Key, т.е. авторизация по паролю) и полноценная для беспроводных сетей предприятий (WPA-Enterprise, или WPA-EAP). Второй вариант подразумевает использование специального сервера авторизации (чаще всего это RADIUS) и, к чести разработчиков, не имеет явных проблем с безопасностью. Чего нельзя сказать об упрощенной “персональной” версии. Ведь пароль, задаваемый пользователем, как правило постоянен (вспомните когда в последний раз вы меняли пароль на своем Wi-Fi:) и передается, пусть и в искаженном виде, в эфире, а значит его может услышать не только тот, кому он предназначен. Конечно разработчики WPA учли горький опыт внедрения WEP и нашпиговали процедуру авторизации разными крутыми динамическими алгоритмами, препятствующими рядовому хакеру быстро прочитать пароль “по воздуху”. В частности, по эфиру от ноутбука (или что там у вас) к точке доступа передается конечно же не сам пароль, а некоторая цифровая каша (хакеры и им сочуствующие называют этот процесс “хендшейк”, от англ. handshake - “рукопожатие”), получаемая в результате пережевывания длинного случайного числа, пароля и названия сети (ESSID) с помощью пары вычислительно сложных итерационных алгоритмов PBKDF2 и HMAC (особенно отличился PBKDF2, заключающийся в последовательном проведении четырех тысяч хеш-преобразований над комбинацией пароль+ESSID). Очевидно, основной целью разработчиков WPA было как можно сильнее усложнить жизнь кулхацкерам и исключить возможность быстрого подбора пароля брутфорсом, ведь для этого придется проводить расчет PBKDF2/HMAC-свертки для каждого варианта пароля, что, учитывая вычислительную сложность этих алгоритмов и количество возможных комбинаций символов в пароле (а их, т.е. символов, в пароле WPA может быть от 8 до 63), продлится ровно до следующего большого взрыва, а то и подольше. Однако принимая во внимание любовь неискушенных пользователей к паролям вида “12345678” в случае с WPA-PSK (а значит и с WPA2-PSK, см.выше) вполне себе возможна так называемая атака по словарю, которая заключается в переборе заранее подготовленных наиболее часто встречающихся нескольких миллиардов паролей, и если вдруг PBKDF2/HMAC свертка с одним из них даст в точности такой же ответ как и в перехваченном хендшейке - бинго! пароль у нас.

Весь вышеперечисленный матан можно было бы и не читать, самое главное будет написано в следующем предложении. Для успешного взлома WPA/WPA2-PSK нужно поймать качественную запись процедуры обмена ключами между клиентом и точкой доступа (“хендшейк”), знать точное название сети (ESSID) и использовать атаку по словарю , если конечно мы не хотим состариться раньше чем досчитаем брутом хотя бы все комбинации паролей начинающихся на “а”. Об этих этапах и пойдет речь в последующих главах.

Глава 3. От теории - к практике

Что же, поднакопив изрядный багаж теоретических знаний перейдем к практическим занятиям. Для этого сначала определим что нам нужно из “железа” и какой софт в это самое “железо” надо загрузить.

Для перехвата хендшейков сгодится даже самый дохлый нетбук. Все что от него требуется - свободный порт USB для подключения “правильного” адаптера Wi-Fi (можно конечно ловить и встроенным, но это только если атаковать соседа по общаге, т.к. хилый сигнал встроенного адаптера и его непонятная антенна вряд ли смогут пробить хотя бы одну нормальную бетонную стенку, не говоря уже о паре сотен метров до жертвы, которые очень желательно выдерживать чтобы не спалиться:). Очень хорошим преимуществом нетбука может стать малый вес (если придется работать на выезде) и способность долго работать от батареи. Для решения задачи подбора пароля вычислительной мощности нетбука (да и полноценного ноутбука) уже будет недостаточно, но об этом мы поговорим чуть позже, сейчас необходимо сосредоточиться на хендшейке и методах его поимки.

Чуть выше я упомянул про “правильный” адаптер Wi-Fi. Чем же он так “правилен”? В первую очередь он должен иметь внешнюю антенну с коэффициентом усиления минимум 3 dBi, лучше 5-7 dBi, подключаемую через разъем (это позволит при необходимости подключить вместо штатного штырька внешнюю направленную антенну и тем самым значительно увеличить убойную дистанцию до жертвы), мощность выходного сигнала адаптера должна быть не менее 500 мВт (или 27 dBm что одно и то же). Сильно гнаться за мощностью адаптера тоже не стоит, так как успех перехвата хендшейка зависит не только от того, насколько громко мы кричим в эфир, но и от того насколько хорошо слышим ответ жертвы, а это как правило обычный ноутбук (или еще хуже - смартфон) со всеми недостатками его встроенного Wi-Fi.

Среди вардрайверов всех поколений наиболее “правильными” являются адаптеры тайваньской фирмы ALPHA Network, например AWUS036H или подобный. Помимо альфы вполне работоспособны изделия фирмы TP-LINK, например TL-WN7200ND, хотя стоит он вдвое дешевле по сравнению с альфой, да и тысячи моделей других производителей, похожих друг на друга как две капли воды, благо вайфайных чипсетов в природе существует не так уж и много.

Итак с “железом” разобрались, ноутбук заряжен и готов к подвигам, а в ближайшей компьютерной лавке закуплен нужный адаптер. Теперь пару слов о софте.

Исторически сложилось, что самой распространенной операционной системой на наших ноутбуках была и остается Windows. В этом и состоит главная беда вардрайвера. Дело в том, что к большинству кошерных адаптеров (а точнее их чипсетов) отсутствуют нормальные виндовые драйвера с поддержкой жизненно-необходимых функций - режима мониторинга и инжекции пакетов, что превращает ноутбук разве что в потенциальную жертву, но ни как не в охотника за хендшейками. Справедливости ради стоит отметить, что некоторые чипы таки поддерживаются весьма популярной в узких кругах виндовой прогой CommView, но список их настолько убог по сравнению со стоимостью самой программы (или угрызениями совести скачавшего кракнутую версию), что сразу напрочь отбивает желание заниматься “этим” под Windows. В то же время выход давно придуман, и без ущерба для здоровья вашего ноутбука - это специальный дистрибутив BackTrack Linux, в который майнтейнеры заботливо упаковали не только все необходимые нам драйвера вайфайных чипсетов со всякими хитрыми функциями, но и полный набор утилит пакета aircrack-ng, (который скоро ох как нам пригодится), да и много еще чего полезного.

CommView в действии - посмотрели и забыли как страшный сон

Качаем текущую версию BackTrack 5R1 (далее BT5 или вообще просто BT, т.к. к этому названию нам придется возвращаться еще не раз): www.backtrack-linux.org/downloads/

Регистрироваться совсем не обязательно, выбираем оконный менеджер по вкусу (WM Flavor - Gnome или KDE), архитектуру нашего ноутбука (скороее всего 32-битная), Image - ISO (не надо нам никаких виртуалок), и метод загрузки - напрямую (Direct) или через торрент-трекер (Torrent). Дистрибутив является образом Live-DVD, т.е. загрузочного диска, поэтому можно его просто нарезать на болванку и загрузиться, или затратить еще немного времени и калорий и сделать загрузочную флешку с помощью вот этой утилиты: Universal USB Installer (качать здесь: www.pendrivelinux.com). Очевидная прелесть второго решения в том, что на флешке можно создать изменяемый (Persistent) раздел с возможностью сохранения файлов, что в будущем окажется весьма кстати. Не буду подробно останавливаться на самом процессе создания загрузочной флешки, скажу только что желательно чтобы ее объем был не менее 4 Гб.

Вставляем флешку (диск, или что там у вас получилось) в ноут и загружаемся с нее. Вуаля, перед нами страшный и ужасный (а на самом деле жутко красивый) рабочий стол BT5! (Когда попросит имя пользователя и пароль введите root и toor соответствено. Если рабочий стол не появился дайте команду startx. Если опять не появился - значит не судьба вам работать в линукс, курите мануалы по BT5).

BackTrack: Finish him!

Итак, все прекрасно загрузилось, начинаем изучать что у нас где. Для начала давайте нащупаем наш Wi-Fi адаптер, для этого открываем окно командной строки (Terminal или Konsole в зависимости от типа оконного менеджера) и даем команду iwconfig:

Root@bt:~# iwconfig wlan0 IEEE 802.11abgn ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=14 dBm Retry long limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off wlan1 IEEE 802.11bgn ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm Retry long limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off

Если вы хотите получше разобраться какой из адаптеров является внутренним, какой - внешним, дайте команду ifconfig -a посмотрите МАС-адрес каждого из адаптеров. Отлично, наш адаптер виден как wlan1 (wlan0 это встроенный адаптер ноутбука, его можно вообще отключить чтобы не мешался). Переводим wlan1 из режима Managed в режим Monitor:

Root@bt:~# airmon-ng start wlan1

и смотрим что получилось:

Root@bt:~# iwconfig wlan0 IEEE 802.11abgn ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=14 dBm Retry long limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off wlan1 IEEE 802.11bgn Mode:Monitor Tx-Power=20 dBm Retry long limit:7 RTS thr:off Fragment thr:off Power Management:off

Самое время сменить MAC-адрес нашего адаптера чтобы обезопасить свою пятую точку:

Root@bt:~# ifconfig mon0 down root@bt:~# macchanger -m 00:11:22:33:44:55 mon0 root@bt:~# ifconfig mon0 up

Просто замечательно, но почему параметр TX-Power (мощность передачи) только 20 dBm? У нас же адаптер на 27 dBm? Попробуем добавить мощности (тут главное не переборщить):

Root@bt:~# iwconfig wlan1 txpower 27 Error for wireless request "Set Tx Power" (8B26) : SET failed on device wlan1 ; Invalid argument.

И тут нас постигает первое разочарование - установить мощность больше 20 dBm нельзя! Это запрещено законодательством многих стран, но только не Боливии! Казалось бы причем здесь Боливия, но:

Root@bt:~# iw reg set BO root@bt:~# iwconfig wlan1 txpower 27

… и все проходит гладко, Боливия нам очень помогла, спасибо ей за это.

Что мы имеем на данном этапе? Наш мощный Wi-Fi адаптер настроен на максимальную мощность в режиме monitor mode и ожидает приказаний на интерфейсе mon0. Самое время осмотреться и прослушать эфир. Это очень просто:

Root@bt:~# airodump-ng mon0

Теперь все внимание на экран!

Красным обведена сеть с WEP - большая редкость по нынешним временам

В левом верхнем углу видно как сканируются каналы (если необходимо зафиксировать канал, нужно вызывать airodump-ng с ключом --channel <номера каналов через запятую>), далее идет таблица найденных сетей с указанием (слева направо): BSSID (MAC-адрес сети), уровень приема сигнала в dBm (зависит от чувствительности приемника, на хороших адаптерах -80 dBm это вполне нормальный уровень), количество принятых Beacon frames (это широковещательные пакеты, несущие информацию о сети), число принятых пакетов данных и скорость приема (пакетов в секунду), канал на котором вещает точка доступа, скорость точки доступа в мегабитах, тип аутентификации (OPN - открытая сеть, WEP, WPA, WPA2), тип шифрования, волшебные буковки PSK в случае с WPA/WPA2 (подробности описаны выше в гл.2) и, наконец, название сети, то есть её ESSID.

Чуть ниже основной таблицы приведена таблица текущих ассоциаций клиентов к точкам. Забегая вперед отмечу, что она тоже важна, так как по ней можно определить активность и MAC-адреса клиентов для последующей их деассоциации.

Из картинки выше следует что нам есть чего ловить - есть и точки доступа, и клиенты с хорошим сигналом. Осталось выбрать жертву (чтобы файл сильно не разбухал можно записывать пакеты только от одной точки доступа дав ключ --bssid или ограничив каналы как указано чуть выше) и дать команду записывать пакеты в файл добавив к вызову ключ -w <префикс названия файла>. Важно: если вы загрузились с DVD запись файла с пакетами необходимо вести на внешнюю флешку или жесткий диск, предварительно примонтировав их командой mount:

Root@bt:~# mkdir /mnt root@bt:~# mount /dev/sda1 /mnt root@bt:~# cd /mnt

где /dev/sda1 - файл устройства внешней флешки (найти куда подцепилась флешка в вашем случае можно покопавшись в результатах вывода команды dmesg).

Для примера запустим airodump-ng на запись пакетов только одной сети из списка в файл testcap.cap:

Root@bt:~# airodump-ng --bssid a0:21:b7:a0:71:3c -w testcap mon0

Теперь можно налить чашку кофе и пожевать бутерброд ожидая пока очередной клиент не пожелает прицепиться к точке доступа и подарить нам вожделенный хендшейк. Кстати, после получения хендшейка в правом верхнем углу появится предупреждающая надпись: WPA handshake: A0:21:B7:A0:71:3C. Все, дело сделано, и можно переходить к следующей главе.

Когда все бутерброды подъедены, кофе больше не лезет а хендшейка все нет и нет, в голову приходит светлая мысль что неплохо бы поторопить клиента с хендшейком. Для этого в состав пакета aircrack-ng входит специальная утилита, позволяющая отправлять клиентам запросы на деассоциацию (отсоединение) от точки доступа, после чего клиент снова захочет соединиться, а именно этого мы и ждем. Утилита эта называется aireplay-ng и запускать ее нужно в отдельном окне параллельно с запуском airodump-ng чтобы можно было одновременно записать результаты работы. Запускаем деассоциацию:

Root@bt:~# aireplay-ng --deauth 5 -a a0:21:b7:a0:71:3c -c 00:24:2b:6d:3f:d5 wlan1

где очевидно, что мы проводим 5 сеансов деассоциации клиента 00:24:2b:6d:3f:d5 от точки доступа с BSSID a0:21:b7:a0:71:3c (адрес клиента мы взяли из нижней таблицы ассоциаций airodump-ng, его можно вообще не указывать, тогда деассоциация будет проводиться широковещательным запросом что не так эффективно как хотелось бы).

После проведения подобной процедуры (а ничто не мешает нам повторить ее еще разок на всякий случай) вероятность словить хендшейк значительно возрастает.

Теперь самое главное. Все, что было описано выше, было описано только в образовательных целях. А все потому что в комплект aircrack-ng входит такая замечательная утилита как besside-ng, которая в автоматическом режиме делает все вышеуказанные операции, сама взламывает WEP и сохраняет хендшейки WPA в отдельный файлик. Запуск этой утилиты прост до безобразия:

Root@bt:~# besside-ng mon0

И это все! Дав эту волшебную команду теперь можно просто сидеть и наблюдать за результатами её бурной деятельности, радуясь за все прибывающие и прибывающие хендшейки (они сохраняются в текущую папку в файл wpa.cap, а лог записывается в файл besside.log). Пароли от WEP-сетей, взломанные besside-ng, можно найти так же в её логе.

Что же, результате гигантской проделанной работы у нас накопились *.cap-файлы содержащие хендшейки и можно смело переходить к главе четвертой. Но давайте все же посмотрим что мы наловили и оценим качество хендшейков.

Быстро оценить, есть ли в файле хендшейки, можно с помощью самого простого вызова aircrack-ng:

Aircrack-ng <имя файла>

Если хендшейк есть aircrack-ng покажет BSSID, ESSID и количество хендшейков для каждой сети:

aircrack-ng видит хендшейк linksys, Бро

Однако выше я упомянул, что с помощью aircrack-ng можно только оценить наличие хендшейка, и это неспроста. Дело в том, что aircrack-ng не отличается хорошим EAPOL-парсером и легко может показать наличие хендшейка там, где его нет (или точнее говоря он есть, но нерабочий). Давайте заберемся поглубже в дебри EAPOL-пакетов с помощью Wireshark (ленивым и не слишком любопытным читателям можно не тратить свое драгоценное время и сразу переходить к главе 4).

Открываем в Wireshark наш *.cap-файл и задаем выражение

(eapol || wlan.fc.type_subtype == 0x08) && not malformed

в качестве фильтра чтобы увидеть среди груды мусора только интересующие нас пакеты.

Вот они, хендшейки

Итак, что мы видим? Самый певый пакет в списке это Beacon frame, несущий информацию о беспроводной сети. Он есть и указывает на то, что сеть называется ‘dlink’. Бывает что Beacon frame отсутствует в файле, тогда для осуществления атаки мы должны доподлинно знать ESSID сети, причем с учетом того что он регистрозависим (да-да, ‘dlink’, ‘Dlink’ и ‘DLINK’ - это три разных ESSID!) и, например, может содержать пробелы в самых неожиданных местах, например в конце. Задав в таком случае неверный ESSID для атаки мы обречены на провал - пароль не будет найден даже если он есть в словаре! Так что наличие Beacon frame в файле с хендшейком это очевидный плюс.

Далее в файле идут ключевые EAPOL-пакеты, из которых и состоит собственно сам хендшейк. Вообще полноценный EAPOL-хендшейк должен содержать четыре последовательных пакета, от msg (1/4) до msg (4/4), но в данном случае нам не слишком повезло, удалось перехватить только две первых пары, состоящих из msg (1/4) и msg (2/4). Вся прелесть в том, что именно в них передается вся информация о хеше пароля WPA-PSK и именно они нужны для проведения атаки.

Давайте внимательно посмотрим на первую пару msg (1/4) и msg(2/4) (обведена красным прямоугольником). В них точка доступа (Station) 02:22:B0:02:22:B0 передает случайное число ANonce клиенту (Client) 00:18:DE:00:18:DE в первом пакете EAPOL-хендшейка и принимает обратно SNonce и MIC, рассчитанные клиентом на основе полученного ANonce. Но обратите внимание на временной промежуток между msg (1/4) и msg (2/4) - он составляет почти целую секунду. Это очень много, и вполне возможно что пакеты msg (1/4) и msg (2/4) относятся к разным хендшейкам (что однозначно приведет к невозможности подобрать пароль даже имея его в словаре), а не имея в перехвате контрольных пакетов msg (3/4) и msg (4/4) проверить это невозможно. Поэтому первый хендшейк имеет весьма сомнительное качество, хотя и выглядит вполне валидным.

К счастью, в данном случае у нас имеется еще одна пара пакетов msg (1/4) и msg (2/4) с временным промежутком между ними всего лишь 50 миллисекунд. Это с большой долей вероятности указывает на их принадлежность к одному и тому же хендшейку, поэтому именно их мы и выберем для атаки. Пометим Beacon frame и эти пакеты нажав правую кнопку мыши и выбрав Mark packet (toggle) и сохраним их в новый файл, выбрав пункт меню ‘Save As...’ и не забыв поставить галочку на Marked packets:

Сохраним нажитое непосильным трудом!

В заключение главы хочу отметить, что для атаки все же рекомендуется использовать “полноценные” хендшейки, имеющие Beacon frame и всю последовательность EAPOL-пакетов от первого до четвертого. Для этого ваше Wi-Fi-оборудование должно очень хорошо “слышать” и точку доступа, и клиента. К сожалению, в реальной жизни это не всегда возможно, поэтому приходится идти на компромиссы и пытаться “оживлять” полумертвые хендшейки вручную как и было продемонстрировано выше.

Глава 4. От хендшейка - к паролю

Внимательный читатель уже давно понял, что взлом WPA даже при наличии хендшейка и прямых рук атакующего сродни лотерее, устроителем которой является хозяин точки доступа, назначающий пароль. Теперь, имея на руках более-менее качественный хендшейк наша следующая задача - угадать этот самый пароль, т.е. по сути выиграть в лотерею. Ежу понятно, что благоприятного исхода никто гарантировать не может, но неумолимая статистика показывает, что как минимум 20% WPA-сетей успешно подвергаются взлому, так что отчаиваться не стоит, за дело, друзья!

В первую очередь надо подготовить словарь. WPA-словарь - это обычный текстовый файл, содержащий в каждой строчке один возможный вариант пароля. Учитывая требования к паролям стандарта WPA, возможные пароли должны иметь не менее 8 и не более 63 символов и могут состоять только из цифр, латинских букв верхнего и нижнего регистра и специальных знаков наподобие!@#$% и т.д. (кстати такой алфавит считается достаточно обширным). И если с нижней границей длины пароля все понятно (не менее 8 символов и точка) то с верхней все не так и просто. Взламывать пароль из 63 символов по словарю - совершенно бестолковое занятие, поэтому вполне разумно ограничиться максимальной длиной пароля в словаре 14-16 символов. Качественный словарь (для которого и дана оценка успешности исхода в 20%) весит более 2Гб и содержит порядка 250 млн возможных паролей с длиной в указанном диапазоне 8-16 символов. Что должно входить в эти комбинции возможных паролей? Во-первых, однозначно, весь восьмизначный цифровой диапазон, на который по статистике приходится почти половина всех раскрываемых паролей. Ведь в 8 цифр прекрасно укладываются различные даты, например 05121988. Полный цифровой восьмизнак имеет 10^8 = 100 млн комбинаций что уже само по себе немало. Кроме того, в боевой словарь вардрайвера должны в обязательном порядке входить слова, наиболее часто используемые в качестве паролей, например internet, password, qwertyuiop, имена и др., а так же их мутации с популярными суффиксами-удлинителями паролей (единоличным лидером в этой области является конечно же суффикс 123). Т.е. если пароль diana слишком короток для соответствия стандарту WPA, находчивый юзер в большинстве случаев дополнит его до diana123, заодно увеличивая таким образом (на его опытный взгляд) секретность пароля. Таких популярных суффиксов также известно несколько десятков.

Если самостоятельно собирать словарь влом можно погуглить по ключевым словам wpa wordlist и скачать готовый словарь (не забывайте о таргетировании, ведь довольно наивно будет надеяться на успех гоняя китайский хендшейк по русскому словарю и наоборот) или поискать подходящий вот в этой темке .

а вот так можно использовать crunch чтобы создавать различные комбинации из базовых слов

Подготовив какой-никакой словарь (обзовем его для наглядности wordlist.txt) переходим непосредственно к подбору пароля. Запускаем aircrack-ng со следующими параметрами:

Root@bt:~# aircrack-ng -e -b -w wordlist.txt testcap.cap

Ура! Пароль dictionary нашелся за 3 секунды! (если бы все было так просто...)

На скрине выше aircrack-ng нашел пароль (а это было слово dictionary) всего лишь за 3 секунды. Для этого он перебрал 3740 возможных паролей со скоростью 1039 паролей в секунду. Все бы ничего, но здесь внимательный читатель должен изрядно напрячься, ведь ранее мы говорили о словаре в 250 млн возможных паролей! Быстрый подсчет 250*10^6 делим на 1039 и получаем... порядка 240 тыс секунд, а это 66 часов, а это почти трое суток! Именно столько времени потребуется вашему ноутбуку для обсчета базового 2Гб словаря (если конечно вам не повезет и пароль не найдется где-то посередине процесса). Такие гигантские временные промежутки диктуются низкой скоростью выполнения расчетов, обусловленной высокой вычислительной сложностью заложенных в процедуру аутентификации WPA алгоритмов. Что уже говорить о больших словарях, например полный цифровой девятизнак содержит уже 900 млн комбинаций и потребует пару недель вычислений чтобы убедиться что (как минимум) пароль не найден:)

Такая лузерская ситуация не могла не беспокоить пытливые умы хакеров и вскоре выход был найден. Для потоковых вычислений были задействованы GPU. GPU (Graphic Processing Unit) - сердце вашего 3D-ускорителя, чип с сотнями (и даже тысячами) потоковых процессоров, позволяющий распределить многочисленные но элементарные операции хеширования паролей и тем самым на порядки ускорить процесс перебора. Чтобы не быть голословным скажу, что разогнаный ATI RADEON HD 5870 способен достичь скорости в 100.000 паролей в секунду, а это про сравнению с aircrack-ng уже ощутимый (на два порядка) скачок вперед.

Монстр ATI RADEON HD 6990 - 3000 шейдеров, 165.000 WPA паролей в секунду. Кто больше?

Конечно, подобные цифры свойственны только топовым адаптерам ATI RADEON (NVIDIA со своей технологией CUDA пока откровенно сливает ATI в плане скорости перебора WPA ввиду явных архитектурных преимуществ последних). Но за все приходится платить, хороший адаптер стоит хороших денег, да и энергии кушает немало. К тому же надо очень внимательно следить за разгоном и охлаждением GPU, не поддаваясь на провокации тру геймеров, гонящих свои адаптеры вплоть до появления артефактов на экране. Ведь для них артефакты (а по сути аппаратные ошибки вычислителей GPU из-за работы на экстремальных частотах) являются только мимолетным мусором на экране, а для нас череваты пропущенным паролем.

В рамках статьи для новичков я не буду, пожалуй, углубляться в дебри настройки ATI SDK и pyrit под линукс (отмечу только, что это секас еще тот:)), т.к. это вполне потянет на отдельную статью (коих есть немало в интернетах), да и целевая аудитория, а именно счастливые обладатели топовых радеонов, не так уж и велика, и вполне могут самостоятельно найти необходимый материал.

Как ни парадоксально, для подбора WPA-пароля с помощью GPU лучше всего подходит Windows. Дело в том, что немалую роль в этом процессе играют драйвера видеоадаптеров, Windows-версиям которых разработчики уделяют куда больше внимания, чем драйверам под Linux и других ОС, и это не случайно, ведь ориентируются они в основном на потребности геймеров. Подбор WPA-пароля под Windows умеют делать две программы - коммерческая Elcomsoft Wireless Security Auditor (или просто EWSA) и консольная утилита hashcat-plus из пакета hashcat by Atom (к всеобщей радости виндовз-юзеров к ней есть и GUI, а попросту говоря отдельный оконный интерфейс). Использование именно этих программ мы и рассмотрим далее, а заодно и сравним их качественные характеристики, а конкретно это будет скорость перебора, которую будет развивать каждая из них в равных условиях, а именно на одном и том же компьютере с одними и теми же драйверами и одним и тем же словарем.

Начать нужно с поиска и установки последней версии драйверов для вашей видеокарты (ну или как минимум убедиться что у вас уже установлена свежая версия). Приверженцы зеленых видеоадаптеров должны посетить www.nvidia.com , красные же идут по старинке на www.ati.com , где выбрав из списка свою модель GPU вы можете скачать драйверы для своей версии Windows. Не буду уделять много внимания процедуре установки драйверов, наверное вы это уже делали ранее, и не один раз.

EWSA можно найти (и купить) на сайте разработчиков - www.elcomsoft.com , только учтите что пробная бесплатная версия по слухам не показывает найденный пароль. Установка и настройка EWSA не должны доставить особых хлопот, можно сразу в меню выбрать русский язык, в настройках GPU убедитесь что ваши GPU видны программе и выбраны галочками (если GPU в списке не видны - у вас явно проблема с драйверами), а так же укажите программе ваши словари в настройках словарей.

Запрягаем всех лошадок...

Жмем “Импорт данных -> Импортировать файл TCPDUMP” и выбираем *.cap-файл с хендшейком (программа их проверит и предложит отметить те, которые мы хотим атаковать), после чего можно смело жать “Запустить атаку -> Атака по словарю”:

EWSA отакуэ (ну что за скорость...)

В данном тесте EWSA показала скорость всего лишь 135.000 паролей в секунду, хотя исходя из конфигурации железа я ожидал увидеть цифру не менее 350 тысяч.

Сравним работу EWSA с ее по-настоящему бесплатным конкурентом - hashcat-plus. Качаем полный набор hashcat-gui (куда уже входит консольная hashcat-plus) с сайта автора и распаковываем архив в удобное место (установка не требуется). Запускаем hashcat-gui32.exe или hashcat-gui64.exe в зависимости от разрядности Windows и отвечаем на первый же вопрос какой GPU будем использовать - NVidia (CUDA) или ATI RADEON (вариант CPU only нас, очевидно, не устроит).

Когда появится основное окно программы переходим на вкладку oclHashcat-plus (или cudaHashcat-plus в случае с NVidia). Здесь есть одна тонкость - hashcat не умеет парсить EAPOL-хендшейки (вообще никак), и требует от вас выложить ему “на блюдечке” WPA-хеши в его собственном формате *.hccap. Преобразовать обычный *.cap в *.hccap можно с помощью патченой утилиты aircrack-ng, но не загружать же BT опять ради такой мелочи! К нашей всеобщей радости разработчик hashcat сделал удобный онлайн-конвертер , просто загрузите туда ваш *.cap-файл с хендшейком и укажите ESSID, в случае если хендшейк в файле есть вам вернется уже готовый к атаке *.hccap.

Двигаемся далее - указываем программе наш *.hccap-файл в качестве Hash file для атаки, в окошко Word lists добавляем файлы словарей (стрелками можно выставить желаемый порядок их прохождения), выбираем WPA/WPA2 в качестве Hash type и жмем на Start.

Должно появиться консольное окно с запуском выбранной весии hashcat-plus с кучей параметров, и если все в порядке утилита приступит к работе. В процессе расчета можно выводить на экран текущий статус по нажатию клавиши ‘s’, приостанавливать процесс по нажатию ‘p’ или прервать по нажатию ‘q’. Если hashcat-plus вдруг найдет пароль она вас обязательно с ним ознакомит.

Результат - 392.000 паролей в секунду! И это очень хорошо согласуется с теоретической предполагаемой скоростью, исходя из конфигурации системы.

Я не являюсь ярым сторонником или противником EWSA или hashcat-plus. Однако данный тест убедительно показывает, что hashcat-plus гораздо лучше масштабируем в случае использования нескольких GPU одновременно. Выбор за вами.

Глава 5. Подключаемся!

Раздел в разработке...

Глава 6. Основные мифы и заблуждения пользователей Wi-Fi

Заблуждение первое - “А зачем ставить пароль на вай-фай, у меня все равно безлимит, пусть люди пользуются.”

Только не забывайте что в открытой сети весь ваш трафик виден снаружи (включая всякие интересные моменты), кроме того вы можете потом устать давать показания людям в погонах, когда кто-нибудь что-нибудь напишет, да еще и с вашего IP. Надеюсь, этих причин уже вполне достаточно чтобы поставить пароль на свой Wi-Fi.

Заблуждение второе - “Я использую WPA2, его не взломать”.

Этот вопрос мы уже обсуждали в гл.2, но не лишним будет повторить еще раз. WPA-PSK и WPA2-PSK имеют одинаковые алгоритмы аутентификации, различие только в том что в WPA2 реализован более надежный алгоритм шифрования трафика AES вместо проблемного TKIP. Поэтому и взламывается пароль одинаково что для WPA-PSK, что и для WPA2-PSK. Так что если вы не хотите чтобы вас взломали - используйте WPA2, вложите всю свою фантазию в длинный случайный пароль или настраивайте сервер RADIUS. Точка.

Заблуждение третье - “Я настроил фильтр по мак-адресу на роутере, теперь к нему никто не сможет подключиться кроме меня”.

Да, только не забывайте что ваш MAC-адрес светится в каждом переданном вами пакете и, соответственно, виден снифферу. И ничто не помешает злоумышленнику назначить своему адаптеру ваш MAC-адрес, дождаться пока вы покинете сеть и подключиться (при условии что пароль он уже вычислил заранее). Кроме того, возможен и более извращенный способ, он может подслушать сессию вашей HTTP basic-авторизации когда вы входите в админку вашего роутера (а пароль к админке при этом передается простым текстом без шифрования), и просто добавить потом еще пару MAС-адресов в таблицу разрешенных.

Заблуждение четвертое - “А я спрятал свою сеть отключив SSID Broadcast в настройках роутера, теперь точно не взломаете, вы же не знаете названия моей сети”.

Этот способ (а именно отключение передачи роутером широковещательных Beacon frames с рекламой возможностей вашей беспроводной сети) был бы просто идеальной защитой (напомню, в WPA ESSID сети наравне с паролем участвует в процедуре хеширования, и спрятав ESSID вы бы обезоружили взломщика), если бы не одно ”но”. Для лучшего понимания этого “но” давайте на реальном примере настроим “спрятанную” сеть на роутере (назовем ее MyHiddenNetwork для примера) и подключимся к ней. Для подключения к “спрятанной” беспроводной сети в Windows нужно создать ее профиль, где придется указать все ее параметры - название сети, тип безопасности, пароль. Стоп, а что за странная приписка на скриншоте внизу?

Теперь давайте подключимся к нашей “спрятанной” сети и посмотрим что при этом происходит в эфире:

Интересно, да? Клиент пытается найти роутер используя его так надежно “спрятанный” ESSID с помощью Probe request, и тот отвечает взаимностью! Мало того, что ESSID виден как на ладони, к тому же где бы вы не находились, ваш ноутбук будет постоянно долбить Probe request-ы в эфир, рассказывая всем вокруг, что вы являетесь счастливым обладателем подключения к “спрятанной” сети MyHiddenNetwork. Вот такая вот безопасность, бро.

Заблуждение пятое - “Скоро у меня докачаются WPA Rainbow Tables 34Gb и я взломаю любой WPA без всяких GPU”.

Радужные таблицы (Rainbow Tables) - это не новый способ взлома и не замена GPU. Радужные таблицы всего лишь позволяют сэкономить немного времени и электричества за счет записи результатов расчета сверток ESSID+пароль для всех паролей из словаря на жесткий диск в файл или в базу данных. Размерчик такого файла (при соответствующем словаре) получается довольно приличный, а генерировать его надо для каждого ESSID-а свой. Поэтому применение радужных таблиц имеет смысл только при конвеерной обработке хендшейков, да и то только для первой десятки, сотни, тысячи популярных ESSID-ов (нужное подчеркнуть в зависимости от объема ваших дисков). Профит от радужных таблиц - в скорости вычислений (раз в десять выше чем считать на GPU). Но пароль все равно должен быть в словаре, никуда от этого не деться.

Вместо эпилога

Я не ставил целью своей статьи подготовить из рядового читателя супер-профессионала по взлому беспроводных сетей и тем самым нанести непоправимый ущерб народному хозяйству страны. Те, кому это необходимо, и сами вполне могут найти всю необходимую информацию в интернете. Целью статьи скорее являлось привлечение внимания к общим (хотя и давно известным) проблемам безопасности беспроводных сетей. Пожалуйста используйте полученную информацию только по назначению - для проверки безопасности своих собственных сетей и никак иначе.

ElcomSoft Wireless Security Auditor Pro 6.04.416.0 это программа, эффективно использующая вычислительные мощности современных видеокарт для восстановления и аудита паролей в беспроводных сетях со скоростью, недостижимой обычными средствами.

При использовании этой технологии наиболее ресурсоёмкие части программы выполняются на мощных суперскалярных процессорах, использующихся в современных видеокартах ATI и NVIDIA. Если в системе присутствуют одна или несколько карт последнего поколения, аппаратное ускорение активизируется автоматически. Программа проверяет безопасность Вашей беспроводной сети, пытаясь проникнуть в нее снаружи или изнутри. Скачать программу можно по прямой ссылке (с облака) внизу страницы.

Основные возможности программы Wireless Security Auditor:

  • Аудит безопасности беспроводных сетей.
  • Аппаратное ускорение.
  • Определение степени защищенности беспроводной сети.
  • Определение степени защищенности паролей WPA/WPA2-PSK.
  • Экономия времени, используя запатентованную технологию аппаратного ускорения и одну или нескольких видеокарт NVIDIA либо ATI.
  • Запуск мощных атак по словарю с настраиваемыми мутациями.
  • Запуск атаки изнутри и извне сети.

нажмите на картинку и она увеличится

Системные требования:
Операционная система: Windows XP,Vista,7,8 (x86,x64)
Процессор: 1 ГГц
Оперативная память: 512 МБ
Место на жестком диске: 20 МБ
Язык интерфейса: русский
Размер: 22 МБ
апте4ка: в комплекте
*архив БЕЗ пароля

откроется в новом окне

  • У вас есть четкое представление о том, что происходит в Вашей сети?
  • Вы можете определить и увидеть точно, что происходит в сети в любой момент времени?
  • Знаете ли Вы, сколько приложений Вы используете, кто их использует и для каких целей?
  • Вы знаете, сколько угроз – известных и неизвестных – атакуют Вашу сеть?

Узнайте, что на самом деле происходит в сети компании, проведя бесплатный аудит безопасности сети с помощью межсетевого экрана нового поколения Palo Alto Networks. По результатам аудита Вы получите подробный отчет о текущем состоянии сети с описанием используемых приложений и выявленных угрозах в сети компании.

Компания «Стайл Телеком» имеет в наличии межсетевые экраны следующего поколения компании Palo Alto Networks, доступные нашим Клиентам для использования по программе тестирования в качестве оценки реального уровня защищенности компании и тестирования решений Palo Alto. Наша программа тестирования позволит Вам использовать межсетевой экран Palo Alto Networks в течение 30 дней и получить подробную картину того, что действительно происходит в сети компании, какие потенциальные сетевые угрозы информационной безопасности присутствуют и рекомендации по их минимизации.

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

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

    • Приложения с повышенным риском . Помимо легитимного ПО, пользователям доступны облачные приложения, приложения удаленного доступа, вредоносное ПО, online-игры и т. д. В процессе исследований мы находим открытые облачные хранилища (Dropbox, Google Drive, Yandex Disk), P2P filesharing (Bittorrent и eMule), TeamViewer, Skype, социальные сети. Несмотря на то, что данные приложения не являются вредоносными по своей природе, они потенциально опасны с точки зрения снижения производительности сети и создания возможностей, которые могут быть использованы злоумышленниками для нарушения безопасности сети. В отчете будет представлен детальный анализ информации по используемым приложениям в сети клиента.
    • Выявление вредоносного программного обеспечения (вирусы, эксплойты, шифровальщики) . В большинстве случаев проведения аудита безопасности сети было обнаружено вредоносное программное обеспечение (ВПО). ВПО попадает в сеть компании через сети партнеров, мобильные устройства, съемные носители информации и через каналы сети Интернет. В случае выявления ВПО, стоит пересмотреть сегментацию сети, политики доступа, а также политики использования мобильных устройств и съемных носителей.
    • Выявление вредоносного программного обеспечения нулевого дня. В рамках проведения тестирования используется сервис WildFire, обеспечивающий эвристический и поведенческий анализ потенциально опасных файлов в изолированной среде перед их получением пользователями компании. Выявление атак «нулевого дня» может свидетельствовать о целенаправленной атаке на компанию и требует детального расследования инцидентов информационной безопасности в компании клиента.
    • Анализ команд и запрос удаленного управления (Command and Control server). С помощью использования межсетевого экрана Palo Alto и подписки Threat Prevention осуществляется выявление систем, зараженных вредоносным кодом и управляемых централизованно с серверов C&C с последующими рекомендациями по локализации проблемы.
    • Информация по категориям URL-адресов. Неконтролируемый просмотр веб-страниц в сети Интернет подвергает компании дополнительному риску. Зачастую ссылки на веб-ресурсы служат источниками угроз, приводят к потерям данных и нарушениям корпоративных стандартов. По результатам аудита будет предоставлена информация по наиболее часто посещаемым категория сайтов в сети Интернет пользователями компании.
    Также «Стайл Телеком» предлагает дополнительный перечень услуг:
    • Консультации по выбору системы межсетевого экранирования.
    • Проведение сайзинга МЭ с учетом текущих потребностей и перспектив роста компании.
    • Аудит конфигурации существующих межсетевых экранов.
    • Оптимизация настроенных правил, существующих МЭ.
    • Миграция настроек с существующих МЭ на новые межсетевые экраны.
    • Оценка архитектуры и конфигураций сетевой инфраструктуры и существующих технических средств защиты информации.
    • Проектирование и внедрение систем межсетевого экранирования любой сложности.
    • Сопровождение систем межсетевого экранирования.
    С линейкой межсетевых экранов Рalo Аlto Networks Вы можете ознакомиться в нашем